单片机直流电机测速系统实训报告.docx
- 文档编号:17600858
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:19
- 大小:248.12KB
单片机直流电机测速系统实训报告.docx
《单片机直流电机测速系统实训报告.docx》由会员分享,可在线阅读,更多相关《单片机直流电机测速系统实训报告.docx(19页珍藏版)》请在冰点文库上搜索。
单片机直流电机测速系统实训报告
专业:
详详细细
姓名:
xxxxx
学号:
小行星
联系方式:
详详细细
指导教师:
粗粗糙糙
时间:
2013年6月14日—6月28日
摘要
在电气时代的今天,电机在工农业生产与人们日常生活中都起着十分重要的作用。
直流电机作为最常见的一种电机,具有非常优秀的线性机械特性、较宽的调速范围、良好的起动性以及简单的控制电路等优点,因此在社会的各个领域中都得到了十分广泛的应用。
随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。
采用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率。
在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。
要测速,首先要解决是采样问题。
在使用模技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。
为了能精确地测量转速外,还要保证测量的实时性,要求能测得瞬时转速方法。
因此转速的测试具有重要的意义。
本文介绍了一种基于AT89C51单片机平台,采用光电传感器实施电机转速测量的方法,硬件系统包括脉冲信号产生、脉冲信号处理和显示模块,并采用C语言编程,结果表明该方法具有简单、精度高、稳定性好的优点。
介绍了该测速法的基本原理、实验步骤和软硬件设计
这次设计内容包含知识全面,对传感器测量发电机转速的不同的方法及原理设计有较多介绍,在测量系统中能学到关于测量转速的传感器采样问题,单片机部分的内容,显示部分等各个模块的通信和联调。
全面了解单片机和信号放大的具体内容。
进一步锻炼我们在信号采集,处理,显示发面的实际工作能力。
关键词
单片机AT89C51直流电机转速测量光电传感器电机脉冲
目录
摘要II
一、实训目的,要求及组内分工1
1.1实训目的1
1.2技术要求1
1.3组内分工1
1.4同组人员1
二、实训题目及总方案2
2.1实训题目2
2.2设计方案2
1转速测量方法2
2单片机选择及介绍3
3单元电路6
4整体电路及原理框图8
三、程序设计9
3.1程序框图9
3.2系统总程序清单9
四、电路仿真过程13
4.1结论总结13
4.2心得体会13
五、参考文献14
一、实训目的,要求及组内分工
1.1实训目的
学习知道单片机的性能与功能,在现实生活中的应用。
设计并制作一实现直流电机测速系统。
并熟练对单片机编程及Proteus仿真软件的实际应用。
1.2技术要求
89c51单片机作为主控制器、利用红外光传感器设计转速测量、检测直流电机速度,并显示。
1.3组内分工
(1)负责软件编写设计:
主要由刘家兴完成;
(2)负责硬件连接:
主要由刘家兴完成;
(3)负责软件仿真及调试:
主要由刘家兴完成;
(4)撰写报告:
主要由刘家兴完成。
1.4同组人员
陈康,刘家兴
二、实训题目及总方案
2.1实训题目
《单片机直流电机测速系统设计》
2.2设计方案
1转速测量方法
转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否,因此,转速测量一直是工业领域的一个重要问题。
按照不同的理论方法,先后产生过模拟测速法(如离心式转速表)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。
计数测速法又可分为机械式定时计数法和电子式定时计数法。
本文介绍的采用单片机和光电传感器组成的高精度转速测量系统,其转速测量方法采用的就是电子式定时计数法。
对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。
在频率的工程测量中,电子式定时计数测量频率的方法一般有三种:
①测频率法:
在一定时间间隔t内,计数被测信号的重复变化次数N,则被测信号的频率fx可表示为:
fx=Nt
(1)
②测周期法:
在被测信号的一个周期内,计数时钟脉冲数m0,则被测信号频率fx=fc/m0,其中,fc为时钟脉冲信号频率。
③多周期测频法:
在被测信号m1个周期内,计数时钟脉冲数m2,从而得到被测信号频率fx,则fx可以表示为fx=m1fcm2,m1由测量准确度确定。
电子式定时计数法测量频率时,其测量准确度主要由两项误差来决定:
一项是时基误差;另一项是量化±1误差。
当时基误差小于量化±1误差一个或两个数量级时,这时测量准确度主要由量化±1误差来确定。
对于测频率法,测量相对误差为:
Er1=测量误差值实际测量值×100%=1N×100%
(2)
由此可见,被测信号频率越高,N越大,Er1就越小,所以测频率法适用于高频信号(高转速信号)的测量。
对于测周期法,测量相对误差为:
Er2=测量误差值实际测量值×100%=1m0×100%(3)
对于给定的时钟脉冲fc,当被测信号频率越低时,m0越大,Er2就越小,所以测周期法适用于低频信号(低转速信号)的测量。
对于多周期测频法,测量相对误差为:
Er3=测量误差值实际测量值100%=1m2×100%(4)
从上式可知,被测脉冲信号周期数m1越大,m2就越大,则测量精度就越高。
它适用于高、低频信号(高、低转速信号)的测量。
但随着精度和频率的提高,采样周期将大大延长,并且判断m1也要延长采样周期,不适合实时测量。
根据以上的讨论,考虑到实际应用中需要测量的转速范围很宽,上述的转速测量方法难以满足要求,因此,研究高精度的转速测量方法,以同时适用于高、低转速信号的测量,不仅具有重要的理论意义,也是实际生产中的需要。
2单片机选择及介绍
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示
●VCC:
供电电压,
●GND:
接地。
●P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它
可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,
当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
●P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部
下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校
验时,P1口作为第八位地址接收。
●P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口
当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
●P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口。
P3口管脚备选功能:
●P3.0RXD(串行输入口)
●P3.1TXD(串行输出口)
●P3.2/INT0(外部中断0)
●P3.3/INT1(外部中断1)
●P3.4T0(记时器0外部输入)
●P3.5T1(记时器1外部输入)
●P3.6/WR(外部数据存储器写选通)
●P3.7/RD(外部数据存储器读选通)
●P3口同时为闪烁编程和编程校验接收一些控制信号。
●RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
●ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字
节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
●PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机
器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN
信号将不出现。
●EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),
不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为
RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期
间,此引脚也用于施加12V编程电源(VPP)。
●XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
●XTAL2:
来自反向振荡器的输出。
3单元电路
1)复位电路
复位电路的基本功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤销
复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开
关或电源插头分-合过程中引起的抖动而影响复位。
单片机的复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过
一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机
器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位(如图4.9(a))
和按钮复位(如图4.9(b))两种方式。
2)晶振电路
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。
AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
3)转速传感器电路
在设计中采用光电传感器采集信号,这种传感器是把旋转轴的转速变为相应频率
的脉冲,然后用测量电路测出频率,由频率值就可知道所侧转速值。
这种测量方法具
有传感器结构简单、可靠、测量精度高的特点。
是目前常用的一种测量转速的方法。
从光源发出的光通过测速齿盘上的齿槽照射到光电元件上,使光电元件感光。
测速齿盘上有30个齿槽,当测速齿槽旋转一周,光敏元件就能感受与开孔数相等次数的光次数。
4整体电路及原理框图
单片机直流测速系统原理总图(部分图见附录)
单片机直流测速系统原理框图
三、程序设计
3.1程序框图
主程序流程图
显示子程序流程图
3.2系统总程序清单
#include
#defineucharunsignedchar
#defineuintunsignedint
uintmm=1234;
ucharcodetable[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};
delay(uintm)
{
uinti,j;
for(i=m;i>0;i--);
for(j=60;j>0;j--);
}
xian_shi()
{ucharqian,bei,shi,ge;
uintjj;
jj=mm;
jj*=20;
//jj+=1;
qian=jj/1000;
bei=jj%1000/100;
shi=jj%100/10;
ge=jj%10;
P2=0x10;
P0=table[qian];
delay
(1);
//P2=0;
P2=0x20;
P0=table[bei];
delay
(1);
//P2=0;
P2=0x40;
P0=table[shi];
delay
(1);
//P2=0;
P2=0x80;
P0=table[ge];
delay
(1);
//P2=0;
}
timer_init()//定时器计数器初始化函数
{EA=1;
ET0=1;
ET1=1;
TMOD=0X51;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
}
main()
{
timer_init();
P0=0;//开始数码管不显示
while
(1)
{
xian_shi();
delay
(2);//数码管刷新时间单位毫秒
}
}
voidtimer0()interrupt1
{TR0=0;
TR1=0;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
mm=0;
mm|=TH1;
mm=(mm<<8)|TL1;
//mm-=55536;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
}
voidtimer1()interrupt3//显示0000说明出错
{TR1=0;
TR0=0;
mm=0;
//TH1=0;
//TL1=0;
//TR1=1;
}
四、电路仿真过程
4.1结论总结
由于设计中使用的是单片机作为核心的控制元件,附以外围电路使本本设计具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。
但是在我们设计和调试的过程中,也发现了一些问题,譬如程序设计水平有限,实际的速度很难确切测得,会超出我们的设计需求范围。
4.2心得体会
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在两周内完成了。
俗话说“好的开始是成功的一半”。
说起课程实训,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。
其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。
最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
再者做事情一定要细心,更要耐心,遇到问题要慢慢去检查,然后仔细分析后再解决;除此之外,还要有合作精神,注重团队合作,和合作者一起做,相互鼓励,互相弥补不足之处,很多难点的突破都来自于与同学的交流,交流使自己获得更多信息,开拓了思路,这样很多事情就成了。
我们组我的主要任务是进行硬件和软件编程,所以在这方面可能有些心得吧!
刚开始查阅完资料进行编程时,错误百出,毕竟很少用C编程了,按照出现的错误慢慢的将程序改好,当然也请教了一些这方面的高手指教。
然后我们组成员将其进行仿真,使用软件keil和Proteus7Professional,其中keil用来编写C语言程序,以及编译连接使之产生后缀名为hex的文件,将其烧录在软件Proteus7Professional中进行测试仿真调试。
在仿真时,我学到的就是熟练掌握使用keil和proteus7Professional软件,比如知道在proteus7Professional中如何正确的找出单片机、uln、led显示、电机等这些芯片,怎么将keil中运行链接好的程序烧录到proteus7Professional中,然后正确的运行。
在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。
通过题目选择和设计电路的过程中,加强了我思考问题的完整性.
在实训过程中要注意增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序。
然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。
五、参考文献
1.电子技术基础(模拟部分)高等教育出版社康华光著
2.C程序设计题解与上机指导清华大学出版社谭浩强著
3.单片机应用的C语言应用程序设计北京航空航天大学出版社周航慈著
4.8051单片机彻底研究基础篇人民邮电出版社 林伸茂著
5.单片机原理及应用高等教育出版社张毅刚著
6.C程序设计清华大学出版社谭浩强著
7.单片机应用系统设计与产品开发人民邮电出版社赵亮编著
8.单片机典型模块设计实例导航人民邮电出版社求是科技编著
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 直流电机 测速 系统 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)