您的当前位置:首页单片机电机控制各种方法(汇总)

单片机电机控制各种方法(汇总)

2020-10-31 来源:爱问旅游网
武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

目录:

1、摘要------------------------------------------------------------------------------------------------------3 2、系统结构----------------------------------------------------------------------------------------------3 3、获取脉冲信号的方法----------------------------------------------------------------------------4 3、1霍尔传感器-------------------------------------------------------------4 3、2 光电传感器-------------------------------------------------------------5 3.3光电编码器-------------------------------------------------------------6 4、硬件连接图及原理------------------------------------------------------------------------------6 5、实验程序及分析-----------------------------------------------------------------------------------8 6.仿真-----------------------------------------------------------------15 7、PROTEL DXP原理图-------------------------------------------------------------------16 8、PCB图-------------------------------------------------------------------------------------------------16 9、硬件调试结果与分析-------------------------------------------------------------------------17 10、谢词---------------------------------------------------------------------------------------------------17 11、参考文献--------------------------------------------------------------------------------------------18

1.摘要

测速是工农业生产中经常遇到的问题,学会使用单片机技术设计测速仪表具有很重要的意义。

要测速,首先要解决是采样的问题。在使用模拟技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数,即可获得转速的信息。

2.系统结构

本文主要针对电机的转速进行测量,然后用数码管把电机的转速显示出来!

本装置主要有两部分构成。1光电测速部分。2测得的脉冲处理处理和显示部分!

I

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

光电测速部分主要由光电传感器构成!脉冲处理部分主要经施密特触发器对接收到的脉冲进行波形校正,由单片机的T1口输入,经80C51处理后显示输出电机的转速

下面我们来了解一下光电测速部分! 。

3、脉冲信号的获得

可以有多种方式来获得脉冲信号,这些方法有各自的应用场合。下面逐一进行分析。

3.1霍尔传感器

霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图1所示是CS3020的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。

此主题相关图片如下:1.jpg

图1 CS3020外形图

使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。 这种传感器不怕灰尘、油污,在工业现场应用广泛。

3.2.光电传感器

光电传感器是应用非常广泛的一种器件,有各种各样的形式,

II

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

如透射式、反射式等,基本的原理就是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,如图2所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。为此,可以制作一个遮光叶片如图3所示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。

图2光电传感器的原理图

此主题相关图片如下:3.jpg

图3遮光叶片

3.3.光电编码器

光电编码器的工作原理与光电传感器一样,不过它已将光电传感器、电子电路、码盘等做成一个整体,只要用连轴器将光电传感器的轴与转轴相连,就能获得多种输出信号。它广泛应用于数控机床、回转台、伺服传动、机器人、雷达、军事目标测定等需要检测角度的装置和设备中。如图4所示,是某光电编码器的外形。

此主题相关图片如下:4.jpg

图4 成品光电编码器

这次课设我选的是光电传感器,采用穿透法测量电机转速。光电传感器的原理上面有详细的介绍。

当不透光的物体挡住发射与接收之间的间隙时,开关管关断,

III

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

否则打开。为此,可以制作一个遮光叶片如图3所示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。 这里我们才用转10个孔的方式!在一分钟的时间内,假如产生了10000脉冲,则电机的转速就为1000r/min.

4、硬件连接

测速的方法决定了测速信号的硬件连接,测速实际上就是测频,因此,频率测量的一些原则同样适用于测速。

通常,可以用计数法、测脉宽法和等精度法来进行测试。所谓计数法,就是给定一个闸门时间,在闸门时间内计数输入的脉冲个数;测脉宽法是利用待测信号的脉宽来控制计数门,对一个高精度的高频计数信号进行计数。由于闸门与被测信号不能同步,因此,这两种方法都存在±1误差的问题,第一种方法适用于信号频率高时使用,第二种方法则在信号频率低时使用。等精度法则对高、低频信号都有很好的适应性。

这里为简化讨论,仅采用计数法来进行测试。

如上图:因为光电传感器不好仿真,这里我们采用了555芯片构成一个施密特触发器,由光电传感器得到的脉冲由2,5脚输入,经3脚输出接到单片机的T1(P3.5).。经89C51编程处理后由P1口输出通过数码管显示出转速!

5、实验程序及分析

测量转速,使用光电传感器,被测电机带动纸片旋转,我们在

IV

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

纸片上开了10小孔,电机每旋转一周就会产生10个脉冲,产生12个脉冲,要求将转速值(转/分)显示在数码管上。 实验程序如下: #include

#define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define LED_DAT P1 sbit LED_SEG0 = P0^3; sbit LED_SEG1 = P0^2; sbit LED_SEG2 = P0^1; sbit LED_SEG3 = P0^0;

//sbit pin_SpeedSenser = P3^5; //光电传感器信号接在T1上 #define TIME_CYLC 100 //12M晶振,定时器10ms 中断一次 我们1秒计算一次转速 // 1000ms/10ms = 100

#define PLUS_PER 10 //码盘的齿数 ,这里假定码盘上有10个齿,即传感器检测到10个脉冲,认为1圈 #define K 100.0 //校准系数

unsigned char code table[]=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar data Disbuf[4];// 显示缓冲区 uint Tcounter = 0; //时间计数器 bit Flag_Fresh = 0; // 刷新标志 bit Flag_clac = 0; //计算转速标志 bit Flag_Err = 0; //超量程标志 //在数码管上显示一个四位数 void DisplayFresh();

//计算转速,并把结果放入数码管缓冲区 void ClacSpeed(); //初始化定时器T0 void init_timer0(); //初始化定时器T1 void init_timer1();

V

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

//延时函数

void Delay(uint ms);

