ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:55.60KB ,
资源ID:5952330      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5952330.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机测速表课设.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机测速表课设.docx

1、单片机测速表课设xx课程设计报告题目名称: 基于单片机的测速表设计 所属课程: 单片机原理及应用 目 录1、任务书2、脉冲信号的获得3、硬件连接4、附录电路图5、程序编程6、程序分析7、参考文献设计任务书设计要求(1)测速范围在09999r/s(2)4位共阴极LED显示转速,动态扫描驱动(3)键盘设定报警值。(4)频率小于等于100HZ时采用测周法,频率大于100HZ时采用测频法或全频(5)速度传感器采用霍尔传感器,或光电传感器。基于单片机的测速表设计一 脉冲信号的获得有多种方式来获得脉冲信号,这些方法有各自的应用场合。下面逐一进行分析1光电传感器光电传感器是应用非常广泛的一种器件,有各种各样

2、的形式,如透射式、反射式等,基本的原理就是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,如图1所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。为此,可以制作一个遮光叶片如图2所示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。图1光电传感器的原理图图2遮光叶片2光电编码器光电编码器的工作原理与光电传感器一样,不过它已将光电传感器、电子电路、码盘等做成一个整体,只要用连轴器将光电传感器的轴与转轴相连,就能获得多种输出信号。它广泛应用于数控机床、回转台、伺服传动、机器人、雷达、军事目标测定等需要检测角度的装置和设备中。

3、如图3所示,是某光电编码器的外形。图3光电编码器3霍尔传感器霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图4所示是CS3020的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。图4CS3020外形图使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一

4、周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。通过对比选择,认为霍尔传感器比较使用,而且电路比较容易实现,器件比较耐用,比较适合那种工作环境比较恶劣的场所,而且价格比较便宜,节约制作成本。二、硬件连接测速的方法决定了测速信号的硬件连接,测速实际上就是测频,因此,频率测量的一些原则同样适用于测速。通常,可以用计数法、测脉宽法和等精度法来进行测试。所谓计数法,就是给定一个闸门时间,在闸门时间内计数输入的脉冲个数;测脉宽法是利用待测信号的脉宽来控制计数门,对一个高精

5、度的高频计数信号进行计数。由于闸门与被测信号不能同步,因此,这两种方法都存在1误差的问题,第一种方法适用于信号频率高时使用,第二种方法则在信号频率低时使用。等精度法则对高、低频信号都有很好的适应性。连接电路图见下页三、软件编程测量转速,使用霍尔传感器,被测轴安装有12只磁钢,即转轴每转一周,产生12个脉冲,要求将转速值(转/分)显示在数码管上。程序如下:程序代码DISPBUFEQU5AH;显示缓冲区从5AH开始SecCounEQU59HSpCounEQU57H;速度计时器单元57H和58H,高位在前(57H单元中)CountEQU56H;显示时的计数器SpCalcbit00h;要求计算速度的标

6、志HiddenEQU16;消隐码orG0000HAJMPSTARTorG1BHJMPTIMER1;定时中断1入口orG30HSTART:MOVSP,#5FH;设置堆栈MOVP1,#0FFHMOVP0,#0FFHMOVP2,#0FFH;初始化,所有显示器、LED灭MOVTMOD,#00010101B;定时器T1工作于方式1,定时器0工作方式1MOVTH1,#HIGH(65536-4000)MOVTL1,#LOW(65536-4000)SETBTR1SETBET1;开定时器1中断SETBEALOOP:JNBSpCalc,LOOP;如果未要求计算,转本身循环;标号:功能:双字节二进制无符号数乘法;入

7、口条件:被乘数在R2、R3中,乘数在R6、R7中。;出口信息:乘积在R2、R3、R4、R5中。;影响资源:PSW、A、B、R2R7堆栈需求:字节MOVR2,SpCounMOVR3,SpCoun+1MOVR6,#0MOVR7,#5;测得的数值是每秒计数值,转为每分转速(每一转测12次,故乘5而非60)CALLMULD;标号:功能:双字节十六进制整数转换成双字节码整数;入口条件:待转换的双字节十六进制整数在R6、R7中。;出口信息:转换后的三字节码整数在R3、R4、R5中。;影响资源:PSW、A、R2R7堆栈需求:字节MOVA,R4MOVR6,AMOVA,R5MOVR7,A;将乘得的结果送R6R准

