基于8051的电机转速测量系统.doc

上传人:啊飒飒 文档编号:10375689 上传时间:2021-05-13 格式:DOC 页数:10 大小:84KB
返回 下载 相关 举报
基于8051的电机转速测量系统.doc_第1页
第1页 / 共10页
基于8051的电机转速测量系统.doc_第2页
第2页 / 共10页
基于8051的电机转速测量系统.doc_第3页
第3页 / 共10页
基于8051的电机转速测量系统.doc_第4页
第4页 / 共10页
基于8051的电机转速测量系统.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于8051的电机转速测量系统.doc》由会员分享,可在线阅读,更多相关《基于8051的电机转速测量系统.doc(10页珍藏版)》请在三一文库上搜索。

1、内容提要本设计实现的是转速测量和显示的目的,首先要解决的是电机转动到转速叔数字的问题。LAB6000实验箱上的直流电机模块的电机上有个小磁铁,下方的霍尔元件每转一圈会产生一个脉冲,这是转速的采样,所以本设计主要实现的就是对这个脉冲的计数和显示,设计采用软件编程使用两个定时器/计数器T0、T1分别实现计数和定时的功能,当定时中断时,说明计数器中已记录一秒种内输入的脉冲个数,即直流电机一秒种内转的圈数转化为的脉冲数,此时产生中断,将计数器中的数值输出,然后用LED显示管显示,通过软硬件的结合实现直流电机每秒种转速的测量和显示。通过此次设计加深了对单片机8051/8031的定时/计数器的认识和对LE

2、D显示编程的理解。目录1.设计的目的和意义1.1 设计的目的31.2设计的内容31.3设计的要求32.硬件电路设计2.1总体设计框图32.2电机测速方案设计图32.3转速显示方案设计图43.系统软件设计3.1设计思路53.2程序模块53.3程序清单74.电路调试105.结论10参考文献111.设计的目的和意义1.实际应用汇编语言编制单片机程序以达到巩固学习效果的目的,此次设计主要负责显示模块和部分硬件的调试;2.进一步掌握软件和硬件结合共同实现MSC-51系列单片机8051设计要求(伟福LAB6000实验箱中无8051用8031代替);3.进一步熟悉并掌握LED显示程序的设计1.2设计的内容

3、根据直流电机旋转所产生的脉冲用单片机8031测起转速,并在数码管中显示转速 1.3设计的要求1.要求能够测量电机转速(最大255转/S);2要求能控制电机转速快慢;2.要求能用LED管显示电机转速2.硬件电路设计及描述2.1总体设计框图 2.2电机测速方案设计 由电位器控制直流电机的转速,直流电机每旋转一周,内部霍尔元件将其转化为脉冲信号输出给8031单片机并计数,即可获得转速信息。MCS-51有两个16位的定时/计数器:T0和T1.计数和定时实质上都是对脉冲信号进行计数,只不过脉冲源不同而已.当工作在定时方式时,计数脉冲来自单片机的内部,每个机器周期使计数器加1,由于计数脉冲的频率是固定的(

4、即每个脉冲为1个机器周期的时间),故可通过设定计数值来实现定时功能.当工作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个由1到0的电平变化时,计数器的 加1,从而实现计数功能可以通过编程来指定时计数器的功能,以及它的工作方式本设计中定时器1工作在模式2,用于定时,定时器0工作在模式1,用于记数,脉冲从T0口送入2.3转速显示方案设计 电机测速方案所测得的转速信息经编写的程序处理,并确定显示方式后在数码管中显示转速。本实验的LED显示键盘电路如下图。显示控制的位码有74HC374输出,经ULN2003反向驱动后,做LED的位选通信号。位选通信号也可做为键盘列扫描码。LED显示的段码有

5、另一个74HC374输出。键盘和LED显示电路的地址译码见图,做键盘和LED实验时,需将KEY/LED CS接到相应的地址译码上。位码输出地址为0X002H,段码输出地址为0X004H,此处X是由KEY/LED CS决定的。片选号地址范围CS008000H08FFFHCS109000H09FFFHCS20A000H0AFFFHCS30B000H0BFFFHCS40C000H0CFFFHCS50D000H0DFFFHCS60E000H0EFFFHCS70F000H0FFFFH图4 地址译码插孔对应地址范围3.系统软件设计及描述3.1设计思路 本设计可以分为以下几个执行步骤:(1) 从电位器中获得

6、控制电压控制直流电机的转速(2) 直流电机的转速信息被传感器转化为脉冲信号输送给8031单片机并计数,即为转速信息(3) 汇编程序从单片机的接口地址中读取脉冲信息并将其转化为转速输出到数码管中显示(4) 用电位器改变转速的同时数码管同步显示转速信息3.2程序模块(1) 定时器/计数器模块计数器对脉冲进行计数,当定时器定时1S中断后执行显示程序;内部定时器用做记数器时,对机器周期记数,每个机器周期的长度是12个振荡周期,因为LAB6000实验箱的8031芯片晶振是6MHZ,本程序工作在方式2即8 位自动重装方式定时器100s,所以定时常数的设置可以按下式计算:机器周期=12/6MHZ=2us(2

7、56-定时常数)/2us=100s设定时常数=206,然后对100us中断10000次就是1秒;(2) 二进制到BCD的转换将计数的二进制值转换成BCD码显示(3) 显示程序采用动态显示,本设计KEY/LED CS连接的是CS0口,所以位码输出地址为08002H,段码输出地址为08004H,定义以上地址编写程序实现显示。NY,中断入口保护现场10000次计数值减一设置下次10000次计数值读取计数值计数值为0送计数值恢复现场中断返回输出位选通信号开始延时初始化显示参数位选通信号移位关所有位显示指向下一位显示数据取显示数据6位完成输出段码数据 否 是返回图6 显示处理流程图图5 定时中断处理流程

