基于8051的电机转速测量系统_第1页
基于8051的电机转速测量系统_第2页
基于8051的电机转速测量系统_第3页
基于8051的电机转速测量系统_第4页
基于8051的电机转速测量系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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显示模块调试时先增大延时,使其在动态显示时能从左到右逐位清楚的显示,调用无误后再调整好延时,使其快速显示,达到稳定显示的效果。5.结论本实验通过传感器将转速转化为脉冲的形式,输送给8031单片机,单片机再将脉冲计数,即可得直流电机的转速信息。本测速系统结构简单,显示直观,与应用中的电子汽车里程表原理相似。但在调试当中也发现了一些不足,譬如转速的显示位数有限,最大255转/s能满组一般电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论