8、备转换,这里结果不可能超过2字节CALLHB2CBCD:MOVDISPBUF,R3;最高位MOVA,R4;ANLA,#0F0H;去掉低4位SWAPA;将高4位切换到低4位MOVDISPBUF+1,AMOVA,R4ANLA,#0FHMOVDISPBUF+2,AMOVA,R5ANLA,#0F0HSWAPAMOVDISPBUF+3,AMOVA,R5ANLA,#0FHMOVDISPBUF+4,ACLRSpCalc;清计算标志JMPLOOP;主程序到此结束TIMER1:PUSHACC;ACC入栈PUSHPSW;PSW入栈SETBRS0;工作区1JNBTR0,SETTR0;如果T0未运行,则开启T0JMP

9、GO1SETTR0:SETBTR0GO1:INCSecCoun;秒计数器加1MOVA,SecCounCJNEA,#251,Go2;如果未到1s则转CLRTR0;1到了,则停止T0的运行MOVSpCoun,TH0MOVSpCoun+1,TL0;读取计数值CLRAMOVTH0,AMOVTL0,A;清计数器SETBSpCalc;要求主程序计算速度MOVSecCoun,#0;清秒计数器Go2:INCCOUNT;用于显示的计数器MOVA,COUNTCLRCSUBBA,#6JZN1JMPN2N1:MOVCOUNT,#0N2:MOVA,#DISPBUFADDA,COUNTMOVR0,A;指向当前要显示的显示

10、缓冲区MOVA,R0;取第一个待显示数MOVDPTR,#DISPTAB;字形表首地址MOVCA,A+DPTR;取字形码MOVP0,A;将字形码送P0位(段口)MOVA,COUNTMOVDPTR,#BitTab;字位表首地址MOVCA,A+DPTRorLP2,#11111100BANLP2,AMOVTH1,#HIGH(65536-4000)MOVTL1,#LOW(65536-4000)POPPSWPOPACCRETIBitTab:DB7Fh,0BFH,0DFH,0EFH,0F7H,0FBHDISPTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

11、,88H,83H,0C6H,0A1H,86H,8EH,0FFH四、程序分析主程序在对定时器、计数器、堆栈等进行初始化后即判断标志SpCalc是否为1,如果为1,说明要求对数据进行计算处理,首先将SpCalc标志清零,以保证下次能正常判断,然后进入数据处理程序,由于这里的闸门时间为1s,而显示要求为转/分,因此,要将测到的数据进行转换,转换的方法是将测得的数据乘以60,但由于转轴上安装有12只磁钢,每旋转一周可以得到12个脉冲,因此,要将测得的数据除以12,所以综合起来,将测得的数据乘以5即可得到每分钟的转速。计算得到的结果是二进制的整数,要将数据送往显示缓冲区需要将该数转化为BCD码。运算得到

12、的是压缩BCD码,需要将其转换为非压缩BCD码,从标号CBCD开始的一段程序即作了这样的处理。需要说明的是,这里多位二进制乘法和多位二进制到BCD码的转换都是用了现成的成熟子程序,因此,首先将二进制数转换为压结合实际BCD码,然后再转换成非压缩BCD码,看似多写了些程序,实际上这对于保证程序的质量很有好处。定时器T1用作4ms定时发生器,在定时中断程序中进行数码管的动态扫描,同时产生1s的闸门信号。1s闸门信号的产生是通过一个计数器Count,每次中断时间为4ms,每计250次即为1s,到了1s后,即清除计数器Count,然后关闭作为计数器用的T0,读出TH0、TL0中的数值,分别送入SpCoun和SpCoun+1单元,将T0中的值清空,置SpCalc标志为1,要求主程序进行速度值的计算。这里还有一个细节,用作1s闸门信号产生的Count每次中断都会加1,而T0却有一个周期是被关闭的,因此,计数值是251而不是250。参考文献1李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998 2 张毅刚.单片机原理及应用.北京:高等教育出版社,20033阎石.数字电子技术基础(第三版). 北京:高等教育出版社,19894 戴卫恒 .51单片机C语言应用程序设计.北京:电子工业出版社,2006

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1