8、图要显示的二进制数将数除于100得百位显示百位将余数再除于10得十位显示十位余数为各位并显示跳出图7 二进制到BCD转换3.3程序清单outbit equ 08002h ;位控制口outseg equ 08004h ;段控制口ledbuf equ 60h ;显示缓冲c100us equ 43htick equ 10000 ;循环计数初值t100us equ 206 ;定时器计数初值 org 0000h ljmp start org 001bh ;定时中断子程序,定时1st0int: push psw ;保护断点 push a mov a, c100us+1 jnz goon dec c100u

9、sgoon: dec c100us+1 mov a, c100us orl a, c100us+1 jnz exit mov c100us, #high(tick) mov c100us+1, #low(tick) jmp clearlcall speed ;按转/秒显示clear: mov tl0,#0 ;转数清零,下一秒重新计数exit: pop a pop psw reti;=ledmap: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hdisplay

10、led: mov r0, #ledbuf mov r1, #6 ; 共用6个八段管 mov r2, #00100000b ; 从左边第1个开始显示loop: mov dptr, #outbit mov a, #0 movx dptr, a ; 关所有八段管 mov a, r0 mov dptr, #outseg movx dptr,a mov dptr, #outbit mov a, r2 movx dptr, a ; 显示一位八段管 mov a, r2 ; 显示下一位 rr a mov r2, a inc r0 djnz r1, Loop ret; =toled: ;查找字形代码 mov d

11、ptr, #ledmap movc a, a+dptr retstart: mov tmod, #25h ;定时器1模式2,定时工作 ;定时器0模式1,计数工作 mov th0,#0 ;计数初值为0 mov tl0,#0 mov th1, #t100us mov tl1, #t100us mov IE, #10001011b ;EA=1,ET1=1,EX1=0,ET0=1,EX0=1 mov c100us, #high(Tick) mov c100us+1, #low(Tick) setb tr1 ;启动定时器1 setb tr0 ;启动定时器0mloop: lcall displayled

12、jmp mloop;=speed: ;显示转速(转/秒) mov a,#0 ;前四位数码管清零 call toled mov ledbuf,a mov ledbuf+1,a mov ledbuf+2,a mov ledbuf+3,a mov a, tl0 mov b, #10 div ab call toled mov ledbuf+3, a ;显示百位 mov a,#10 xch a, b div ab call toled mov ledbuf+4, a ;显示十位 xch a,b call toled mov ledbuf+5, a ;显示个位 retend4.电路调试本次实验采用WAV

13、E lab6000通用微控制器实验箱做开发工具,调试具体程序时,先采用软件模拟器调试程序,程序调试无误后,连接硬件,进行软件与硬件相结合的调试。为方便查找程序错误,分析程序执行过程,调试过程中一般使用单步执行和跳到光标位置执行操作,需要知道最终调试结果是否正确时使用全速执行。调试过程大致经过以下几个阶段:1)刚开始我们打算完全用软件模拟本次实验,用定时器T1做波特率发生器模拟直流电机的脉冲输入,定时器T0工作在模式三,这样T0高八位可作为定时器,低八位可做计数器,完成脉冲每秒的数量测量,但由于T1做波特率发生器时很难控制,所以我们只得使用软硬件结合的方式。2)软硬件结合。将电位器接直流电机D/

14、A输入口,其脉冲输出接8051T0口(P3.4口),然后将片外RAM CS0与LED和键盘片选KEY/LED CS相连,完成硬件连接。3)软件调试:先执行全速执行,观察所出现的问题。定时器/计数器模块调试时,打开CPU窗口及定时器T0和定时期T1窗口,然后单步运行观察所编语句是否每句达到预定效果,应注意的是定时期/计数器工作时无法赋初值。LED显示模块的调试需先用跳到光标位置执行,然后单步运行程序,观察CPU窗口中各寄存器中数据变化是否按预定执行,同时观察LED显示结果,并思考软件运行过程。LED显示模块调试时先增大延时,使其在动态显示时能从左到右逐位清楚的显示,调用无误后再调整好延时,使其快

15、速显示,达到稳定显示的效果。5.结论本实验通过传感器将转速转化为脉冲的形式,输送给8031单片机,单片机再将脉冲计数,即可得直流电机的转速信息。本测速系统结构简单,显示直观,与应用中的电子汽车里程表原理相似。但在调试当中也发现了一些不足,譬如转速的显示位数有限,最大255转/S能满组一般电机的转速,但实际中的转速可能会超出我们的显示范围。 通过本次实验加深了我对单片机结构和原理的认识,深入进行系统的编程是我对汇编语言的逻辑性有一定了解,学会了伟福软件的软硬件的调试方法,加深了的对课本知识的理解。参考文献1喻萍、郭文川主编. 单片机原理与接口技术.化学工业出版社,2006.62朱定华.单片机原理及接口技术试验.北京:清华大学出版社,2003.3伟福软件LAB6000的H16.asm,H18.asm4 http:/9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1