void it_timer0() interrupt 1 /* interrupt address is 0x000b */ {

TF0 = 0; //d定时器 T0用于数码管的动态刷新 //

TH0 = 0xC0; /* init values */ TL0 = 0x00; Flag_Fresh = 1; Tcounter++;

if(Tcounter>TIME_CYLC)

{ Flag_clac = 1;//周期到,该重新计算转速了 } }

void it_timer1() interrupt 3 /* interrupt address is 0x001b */ {

TF1 = 0; //定时器T1用于单位时间内收到的脉冲数 //要速度不是很快,T1永远不会益处

Flag_Err = 1; //如果速度很高,我们应考虑另外一种测速方法,:脉冲宽度算转速 }

void main(void) {

Disbuf[0] = 0; //开机时,初始化为0000 Disbuf[1] = 0; Disbuf[2] = 0; Disbuf[3] = 0; init_timer0(); init_timer1(); while(1) {

if(Flag_Fresh)

{ Flag_Fresh = 0;

DisplayFresh(); // 定时刷新数码管显示 }

if(Flag_clac) { Flag_clac = 0;

VI

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

ClacSpeed(); //计算转速,并把结果放入数码管缓冲区 Tcounter = 0;//周期定时 清零 TH1=TL1 = 0x00;//脉冲计数清零 }

if(Flag_Err) //超量程处理 {

//数码管显示字母'EEEE'

Disbuf[0] = 0x9e; //开机时,初始化为0000 Disbuf[1] = 0x9e; Disbuf[2] = 0x9e; Disbuf[3] = 0x9e; while(1)

{ DisplayFresh();//不再测速 等待复位i } } } }

//在数码管上显示一个四位数 void DisplayFresh() {

P2 |= 0xF0; LED_SEG0 = 0;

LED_DAT = table[Disbuf[0]]; Delay(1); P2 |= 0xF0; LED_SEG1 = 0;

LED_DAT = table[Disbuf[1]]; Delay(1); P2 |= 0xF0; LED_SEG2 = 0;

LED_DAT = table[Disbuf[2]]; Delay(1); P2 |= 0xF0; LED_SEG3 = 0;

LED_DAT = table[Disbuf[3]];

VII

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

Delay(1); P2 |= 0xF0; }

//计算转速,并把结果放入数码管缓冲区 void ClacSpeed() {

uint speed ; uint PlusCounter;

PlusCounter = TH1*256 + TL1;

speed = K*(PlusCounter/PLUS_PER)/60;//K是校准系数,如速度不准,调节K的大小

Disbuf[0] = (speed/1000)%10; Disbuf[1] = (speed/100)%10; Disbuf[2] = (speed/10)%10; Disbuf[3] = speed%10; }

//初始化定时器T0 void init_timer0() {

TMOD &= 0xf0; //定时10毫秒 /* Timer 0 mode 1 with software gate */

TMOD |= 0x01; /* GATE0=0; C/T0#=0; M10=0; M00=1; */

TH0 = 0xC0; /* init values */ TL0 = 0x00;

ET0=1; /* enable timer0 interrupt */ EA=1; /* enable interrupts */ TR0=1; /* timer0 run */ }

//延时函数

void Delay(uint ms) {

uchar i; while(ms--)

for(i=0;i<100;i++);

VIII

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

}

//初始化定时器T1 void init_timer1() {

TMOD &= 0x0F; /* Counter 1 mode 1 with software gate */

TMOD |= 0x50; /* GATE0=0; C/T0#=1; M10=0; M00=1; */

TH1 = 0x00; /* init values */ TL1 = 0x00;

ET1=1; /* enable timer1 interrupt */ EA=1; /* enable interrupts */ TR1=1; /* timer1 run */ }

6.软件仿真:

如上图:光电传感器测得脉冲由555的2或5脚输入,由555的三脚输出,接入AT9C51的P3.5口。P2.4---P2.7为数码管的位选端口,p1为数据端口。

IX

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

7.用protel DXP画出原理图如下:

8、根据原理图得到的PCB:

9、硬件调试结果:

这次课程设计,主要对电机进行测速,在电机的码盘上转了10个孔, 没10ms 对电机测量一次转速!由于工具不太足,做硬件的时候遇到了不少的困难!

X

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

总体来说能够实现其基本功能!电机转速700---1500r/min.

谢词:谢谢高老师对我们这次课程设计的指导,在很多模糊的部分给出很多很好的意见,例如光电测速部分等等,再一次谢谢高老师。

10、参考文献:

电工电子技术实践教程 化学工业出版社 单片机原理及应用 机械工业出版社

摘 要

在工程实践中,经常碰到需要测量转速的场合,而单片机作为一款性价比很高的微控制器在测速系统有着广泛的应用。首先,本文叙述了单片机测量转速的系统构成及转速测量的几种常用方法。其次,介绍了一种基于89C51单片机的

XI

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

电动机测速系统,该系统利用霍尔传感器产生脉冲信号,通过定时算法程序,将转速结果实时显示出来。最后,对测量指标进行了分析、比较并提出改进方案。

关键词:单片机;转速测量;霍尔传感器

XII

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

目 录

摘 要 ......................................................................................................................... XI 目 录 .......................................................................................................................... II 第一章 绪论 ............................................................................................................... 1

1.1关于单片机测控系统 .............................................................................................................. 1 1.2 数字式转速测量系统的发展背景 ......................................................................................... 2 1.3 课题主要内容和存在的问题及研究目的和意义 ................................................................ 3 1.3.1课题研究目的和意义 .............................................................................................................. 3 1.3.2研究的主要内容 ...................................................................................................................... 3 1.3.3需解决的问题 .......................................................................................................................... 3

第二章 基于单片机的转速测量原理 ....................................................................... 4

2.1 转速的测量原理 ................................................................................................................... 4 2.2 转速的测量方法 ................................................................................................................... 5 2.2.1 测频法“M法” .................................................................................................................. 5 2.2.2 测周期法“T法” ............................................................................................................... 6 2.2.3 测频测周法M/T法 .............................................................................................................. 7 2.3 误差和精度分析 ................................................................................................................... 7 2.3.1 “M法”测量误差分析 ............................................................................................................ 7 2.3.2 “T法”测量误差分析 ............................................................................................................. 8 2.3.3 “M/T法”测量误差分析 ........................................................................................................ 9

第三章 电机转速测量电路设计 ............................................................................. 10

3.1 硬件电路设计 ..................................................................................................................... 10 3.2 电路工作原理分析 ............................................................................................................. 11

第四章 系统程序设计 ............................................................................................. 15

4.1 程序设计 ............................................................................................................................. 15

4.1.1 工作方式及控制字设置 ....................................................................................................... 16 4.2 结果分析和有待解决的问题 ............................................................................................... 19

结论 ............................................................................................................................... 21 致谢 ............................................................................................................................... 22 参考文献 ....................................................................................................................... 23 附录1原理图 ............................................................................................................... 24

II

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

第一章 绪论

1.1关于单片机测控系统

目前,随着芯片技术及单片机功能的不断发展和成熟,单片机技术已经在工业控制系统中得到广泛的应用。如气轮机电液调节系统、调速系统等。典型的应用系统是单片机要完成工业测控功能所必须具备的硬件结构系统,它包括系统扩展和系统配置两部分内容。单片机测控系统组成框图如1-1所示,整个系统由基本部分(键盘、显示器配置)和测控增强部分(传感器接口与伺服驱动控制接口)构成。

图1-1单片机测控系统组成框图

对于数字量(频率、周期、相位、计数)的采集后可通过I/O口输入,数字脉冲可直接作为计数输入、测试输入、I/O口输入或中断源输入进行事件计数、定时计数、实现脉冲的频率、相位及计数测量。对于模拟量的采集,则应通过A/D变换后送入总线口,I/O口或扩展I/O口,并配以相应的A/D转换控制信号及地址线。对于开关量的采集则一般通过I/O口或扩展I/O口线。应用系统可根据任何一种输入条件或内部运行结果进行输出控制。开关量输出控制有时序开关、逻

1

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

辑开关、信号开关阵列等,通常,这些开关量也是通过I/O口或扩展I/O口输出。模拟量的输出常为伺服驱动控制,控制输出通过D/A变换后送入伺服驱动电路。与上位机进行通讯的RS232,RS485串行口、微型打印机等常规外设为纯数字信号大都可直接与单片机的数据线或通讯口相连,其标准性和通用性很强,应用十分方便。

1.2 数字式转速测量系统的发展背景

目前国内外测量电机转速的方法有很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表,用电机转矩或者电机电动势计算所得),通风部测速法(如机械式或闪光式频闪式测速仪)以及计数测速法。计数测速法有可分为机械式定时计数法或电子式定时计数法。传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号。其中应用最广的是光电式,光电式测系统具有低惯性、低噪音、高分辨率和高精度的优点。加之激光光源、光栅、光学码盘、CCD器件、光导纤维等相继出现和成功应用,使得光电传感器在检测和控制领域得到广泛的应用。而采用光电传感器的电机转速测量系统测量准确度高、采用速度快、测量范围宽和测量精度与被测转速无光等优点,具有广阔的应用前景。

2

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

1.3 课题主要内容和存在的问题及研究目的和意义

1.3.1课题研究目的和意义

在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的实验、运转和控制中,常常需要分时或连续测量和显示其转速及瞬时转速。要测速,首先要解决的采样问题。在使用测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。为了能精确地测量转速外,还要保证测量的实时性,即要求能测得瞬时转速。因此转速的测试具有重要的意义。 1.3.2研究的主要内容

1.详细分析转速的测量理论,对转速的周期测量法“T”法、频率测量法“M”法以及周期频率“M/T”测量法,三种具体测量方法的转速计算、各自的测量精度和误差进行阐述。定性地比较三种方法所针对的转速特征,分析高、中、低转速情况下各自的适用状况,从而,在保持一定的测量精度情况下,应用“M”法,说明转速测量原理。

2.根据单片机系统的设计原则,对电动机提出测量方案,构建硬件系统。同时分析接口电路,显示转速。

3. 根据设计要求对单片机定时/计数器进行设置,设计和说明定时/计数器在“M”法测量中的作用和使用方法,用C语言编制程序,包括主程序流程,显示中断程序流程。 1.3.3需解决的问题

1.单片机在系统运行过程中,中断设置问题 2.系统硬件电路制作,调试。

3

武汉大学本科毕业论文 关于单片机的转速原理的研究与设计

第二章 基于单片机的转速测量原理

2.1 转速的测量原理

转速是工程中应用非常广泛的一个参数,而随着大规模及超大规模集成电路技术的发展,数字测量系统得到普遍应用,利用单片机对脉冲数字信号的强大处理能力,应用全数字化的结构,使数字测量系统的越来越普及。在测量范围和测量精度方面都有极大的提高。转速的测量方法有很多,由于转速是以单位时间内的转速来衡量的,所以本文采用霍尔元器件测量转速。

霍尔器件是有半导体材料制成的一种薄片,其长为l,宽为b,厚度为d。若在垂直于薄片方向(即沿厚度d的方向)施加外磁场,在沿长为l的方向的两端面加外电场,则其内部会有一定的电流通过。由于电子在磁场中运动,所以将受到一个洛仑兹力,其大小为: F=qVB,

式中:F为洛伦兹力;q为载流子电荷,V为载流子运动速度,B为磁感应强度。

由于受洛伦兹力,电子的运动方向轨迹将发生偏移,在霍尔元器件薄片的两个侧面分别产生电兹积聚或电荷过剩,形成霍尔电场。在霍尔器件两个侧面间形成的电位差为霍尔电压,其大小为:

U=RBI/d

式中:R为霍尔常数,I为控制电流。设K=R/d,它称为霍尔器件的灵敏系统,表示该霍尔元件在单位磁感应强度和单位控制电流下输出霍尔电动势的大小。若控制电流保持不变,

4

武汉大学本科毕业论文 关于单片机的转速原理的研究与设计

则霍尔感应电压将随外界磁场强度而变化。根据这一原理,可将一块永久磁钢固定在电动机转轴上转盘的边沿,转盘随被转轴旋转,磁钢也将跟着同步旋转,在转盘附近安装一个霍尔元件,电机旋转时,霍尔元件受到磁钢所产生的磁场影响,故可输出脉冲信号,其频率和转速成正比,测出霍尔元器件输出的脉冲周期或频率即可计算出转速。

2.2 转速的测量方法

2.2.1 测频法“M法”

在一定测量时间T内,测量脉冲发生器产生的脉冲数m1

来测量转速。如图2-1所示:

m1T 2-1“M”法测量转速脉冲

设在时间T内,转轴转过的弧度数为X,则的转速n可由下式表示。

n60X2T (2-1)

转轴转过的弧度数X,可用下式所示

X2m1p

(2-2)

将(2-1)式代入(2-2)式,得转速n的表达式为:

5

武汉大学本科毕业论文 关于单片机的转速原理的研究与设计

n-转速单位:(转/分)

n60m1pT

(2-3)

T-定时时间单位:(秒)

2.2.2 测周期法“T法”

转速可以用两脉冲产生的间隔宽度Tp来决定。如图2-2所示:

输入脉冲m2时基脉冲Tp

图2-2 “T”法脉宽测量

Tp通过定时器测得。定时器对时基脉冲(频率为fc)进行计数定时,在TP内计数值若为m2,则计算公式为:

n60pTp 即:

n (2-4)

60fcpm2

(2-5)

p-为转轴转一周脉冲发生器产生的脉冲数。 fc-为硬件产生的基准时钟脉冲频率单位Hz。

n-转速单位:(转/分)。

m2-时基脉冲。

6

武汉大学本科毕业论文 关于单片机的转速原理的研究与设计

2.2.3 测频测周法M/T法

所谓测频测周法,即是综合了“T”法和“M”法分别对高、低转速具有的不同精度,利用各自的优点而产生的方法,精

度位于两者之间。如图2-3所示。

m1aTcTdbcm2

图2-3“M/T”法定时/计数测量

转速计算如下:设高频脉冲的频率为fc,脉冲发生器每转发出P个脉冲,由式(2-2)和(2-5)可得M/T法转速计算公式为:

n60fcm1pm2 (2-6)

n-转速值。单位:(转/分)。

fc-晶体震荡频率。单位Hz。

m1-输入脉冲数,反映转角。

m2-时基脉冲数。

2.3 误差和精度分析

2.3.1 “M法”测量误差分析 由转速公式:

7

武汉大学本科毕业论文 关于单片机的转速原理的研究与设计

n60m1pT

给出

因定时时间和输入脉冲不能保证严格同步,以及在T内能否正好测量外部脉冲的完整周期个数,所以m1可能产生一个脉冲的量化误差,故转速变化:

n60(m11)60m160pTpTpT

(2-7)

其相对误差为:

nn

n1nm1 npT60

(2-8)

m1 (2-9) (2-10)

601pTn

ε-相对误差。

n-加入一个脉冲后的转速值。

n-误差。

由(2-10)式可知,ε随转速n增大而减小,因此,这种方法适合于高速测量,当转速越低,产生的误差会越大。

2.3.2 “T法”测量误差分析

因m1的量化误差也是1个脉冲,故引起的转速变化也可以由下式给出:

n60fc60fc60fcp(m21)pm2pm2(m21)

nn (2-11)

8

武汉大学本科毕业论文 关于单片机的转速原理的研究与设计

其相对误差为:

n11nm2160fc11pn (2-12)

所以由(2-12)式可知,ε随转速减小而减小。因此,这种方法适合于低速测量,转速增高,误差增大。

2.3.3 “M/T法”测量误差分析

由其测量原理可知。输入计数脉冲和计数定时值在理论上是严格同步的,因此,在理论上,m1(定时器的计数值)不考虑误差,由于实际启动是由程序来控制的(系统应采取由输入计数脉冲来同步),故可能会产生一个脉冲的量化误差,因而,转速变化为:

其相对误差为:

由上式可知:

(2-13)

这种转速测量方法的相对误差与转速n无关,只与晶体振荡产生的脉冲有关,故可适合各种转速下的测量。保证其测量精度的途径是增大定时时间T,或提高时基脉冲的频率fc。因此,在实际操作时往往采用一种称变M/T的测量方法,即所谓变M/T法,在M/T法的基础上,让测量时间Tc始终等于转速输入脉冲信号的周期之和。并根据第一次的所测转速及时调整预测时间Tc,兼顾高低转速时的测量精度。

9

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

第三章 电机转速测量电路设计

3.1 硬件电路设计

一个单片机应用系统的硬件电路设计应包含有两个部分内容:

第一是系统扩展,即当单片机内部的功能单元,如ROM、RAM、I/O口、定时/计数器、中断系统等容量不能满足应用系统要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。

第二是系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、D/A、A/D转换器等,并设计相应的接口电路。因此,系统的扩展和配置应遵循下列原则:  尽可能选择典型电路,并符合单片机的常规用法。  系统的扩展与外围设备配置应满足系统功能的要求,并留有适当的余量,以便进行二次开发。

 硬件结构应与应用软件方案统一考虑,软件能实现的硬件功能尽可能用软件来实现,但需注意的是软件实现占用CPU的时间,而且,响应时间比硬件长。  单片机外接电路较多时,应考虑其驱动能力,减少芯片功耗,降低总线负载。

根据上述原则,设计系统。如图3-1所示:

图3-1单片机系统测量转速原理框图

霍尔元件:选用开关型集成元件UGN3019,对信号进行采样。

10

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

整形电路:采用斯密特触发器。

单片机:选用89C51,对信号转换成转速实际值。 LED显示:本文采用4位共阴极数码管显示。

3.2 电路工作原理分析

本系统单片机采用Atmel公司生产的89C51作为主控制器,用霍尔传感器作为脉冲发生器,用4位LED数码管作为显示。 1.霍尔传感器

霍尔传感器是应用非常广泛的一种器件,本文采用开关型集成元件UGN3019,它将电流源,霍尔元件,待温度补偿的差动放大电路以及斯密特等电路集成在一起,基本原理是霍尔效应片产生的电势由差分放大器进行放大,随后被送进斯密特触发器。当霍尔元件的感磁面受到一个小于霍尔器件的磁场工作点Bop时,差动放大器的输出电压不足以开启斯密特触发器,驱动管截止,霍尔器件处于关态,输出为高电平。当受到一个上升磁场,强度超过工作点Bop时,霍尔元件导通,输出低电平。因此,转轴转动,霍尔元件输出连续脉冲信号,然后输入单片机进行信号处理。

UGN3019的测量接线如图3-2所示。将一非磁性圆盘固定在转轴上,周围用环氧树脂粘贴块状磁钢,磁钢采用永久磁铁分割成小磁块(其磁力较强),霍尔元件固定在距磁块1-3 mm 处。传感器采用12V直流电源,输出端接1KΩ上拉电阻。为了防止CPU输入电压过高和可能产生峰值电压,输出端接5V稳压管进行限制电位,输出信号直接进单片机外部计数器,即P3.5,给单片机一个计数脉冲进行采集处理。

11

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

图3-2 UGN3019测量接线图

图3-3 复位电路 2.复位电路

89C51的复位是由外部的复位电路来实现,通常采用上电复位和按钮复位两种方式,本文采用最简单的上电复位电路,其电路如图3-3示。上电自动复位是通过外部复位电路的电容充电实现的,当电源接通时只要VCC的上升时间不超

12

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

过1毫秒,就可以实现自动上电复位。 3.时钟电路

89C51单片机芯片内部设有一个由反相放大器所构成的振荡器。19脚(XTAL1)为振荡器的反相放大器和内部时钟发生器的输入端,18脚(XTAL2)为振荡器反相放大器和内部时钟发生器的输出端。在XTAL1 和XTAL2引脚上外接定时元器件,内部振荡器电路就会产生自激震荡。本系统采用的定时元器件为石英晶体和电容组成的并联谐振回路,晶振频率为12MHz,电容大小为22P,电容的大小可以起到频率微调的作用,时钟电路如图3-4。

图3-4 时钟电路

4.数码显示电路

LED又称数码管,它主要有8段发光二极管组成的不同组合,可以显示a^g为数字和字符显示段,h段为小数点显示。点亮LED显示器有两种方式:一是静态显示,二是动态显示。本文采用4位LED动态显示电路如图3-5。

图3-5 4位动态LED显示电路 5.测速系统仿真

Proteus软件不仅具有其它EAD工具软件的仿真功能,

13

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

还能仿真单片机及外围器件。它是目前较好的仿真单片机及外围器件的工具。该测速系统的Proteus仿真原理图如图3-6所示。

图3-6 电机测速系统 proteus仿真原理图

14

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

第四章 系统程序设计

4.1 程序设计

本系统采用89C51中T0定时器和T1计数器配合使用对转速脉冲定时计数。计数器T1工作于计数状态对外部脉冲进行计数;T0工作为定时器方式每次定时10ms。本设计程序编程的思想就是在给定的10ms之内,用单片机自带的计数器T1对外部脉冲进行计数。主程序的流程如图4-1所示。

图4-1 主程序流程图

主程序部分程序如下: Void mian( ) {

uintnum[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d

15

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

,0x7d,0x07,0x7f,0x6f,0x79};

uint i,j,mm;

TMOD=0x51; //T0工作为定时方式,T1为计数方式

TH0=(65536-10000)/256; TL0=(65536-10000)%256; TH1=0; TL1=0;

EA=1; //启动外部中断0 TR0=1; //T0开始定时 ET1=1; //允许T1中断 EA=1; //开中断 „„„„„„„„„ 4.1.1 工作方式及控制字设置 1.T0定时中断程序设计

T0定时中断流程图如4-2所示。

图4-2 T0定时中断流程图

16

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

T0定时中断部分程序:

void time0()interrupt1 //定时10ms { EA=0; ET0=0; TR0=0; TH0=216; TL0=240; Buf_min++; EA=1; ET0=1; TR0=1; } 2.计数器T1

本系统设计中,T1被用于计数,我们当然希望计数量大为好,这样,可以获得较大的测量范围,因此,T1定为工作方式1(16位的计数方式),设计中,没有使用外部控制端,仅用指令置位/清零TR1来进行计数的启动/停止,这样,电路较为简单。本系统T1用自由计数方式,不用预置初值。 3.定时/计数器的方式控制字

定时/计数器的方式控制字TMOD,其地址为89H,复位值00H,不可位寻址。其8位控制 内容如下表:

表4-1

GATEC/TT1M1M0GATEC/TT0M1M0 根据前面的描述要求,确定TMOD的控制字应为0x51。 4.定时/计数控制寄存器TCON

17

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

TCON地址88H,可进行位寻址,复位值00H。 表4-2

TF1TR1TF0TR0IE1IT1IE0IT0

TF0、TF1分别为定时器T0和计数器T1的溢出标志位,TF0和TF1在正常情况下,都没有溢出标志,只有当计数值或定时值超过65536时,才能有溢出中断请求,这两位是由硬件置位和硬件清零,不需另行设置。可在T0和T1的溢出中断服务程序中,以供使用。TR1、TR0分别用于开启T1和T0的开关位,其中TR0由系统开启时,直接置位,打开T0,开始定时,经运行判断后,打开TR1。 5.显示部分程序

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,为了节省I/O端口,本文采用动态显示。

xian_shi()

{ uchar qian,bai,shi,ge; mm=(TH1*0x100+TL1)*60; qian=mm/1000; bai=mm%1000/100; shi=mm%100/10 ge=mm%10; P2=0x10; P0=mun[qian]; delay(50); P2=0; P2=0x20; P0=mun[bai];

18

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

delay(50); P2=0; P2=0x40; P0=mun[shi]; delay(50); P2=0; P2=0x80; P0=table[ge]; delay(50); P0=0; }

4.2 结果分析和有待解决的问题

1.结果分析

系统正常工作时,理论误差约百之一。但最后一位(个位)显示不稳定,原因是由于M法所存在的±1的误差,即由于闸门启/闭与信号不同步而造成某次多计一个数或少计一个数而造成的误差,那么,这就是由于M法的固有缺陷而引起的。

2.有待解决的问题 (1)定时和计数同步问题

由于本系统的对外来计数采用软件打开计数器的,因此定时和计数存在不同步问题,相差指令周期及一个脉冲的误差,这将给转速产生一定的误差,解决的方法有如下几种想法:

 用硬件即加一个D触发器外部计数的同时开启定时,关闭时,利用一回复信号,停止定时器的工作,这种方法实时性高,开启和关闭还有防止误触发和抗干扰

19

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

功能,只是增加了硬件的复杂程度。

 利用外部中断的方式来同步。定时和计数,这种方法简单可行,仍然有执行指令的延时但对大部分应用场合都可以使用。

(2)该设备放在生产车间,干扰较严重,经常使程序出现“跑飞”现象。为此需采取一些抗干扰措施,如具有自复位(看门狗)

功能。 20

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

结论

本文对基于单片机转速测量的方法进行了系统的分析,采用单片机技术实现转速的测量,可以提高转速测量的准确度,并且加快了采样的速率,具有较好的实时性。采用标准测速电机测试结果表明该测速装置测速准确,精度高,积小,性价比高,使用方便,有较高的实用价值。

21

且体武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

致谢

在本次论文的撰写中,我得到了张老师的精心指导,不管是从开始定方向还是在查资料准备的过程中,一直都耐心地给予我指导和意见,使我在总结学业及撰写论文方面都有了较大提高;同时也显示了老师高度的敬业精神和责任感。在此,我对张兰老师表示诚挚的感谢以及真心的祝福。对各位老师表示感谢,祝你们身体健康,工作顺利!

作者:彭国文

2010年9月

22

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

参考文献

[1]王军政 电液伺服阀控马达速度闭环数字控制系统的应用研究[J].北京理工大学报.2001.9(3):29~31

[2]王煜东 传感器应用电路400例[M].北京:中国电力出版社. 2008 [3]刘保录 基于单片机的电机综合参数测试仪设计[J].仪器仪表学报2002.21(2):7~9

[4]冯夏勇,宾鸿赞 微机转速测量常用方法与精度分析[J].电子与自动化1995.46(2):32~33

[5]何立民MCS-51系列单片机应用系统设计系统配置与接口[M].北京:北京航空航天大学出版社.1990

[6].孙涵芳,徐爱卿 单片机原理及应用[M].北京:北京航空航天大学出版社.1996.4

[7] 王知平 基于89C51的转速测量系统设计[A].东南大学硕士论文.2005 [8]何立民 单片机应用文集社[M].北京:北京航空航天大学出版.1992 [9]朱家建 单片机与可编程控制器[M].北京:高等教育出版社1998 [10]刘清河 汽车电子组合仪表的研究[A].哈尔滨工业大学硕士论文.2003 [11]纪宗南 单片机外围器件实用手册-输入通道器件分册[M].北京:北京航空航天大学出版社1998

[12]www.mcustudio.com平凡单片机

[13]肖兰,马爱芳 电机与拖动[M].中国水利出版社 2007

23

武汉大学本科毕业论文 基于单片机的转速测量系统的研究与设计

附录1原理图

24

湖北省高等教育自学考试毕业论文

论文题目:基于单片机的转速测量系统的研究与设计

主考学校:武 汉 大 学

专 业:电 子 工 程 指导教师:张 兰 考生姓名:彭国文 准考证号:010309300062

工作单位:长沙晨煜安防科技有限公司

2010 年 9月 25日

一、 设计要求

1.驱动电机(L293.D) 2.调节电机转速 (pwm) 3.驱动电机的反向和正向

4.测电机转速(霍尔 红外对管)

二、 系统总体设计

显示器 键 盘 电机

单片机模拟发出的

电机驱动电路 PWM信号

图2:总体设计框图

主要由单片机,显示器,键盘,速度采集电路,电机,电机驱动和单片机发出PWM信号。

单片机(速度的测量计算、输入 设定及系统控制) 速度采集电路 源代码

1、驱动电机:

#include sbit P20=P2^0; sbit P21=P2^1; sbit P22=P2^2; void main() { while(1) { P20=1; P21=0;

}

}

P22=1;

2、利用PWM控制电机转速

#include

#define unint unsigned int #define unchar unsigned char

void init(); unchar pwm; unchar i;

sbit P30=P3^0; sbit P32=P3^2;

sbit P10=P1^0; sbit P11=P1^1;

//*********************************************************************//

void main() { init();//中断初始化 P10=1; P11=0; pwm=100; while(1) { if(P30==0)//减速 { while(P30==0) ; if(pwm!=0) pwm=pwm-1; //pwm占空比 } if(P32==0)//加速 { while(P32==0) ; if(pwm!=0) pwm=pwm+1; }

} }

void init() { TMOD=0x01; TH1=0xfc; TL1=0x66;

TR1=1; ET1=1; EA=1; }

void time1() interrupt 3 { TH1=0xfc; TL1=0x66; i++; if(i=pwm) //一个周期低电平时间 { P10=0; P11=0; } else if(i==100) //避免溢出 i=0; }

3、驱动电机实现电机正反转

#include

#define unint unsigned int #define unchar unsigned char

sbit P31=P3^1;

sbit P20=P2^0; sbit P21=P2^1;

void main() { P20=1; P21=0; while(1)//检测脉冲 { if(P31==0) { while(P31==0) ; P20=0; P21=1; } } }

4、测速并显示:

#include

#define unint unsigned int #define unchar unsigned char

sbit test0=P1^0;

void init();

void extract_speed(void);//处理数据 unint pulse;

unchar i0;//做中断眼睛的全局变量 int i_1s;//i_1s==500时,为1s unchar pwm; unchar i;

sbit P31=P3^1;

//*********************显示眼睛*************************// sbit P20=P2^0; sbit P21=P2^1; sbit P22=P2^2; sbit P10=P1^0; sbit P11=P1^1; sbit P34=P3^4;

unchar code dis_7[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00}; //共阴LED段码表 \"0\" \"1\" \"2\" \"3\" \"4\" \"5\" \"6\" \"7\" \"8\" \"9\" \"不亮\"

unchar display[8];//存放从右到左 应该显示的

unchar p2_138[8]={0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01};

//*********************************************************************// void main()//在定时间内检测脉冲数量 { init();//中断初始化 pulse=0;//脉冲数量初始值 P10=1; P11=0; pwm=100; while(1)//检测脉冲 { if(test0==1) { while(test0==1) ; pulse++; } if(P31==0) { while(P31==0) ; if(pwm!=0) pwm=pwm-1; } } }

void init() { TMOD=0x01;//注意要写正确 TH0=0xF8;//2ms TL0=0x30; TH1=0xfc; TL1=0x66; TR1=1; TR0=1; ET0=1; ET1=1;

EA=1; }

void extract_speed(void) { display[3]=pulse/1000; display[2]=(pulse%1000)/100; display[1]=((pulse%1000)%100)/10; display[0]=(((pulse%1000)%100)%10)/1; }

void timer0() interrupt 1 { i0++; i_1s++; TH0=0xf8; TL0=0x18; if(i0==1) { P2=0x01; P0=dis_7[display[0]]; } if(i0==2) { // P2=0x00; P2=0x02; P0=dis_7[display[1]]; i0=0; } if(i_1s==500)//1s { extract_speed(); pulse=0;//脉冲重新计数 i_1s=0; } }

void time1() interrupt 3 { TH1=0xfc; TL1=0x66;

}

i++;

if(ielse if(i>=pwm) { P10=0; P11=0; }

else if(i==100)

i=0;

霍尔测速

测速是工农业生产中经常遇到的问题,学会使用单片机技术设计测速仪表具有很重要的意义。要测速,首先要解决是采样的问题。在使用模拟技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数,即可获得转速的信息。

下面以常见的玩具电机作为测速对象,用CS3020设计信号获取电路,通过电压比较器实现计数脉冲的输出,既可在单片机实验箱进行转速测量,也可直接将输出接到频率计或脉冲计数器,得到单位时间内的脉冲数,进行换算即可得电机转速。这样可少用硬件,不需编程,但仅是对霍尔传感器测速应用的验证。

1 脉冲信号的获得

霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图1所示是CS3020的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。

图1 CS3020外形图

使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。

2 硬件电路设计

测速的方法决定了测速信号的硬件连接,测速实际上就是测频,因此,频率测量的一些原则同样适用于测速。

通常可以用计数法、测脉宽法和等精度法来进行测试。所谓计数法,就是给定一个闸门时间,在闸门时间内计数输入的脉冲个数;测脉宽法是利用待测信号的脉宽来控制计数门,对一个高精度的高频计数信号进行计数。由于闸门与被测信号不能同步,因此,这两种方法都存在±1误差的问题,第一种方法适用于信号频率高时使用,第二种方法则在信号频率低时使用。等精度法则对高、低频信号都有很好的适应性。

图2是测速电路的信号获取部分,在电源输入端并联电容C2用来滤去电源尖啸,使霍尔元件稳定工作。HG表示霍尔元件,采用CS3020,在霍尔元件输出端(引脚3)与地并联电容C3滤去波形尖峰,再接一个上拉电阻R2,然后将其接入LM324的引脚3。用LM324构成一个电压比较器,将霍尔元件输出电压与电位器RP1比较得出高低电平信号给单片机读取。C4用于波形整形,以保证获得良好数字信号。LED便于观察,当比较器输出高电平时不亮,低电平时亮。微型电机M可采用 型,通过电位器RP1分压,实现提高或降低电机转速的目的。C1电容使电机的速度不会产生突变,因为电容能存储电荷。

电压比较器的功能:比较两个电压的大小(用输出电压的高或低电平,表示两个输入电压的大小关系):

当“+”输入端电压高于“-”输入端时,电压比较器输出为高电平; 当“+”输入端电压低于“-”输入端时,电压比较器输出为低电平;

比较器还有整形的作用,利用这一特点可使单片机获得良好稳定的输出信号,不至于丢失信号,能提高测速的精确性和稳定性。

+5V101RP11+M-1043104C210K3+-R147μC1+HGCS30202C3203RP24510Ω111104 R2OUT2C4LM324

图.2 测速电路原理图

3 测速程序

测量转速,使用霍尔传感器,被测轴安装有1只磁钢,即转轴每转一周,产生1个脉冲,要求将转速值(转/分)显示在数码管上。

用C语言编制的程序如下: //硬件:老版STC实验版 //P3-5口接转速脉冲

#include // 单片机内部专用寄存器定义 #define uchar unsigned char

#define uint unsigned int //数据类型的宏定义

uchar code LK[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,} ;//数码管0~9的字型码

uchar LK1[4]={0xfe,0xfd,0xfb,0xf7}; uint data z,counter;

//定义无符号整型全局变量lk

//==================================================== void init(void)

//定义名为init的初始化子函数

{ //init子函数开始,分别赋值

TMOD=0X51; //GATE C/T M1 M0 GATE C/T M1 M0 计数器T1 定时器T0 // 0 1 0 1 0 0 0 1 TH1=0; //计数器初始值 TL1=0;

TH0=-(50000/256); //定时器t0 定时50ms TL0=-(50000%256);

EA=1; // IE=0X00; //EA - ET1 ES ET1 EX1 ET0 EX0 ET0=1; // 1 0 0 0 0 0 1 0 TR1=1; TR0=1; TF0=1; }

//位选码

//============================================= void delay(uint k) {

uint data i,j;

for(i=0;i//延时程序

}

//================================================ void display(void) //数码管显示 {

P1=LK[z/1000];P2=LK1[0];delay(10);

P1=LK[(z/100)%10];P2=LK1[1];delay(10); P1=LK[(z%100)/10];P2=LK1[2];delay(10); P1=LK[z%10];P2=LK1[3];delay(10); }

//========================================= void main(void) {

uint temp1,temp2; init(); {

// chushi--; // if(chushi<=0){

z=counter /0.5 ; //读出速度 //}

TH0=-(50000/256); //定时器t0 定时50ms for(;;)

{

temp1=TL1;temp2=TH1; //z=counter; display();

//无限循环语句结束 //主程序结束

//调用init初始化子函数

//主程序开始

counter=(temp2<<8)+temp1; //读出计数器值并转化为十进制 }

}

//===================================================

// uint chushi=60;

void timer0(void) interrupt 1 using 1

TL0=-(50000%256);

TH0=0; //每50MS清一次定时器 TL1=0; }

霍尔测速

测速是工农业生产中经常遇到的问题,学会使用单片机技术设计测速仪表具有很重要的意义。要测速,首先要解决是采样的问题。在使用模拟技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数,即可获得转速的信息。

下面以常见的玩具电机作为测速对象,用CS3020设计信号获取电路,通过电压比较器实现计数脉冲的输出,既可在单片机实验箱进行转速测量,也可直接将输出接到频率计或脉冲计数器,得到单位时间内的脉冲数,进行换算即可得电机转速。这样可少用硬件,不需编程,但仅是对霍尔传感器测速应用的验证。

1 脉冲信号的获得

霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图1所示是CS3020的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。

图1 CS3020外形图

使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。

2 硬件电路设计

测速的方法决定了测速信号的硬件连接,测速实际上就是测频,因此,频率测量的一些原则同样适用于测速。

通常可以用计数法、测脉宽法和等精度法来进行测试。所谓计数法,就是给定一个闸门时间,在闸门时间内计数输入的脉冲个数;测脉宽法是利用待测信号的脉宽来控制计数门,对一个高精度的高频计数信号进行计数。由于闸门与被测信号不能同步,因此,这两种方法都存在±1误差的问题,第一种方法适用于信号频率高时使用,第二种方法则在信号频率低时使用。等精度法则对高、低频信号都有很好的适应性。

图2是测速电路的信号获取部分,在电源输入端并联电容C2用来滤去电源尖啸,使霍尔元件稳定工作。HG表示霍尔元件,采用CS3020,在霍尔元件输出端(引脚3)与地并联电容C3滤去波形尖峰,再接一个上拉电阻R2,然后将其接入LM324的引脚3。用LM324构成一个电压比较器,将霍尔元件输出电压与电位器RP1比较得出高低电平信号给单片机读取。C4用于波形整形,以保证获得良好数字信号。LED便于观察,当比较器输出高电平时不亮,低电平时亮。微型电机M可采用 型,通过电位器RP1分压,实现提高或降低电机转速的目的。C1电容使电机的速度不会产生突变,因为电容能存储电荷。

电压比较器的功能:比较两个电压的大小(用输出电压的高或低电平,表示两个输入电压的大小关系):

当“+”输入端电压高于“-”输入端时,电压比较器输出为高电平; 当“+”输入端电压低于“-”输入端时,电压比较器输出为低电平;

比较器还有整形的作用,利用这一特点可使单片机获得良好稳定的输出信号,不至于丢失信号,能提高测速的精确性和稳定性。

+5V101RP11+M-1043104C210KR147μC1+HGCS30202C3203RP24510Ω3+12-11104 R2OUTC4LM324

图.2 测速电路原理图

3 测速程序

测量转速,使用霍尔传感器,被测轴安装有1只磁钢,即转轴每转一周,产生1个脉冲,要求将转速值(转/分)显示在数码管上。

用C语言编制的程序如下: //硬件:老版STC实验版 //P3-5口接转速脉冲

#include // 单片机内部专用寄存器定义 #define uchar unsigned char

#define uint unsigned int //数据类型的宏定义

uchar code LK[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,} ;//数码管0~9的字型码

uchar LK1[4]={0xfe,0xfd,0xfb,0xf7}; uint data z,counter;

//定义无符号整型全局变量lk

//==================================================== void init(void)

//定义名为init的初始化子函数

//位选码

{ //init子函数开始,分别赋值

TMOD=0X51; //GATE C/T M1 M0 GATE C/T M1 M0 计数器T1 定时器T0 // 0 1 0 1 0 0 0 1 TH1=0; //计数器初始值 TL1=0;

TH0=-(50000/256); //定时器t0 定时50ms TL0=-(50000%256);

EA=1; // IE=0X00; //EA - ET1 ES ET1 EX1 ET0 EX0 ET0=1; // 1 0 0 0 0 0 1 0 TR1=1; TR0=1; TF0=1; }

//============================================= void delay(uint k) //延时程序

{

uint data i,j; for(i=0;ifor(;j<121;j++) {;}

} }

//================================================ void display(void) //数码管显示 {

P1=LK[z/1000];P2=LK1[0];delay(10);

P1=LK[(z/100)%10];P2=LK1[1];delay(10); P1=LK[(z%100)/10];P2=LK1[2];delay(10); P1=LK[z%10];P2=LK1[3];delay(10); }

//========================================= void main(void)

//主程序开始

{

uint temp1,temp2; init(); //调用init初始化子函数

for(;;)

{

temp1=TL1;temp2=TH1; counter=(temp2<<8)+temp1; //读出计数器值并转化为十进制

//z=counter;

display();

{ } }

//无限循环语句结束 //主程序结束

//===================================================

// uint chushi=60;

void timer0(void) interrupt 1 using 1

TH0=-(50000/256); //定时器t0 定时50ms

TL0=-(50000%256);

// chushi--; // if(chushi<=0){

z=counter /0.5 ; // //}

TH0=0; // TL1=0; }

读出速度 每50MS清一次定时器

一 引言

1946年第一台电子计算机诞生至今,只有60多年的时间,依靠微电子技术和半导体技术的进步,从电子管——晶体管——集成电路——大规模集成电路,现在一块芯片上完全可以集成几百万甚至上千万只晶体管,使得计算机体积更小,功能更强。特别是近20年时间里,计算机技术获得飞速的发展,计算机在工农业,科研,教育,国防和航空航天领域获得了广泛的应用,计算机技术已经是一个国家现代科技水平的重要标志。单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片微型计算机简称单片机,因其特别适用于控制领域,故又称为微控制器。随着科技的进步,一块大而复杂的模拟电路花费了工程师们巨大的精力,繁多的元器件增加镣动的成本,只需要一块几厘米见方的单片机,写入简单的程序,就可以使以前的电路简单很多。单片机技术的出现,不管在开发或是工作上,都为我们带来了意想不到的惊喜。单片机由于其微小的体积和极低的成本,已被广泛的应用于家用电器、工业控制等领域中。

单片机计算机即单片微型计算机(Single-Chip Microcomputer ),是集 CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小成本低功能强,广泛应用于智能产品和工业自动化上。而51单片机是各单片机中最为典型和最有代表性的一种。这次课设就是充分利用了8051芯片的I/O引脚。系统以采用MCS-51系列单片机Intel8051为中心器件来设计寻轨小车控制器,实现了能根据实际输入值调节并控制相应的输出,以实现通过单片机控制寻轨小车的目的,通过对寻轨小车的设计,从而达到学习、设计、开发软、硬的能力。

二 MCS-51单片机简介

80C51是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。

80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。

51系列单片机有40个引脚,按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。

2.1电源引脚

电源引脚接入单片机的工作电源。共有两个引脚⑴ VCC - 芯片电源,接+5V电源;⑵ VSS - 接地引脚。

注:用万用表测试单片机引脚电压一般为0或者5V,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0或者5V。

2.2时钟引脚

XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

2.3控制引脚

控制引脚共有4个:

ALE/PROG:地址锁存允许/片内EPROM编程脉冲 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。

EA/Vpp:内外ROM选择/片内EPROM编程电源。

2.4 I/O口引脚

80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。其中P0口为双向口,P1、P2、P3口为准双向口。P0口作为通用I/O口时需加上拉电阻,这时是准双向口。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

三、电路设计原理及原理图

3.1设计方案

本设计通过AT89S51单片机的I/O口,应用PNP复合三极管功率放大对电机进行驱动并以此来控制电机转速,并通过单片机的P1口的IN1、IN2和EN1口来实现光控式和按钮式控制过程。

PWM控制波形的实现可以通过模拟 电路或数字电路实现,例如用555搭成的触发电路,但是,这种电路的占空比不能自动调节,不能用于自动控制电机的调速。而目前使用的大多数单片机都可以直接输出这种PWM波形,或通过时序模拟输出,最适合直流电机的调速。

3.2 电路原理图

图1 寻轨小车电路原理图

3.3 电路原理

寻轨小车硬件电路由比较器开关控制部分,单片机控制部分和电动机执行三部分组成。比较器开关部分电路通过控制光敏电阻的分压来使比较的输出发生高低电平的变化,比较部分将光敏电阻两端电压电压与参考电压相比较,如果光敏电阻两端电压高则比较器输出为高电平,反之则比较器输出低电平,从而实现开关的作用;单片机控制部分通过引脚的高低电平来给单片机相应的控制信息,单片机通过查询该引脚的高低电平进行相应的操作,从而实现电机的停或者转;并电动机执行部分是通过单片机相应的引脚输出高低电平来控制电机的转动,通过高低电平的占空比,来控制电机两端电压的大小,从而控制了电机的转速。

寻轨小车在小车开关未按下时,则小车车轮不转动,当小车的开关按下时,小车随单片机的控制而转动。在开关按钮按下情况下小车将按着人们预先规定的轨道行走,此时小车触头处光敏电阻遇到的光较弱,其本身阻值变大,比较器将

比较结果送入单片机相应引脚中,当小车越出轨道时,其相应的触角的光敏电阻将遇强光使本身电阻变小,从而使其两端电压变小,通过电压比较器比较后,比较器将输出结果送入单片机相应的引脚中,单片机查询到该信息后将通过预载的程序作出相应的操作,通过控制相应电机的转动,以实现调整小车不同车轮的转速,从而控制其方向的改变,使其按轨道行走。

下面依次对电路每个部分及涉及端口进行描述: 3.3.1开关控制电路

本设计包含电路总开关ENA和比较器控制开关IN1、IN2。总开关连接在P1.1引脚上,另一端接地,通过控制引脚P1.1的高低电平来达到手动控制电动机的停转的目的;比较器开关则通过P1.5和P1.7两个输入端口作相应控制。 3.3.2单片机控制电路

单片机接收由P1.1、P1.5、P1.7端口提供的高低电平对输出端口P2.0和P2.7 进行控制,当P1.1为有效电平时,若P1.5为有效电平,则P2.0输出脉宽可调脉冲,若P1.7为有效电平,则P2.7输出脉宽可调脉冲;当P1.1为无效电平时, 端口P2.0和P2.7均不输出脉宽可调脉冲。 3.3.3电动机执行电路

电动机部分电路是通过单片机控制电机转动的部分,该电路中的电动机是通过单片机的P2.0、P2.7控制,电路中的四个PNP三极管在电路中中起开关和功率放大的作用。当P2.0、P2.7端口有脉冲时,电机按照一定速率转动,并且转速软件可调;当P2.0、P2.7端口无脉冲且为高电平时,电机停止转动。

3.4 流程图

开始 N 总开关为总开关是11?? Y 00H位地址清零 Y 输入端口1为0? N 00H位地址置1 给A置数,并保存于B中 输出端口1变为低电平 判断01H为0? Y 输出端口2置0 N 输出端口2清零 输出端口2置1 00H标志位为1 调用延时子程序时长A 输出端口1,输出端口2置1 调用延时子程序时长255-A 01H位地址清零 Y 输出端口2清零 输出端口2置1 调用延时子程序时长A 输出端口1,输出端口2置1 调用延时子程序时长255-A 输入端口2为1? N 00H位地址置1 给A置数,并保存于B中 跳转至判断总开关是否为1 结束 图2 设计流程图

四、软件仿真及硬件调试

4.1软件仿真

本设计应用keil编写代码程序生成hex文件,并应用protues软件进行软件仿真,连接电路图,把HEX文件加载到单片机芯片上,用示波器观察输出波形及电机转动情况:

当总开关按下即有效时,同时按下P1.5、P1.7,示波器显示波形如下:

图3 输出脉冲显示

当总开关按下即有效时,同时按下P1.5,弹起P1.7时,示波器显示波形如下:

图4 输出脉冲显示

当总开关按下即有效时,同时按下P1.7,弹起P1.5时,示波器显示波形如下:

图5 输出波形显示

当总开关弹起即无效时,示波器显示波形如下:

图6 输出显示波形

以上各图说明程序设计达到设计要求,可以保证单片机正常有效准确的控制,可以实现电路的工作要求。

4.2 硬件调试

设计元器件清单如下:

表一 元件清单

单片机89C51 按键:BUTTON 电阻:RES 电容:CAP 晶振:CRYSTAL 电源:POWER PNP三极管 比较器:741 直流电机:MOTO-DC 光敏电阻 实践证明:通过对每一部分的有效控制,最终实现了对整个系统的控制要求,硬件调试结果符合设计要求。

五、设计总结

为期两周的单片机课程设计即将接近尾声,回想这整个过程,真的很有感触。的确是这样,从初学单片机汇编语言到今天可以独立的运用;从不知道怎么解决一个简单的语法错误,到今天可以清楚地了解复杂语句之间的工作过程,进步源于一点一滴的积累,这或许正是我们这次独立地完成课程设计,所感觉到充实的根源。

回顾整个寻轨小车的设计过程,感慨很幼稚但也有属于自己的深刻。由于单片机初次应用的不甚了解,真的感觉自己走了不少的弯路。甚至课程设计过了很长时间,自己竟然不敢下手去做,直到自己在心里勾勒出整个设计模型,才忐忑的走进实验室。

当然,真正的动手去做才发现要明白的东西绝不仅仅是书上的那点东西,很多实践上东西,如果真正的明白了,比理论上弄懂要深刻的多。比如在编写程序的过程中,用中断的方式解决来回判断的问题就要相对简单的多;PNP管子的应用在理论上曾经一直不太明白,却在实践中了解了他的工作原理。只有注意积累每次的体会和错误,下次碰到该注意的地方才懂得小心,碰到出过错误的地方才会格外注意不要再犯同样的错误,这种方法应该适用做任何一件事。在设计中遇到一些困难和问题,在向老师请教和与同学的讨论中,解决了问题,觉得很有收获。

当你用心的去做一件事的时候,这件事就不会轻易的用不知对错的结果去应付你,就像你不会去拿这样的态度去对待他,做一件事和想一件事也不会是一样,如果当时我只是停留在第一天的空想,我就不会在编程和仿真的过程中发现和改正那么多的错误。实践之所以高于理论,或许正是因为它为我们提供了更多犯错误和改正错误的机会吧。

这次课程设计留给我的印象很深刻,我们的设计团队都充分发挥了各自的积极性,和他们合作的很愉快。由衷感谢老师的指导和教诲,没有老师的殷切教导,我们不可能在仅仅一周的时间内独立的完成此次课设,再次感谢老师!

参考文献

1. 张毅刚 彭喜元著,《单片机原理与应用设计》 电子工业出版社,2004 2. 刘刚等编,《单片机应用设计》 电子工业出版社,2002

附录

程序代码如下 IN1 BIT P1.5 IN2 BIT P1.7 ENA BIT P1.1 OUT1 BIT P2.0 OUT2 BIT P2.7 ORG 0000H

MAIN:SETB ENA

WAIT:JNB ENA,START SETB OUT1 SETB OUT2 SJMP WAIT START:CLR 00H JB IN1,LL SETB 00H MOV A,#100 MOV B,A CLR OUT1 JNB 01H,L5 CLR OUT2 SJMP Q1 L5:SETB OUT2 Q1:LCALL DELY MOV A,#255 SUBB A,B SETB OUT1 SETB OUT2 LCALL DELY LL:CLR 01H JB IN2,WAIT SETB 01H MOV A,#100 MOV B,A CLR OUT2 JB 00H,LLL SETB OUT1 SJMP Q2 LLL:CLR OUT1 Q2:LCALL DELY MOV A,#255 SUBB A,B

SETB OUT1 SETB OUT2 LCALL DELY SJMP WAIT

DELY:PUSH ACC MOV R5,#100 D1:DJNZ R5,$ DJNZ ACC,D1 POP ACC RET

END

课程设计报告书

题 目 直流电机测速系统 院 自动化学院

班 级 自动0702 姓 名 XX

目 录

摘要................................................(03) 关键字..............................................(03) 1 前言................................................(04) 2 系统设计............................................(05)

2.1 直流电机调速原理................................(05 2.2 电动机测速原理................................(07) 2.3电机转速控制系统软件设计.... ...................(09) 2.4 系统软件仿真图.................................(10)

3 心得体会............................................(11) 参考文献..............................................(15)

·摘要

在电气时代的今天,电动机在工农业生产与人们日常生活中都起着十分重要的作用。直流电机作为最常见的一种电机,具有非常优秀的线性机械特性、较宽的调速范围、良好的起动性以及简单的控制电路等优点,因此在社会的各个领域中都得到了十分广泛的应用。

本文设计了直流电机测速系统的基本方案,阐述了该系统的基本结构、工作原理、运行特性及其设计方法。本系统采用PWM测量电动机的转速,用MCS-51单片机对直流电机的转速进行控制。本设计主要研究直流电机的控制和测量方法,从而对电机的控制精度、响应速度以及节约能源等都具有重要意义。 ·关键词:直流电机 单片机 PWM 转速控制

1. 前言 一.题目要求

设计题目:直流电动机测速系统设计 描述:利用单片机设计直流电机测速系统

具体要求:8051单片机作为主控制器、利用红外光传感器设计转速测量、检测直流电机速度,并显示。

元件:STC89C52、晶振(12MHz)、小按键、ST151、数码管以及电阻电容等 二.组内分工

(1)负责软件编写设计:主要由完成 (2)负责软件仿真及调试:主要由完成 (3)负责电路焊接: 主要由完成 (4)撰写报告:主要由完成

2. 系统设计

(1) 直流电机调速原理

本设计的主要思想为利用PWM控制占空比从而达到改变电机速度。下面为PWM控制原理;

图1为PWM降压斩波器的原理电路及输出电压波形。在图1a中,假定晶体 管V1先导通T1,秒(忽略V1的管压降,这期间电源电压Ud全部加到电枢上),然后关断T2秒(这期间电枢端电压为零)。如此反复,则电枢端电压波形如图1b中所示。电动机电枢端电压Ua为其平均值。

图1 PWM降压斩波器原理电路及输出电压波形

a) 原理图 b)输出电压波形

UaT1TUd1UdUd (3) T1T2T式(3)中

T1T1 (4) T1T2T

为一个周期T中,晶体管V1导通时间的比率,称为负载率或占空比。使用下面三种方法中的任何一种,都可以改变的值,从而达到调压的目的: (1)定宽调频法:T1保持一定,使T2在0~∞范围内变化; (2)调宽调频法:T2保持一定,使T1在0~∞范围内变化

(3)定频调宽法:T1+T2=T保持一定,使T,在0~T范围内变化。 不管哪种方法,的变化范围均为0≤≤l,因而电枢电压平均值Ua的调节范围为0~Ud,均为正值,即电动机只能在某一方向调速,称为不可逆调速。当需要电动机在正、反向两个方向调速运转,即可逆调速时,就要使用图1—2a所示的桥式(或称H型)降压斩波电路。

在图2a中,晶体管V1、V4是同时导通同时关断的,V2、V3也是同时导通同时关断的,但V1与V2、V3与V4都不允许同时导通,否则电源Ud直通短路。设V1、V4先同时导通T1秒后同时关断,间隔一定时间(为避免电源直通短路。该间隔时间称为死区时问)之后,再使V2、V3同时导通T2秒后同时关断,如此反复,则电动机电枢端电压波形如图2b所示。

图2 桥式PWM降压斩波器原理电路及输出电压波形

a)原理图 b)输出电压波形

电动机电枢端电压的平均值为

UaT1T2TUd(211)Ud(21)Ud (4) T1T2T由于0≤≤1,Ua值的范围是 -Ud~+Ud,因而电动机可以在正、反两个

方向调速运转。

图3给出了两种PWM斩波电路的电枢电压平均值的特性曲线Uaf()。

图3两种斩波器的输出电压特性

(2) 直流电动机测速原理

电机的叶轮置于红外对射管之间,叶轮转过,挡住传感器,产生中断,给单片机,从而实现计数,进而计算出电机的速度。

(3) 电机转速控制系统软件设计

程序用C语言编写如下:

int frq,speed;

char pwm; #include unsigned char

TABLE[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void display();

#define uint unsigned int #define uchar unsigned char

sbit output = P3^7; //P3^7接ULN2003 sbit key1 = P3^3;

code

int i=100; uchar a;

uint frq1,c; void display();

/*系统初始化*/ void initial(void) {

TMOD = 0x20; //设置定时器0在工作方式2下 EA = 1; //开中断

EX0 = 1; //外部中断0使能 ET1 = 1; //定时器1使能

IT0 = 1; //外部中断0下降沿触发 IT1 = 1; //外部中断1下降沿触发 TH0 = 56; //装载计数值 TL0 = 56;

TH1 = 56; //装载计数值 TL1 = 56; TR1=1; }

/*延时程序*/

void delay(unsigned int k) {

unsigned int i,j; for(i=0;ifor(j=0;j<121;j++){;} } }

void display() {

uchar qian,bai,shi,ge; qian=0; bai=0; shi=0; ge=0; c=frq1;

qian=c/1000; bai=c/100%10; shi=c/10%10; ge=c%10;

P1=0X01;

P2=TABLE[qian]; delay(5); P1=0X02;

P2=TABLE[bai]; delay(5); P1=0X04;

P2=TABLE[shi]; delay(5); P1=0X08;

P2=TABLE[ge]; delay(5); }

/*主函数*/ void main() {

initial(); while(1) {

if(key1==0) delay(200); if(key1==0) {

while(key1==0) ; //松手检测 pwm+=10; if(pwm>100) pwm=10; }

display(); } }

void int0isr() interrupt 0 //中断0服务子程序实现测量电机转动频率 {

frq ++; }

void time1isr() interrupt 3 //定时器1实现数据读取 {

}

EA=0; a ++; i--;

if (a <= pwm) output = 1;

else output = 0; if(a > 100) a =0; if(i==0) {

frq1=frq; frq=0; i=100; }

EA=1;

(4)系统软件仿真图

仿真效果图:

细图见下:

3、心得体会

这一次的课程设计让我学到了不少的东西,由于有前几次的经验,这次课程设计总的来说还是比较顺利的。

从原理图的设计,电路板的焊接到写课程设计论文,在这个过程中我们也遇到了很多的困难,如成员间分工不明确,程序大家都不熟悉等。这次课程设计给我最大的体会就是有很多东西如果不是自己亲自动手,只在书本上是学不到的,设计初期要考虑周到,否则后期会带来很多不必要的麻烦。虽然可能会多花 一些时间,但这比空想要有效的多。做事情一定要细心,更要耐心,遇到问题要慢慢去检查,然后仔细分析后再解决;除此之外,还要有合作精神,注重团队合作,和合作者一起做,相互鼓励,互相弥补不足之处,很多难点的突破都来自于与同学的交流,交流使自己获得更多信息,开拓了思路,这样很多事情就成了。

本次设计把理论应用到了实践中,同时通过设计,也加深了自己对理论知识的理解和掌握,在解决困难的过程中,获得了许多专业方面的知识,拓展了视野。提高了理论水平和实际的动手能力,学会了解决问题的方法,激发了我们的探索精神。这样的课程设计是很好的锻炼机会,通过实验设计使我深入了解到课程设计在大学学习的重要性,课程设计增强了我们的实践动手能力,也为大四后学期的毕业设计提供了宝贵的经验。

本次实习我与我的组员做的是直流电机测速,当老师给出题目时,我们还是按照以前实习的解题步骤一步步的做,首先是查找相关的资料,如PWM 的工作原理。查完资料后,运用以前我们所学的C语言知识对我们的题目进行模块化分类,需要说明的是因为我们这学期学习了汇编语言,但是在掌握并应用上还是有一定的难度,所以我们是用C语言编写软件的。我们组我的主要任务是进行软件编程,所以在这方面可能有些心得吧!刚开始查阅完资料进行编程时,错误百出,毕竟好久没用C编程了,按照出现的错误慢慢的将程序改好,当然也请教了一些这方面的高手指教。然后我们组成员将其进行仿真,焊电路板进行硬件连接,将程序下到单片机上,发现显示是有错误的,然后又将软件程序来来回回修改好多次,才最终正确!从中发现理论与实践还是有很大的差距,我们应该

多多的动手进行实践,而且我们以前学的知识一定不能丢弃,真的是书到用时方恨少。同时感谢老师的辛勤付出,谢谢!!!

本次实习我们组是直流电机测速系统的设计,就是要通过转速的改变将其速度显示在led中,来体现其转速的增大或减小。而如何改变其速率呢,就是通过pwm改变其占空比来实现的。

我主要负责仿真,即使用软件keil和Proteus 7 Professional,其中keil用来编写C语言程序,以及编译连接使之产生后缀名为hex的文件,将其烧录在软件Proteus 7 Professional中进行测试仿真调试。这次实习的重点就是如何编写程序以及仿真中的行骗各个管脚的连接问题,主要的芯片有51、uln、led显示、电机。首先分清各管脚起什么作用,比如说晶振要与51的XTAL1和XTAL2连接等等。其次还要知道那个管脚是高电平哪个是低电平、跟谁连才能达到选通。通过同组同学所编程序,就可以清楚的知道这些芯片的连接,再细心的对照各个管脚的初始化、定义来连接各个芯片。在仿真的时,我学到的就是熟练掌握使用keil和proteus 7 Professional软件,比如知道在proteus 7 Professional中如何正确的找出单片机、uln、led显示、电机等这些芯片,怎么将keil中运行链接好的程序烧录到proteus 7 Professional中,然后正确的运行。当同组的同学咁好板子后,接通电源时发现led显示不够亮,所以就进行改进,通过再接入放大器放大信号就可以使led更好的显示出来。

总的来说这次实习,受益匪浅,不仅熟悉了两个软件的使用更进一步的将所学的知识实践了出来,以前没有怎么接触过这两个软件,现在发现我索要学习的还很多。合作也是我收获很多的一点。

通过两个星期的课程设计学习;经过对51单片机各管脚性能的了解,以及

用途的深刻学习;对2003芯片的使用场合,以及电机驱动的了解;数码管各个管脚显示的原理的学习;使我对整个实验布局有了大体的了解;本次课程设计我主要负责硬件,同时对其他有所了解;硬件连接过程中使我对晶振,复位电路有了新的认识,还有按键过程中,通过按键改变占空比,实现对电机速度的改变,以及中断对整个程序运行的影响;调试硬件过程中出现了数码管显示不清晰,以及闪动太快,给计数带来困难;通过加上拉电阻,以及对延时时间的调节实现软硬件的契合;

本次试验我受益匪浅,为以后我在实际中应用打下了良好的基础;以及通过我们的团队合作使我明白了团队的重要性,为我以后为人处世开启了明灯。

参考文献:

1楼然苗,李光飞编著《51单片机设计实例》北京航空航天大学出版社 2余永权,汪明慧,黄英编著《单片机在控制系统中的的应用》电子工业出版社 3陈伯时 主编 电力拖动自动控制系统 机械工业出版社 4杨靖《用单片机控制的直流电机调速系统》机床电路 2008.1

5宋凤娟,廉文利,付云强 《单片机89C51在直流调速控制系统中的应用》 6冯建华,赵亮编著《单片机应用系统设计与产品开发》 人民邮电出版社2004.11 7陈正义 编著《单片机控制实习》 人民邮电出版社,2006.7

因篇幅问题不能全部显示,请点此查看更多更全内容