基于单片机实现的数字转速表的设计Word格式.docx
- 文档编号:21628587
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:15
- 大小:89.08KB
基于单片机实现的数字转速表的设计Word格式.docx
《基于单片机实现的数字转速表的设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的数字转速表的设计Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
电机转速采用光电脉冲传感器来测量,设置定时器/计数器T0和T1,利用其内部定时器T1设置为定时方式,且定时时间为1s。
计数器T0设置为外部脉冲计数工作方式,设在1s内测量的脉冲个数为n,又由于脉冲频率为60个脉冲/转,故测到转速n就是脉冲频率。
定时1s,在1s内允许中断,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,通过计数一定时间内通过定时器的脉冲数通过软硬件结合工作即可测出电机的转速。
三总体设计思路:
1.设计方案
该系统的功能概括起来就是能测量当前电机的转速,并且进行超速报警。
要完成此功能,关键在于转速的测量,电机转速采用传感器或由信号发生器的方波脉冲信号来模拟,因此只要在给定的时间内对脉冲计数,即可测出转速。
例如,可将脉冲信号接到引脚,外部中断1选择边沿触发方式。
MCS-51单片机内有两个定时器/计数器T0和T1,利用其内部定时器T1设置为定时方式,且定时时间为1s。
定时1s,在1s内允许中断,没中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,设为m,则转速n=m。
我们采用8031作为基本元件.在P3.6口输入脉冲,按下启动键后开始输入脉冲,输入脉冲的同时,定时器和计数器开始工作,这期间允许中断,当定时器到时时,定时器和计数器停止工作。
此时计数器已经统计1s内的脉冲数即转速。
2.硬件电路的设计方案
根据设计要求和设计思路,硬件电路有三部分组成,即单片机按键电路,LED显示器电路和程序存储器
在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可通过软件定时实现。
硬件定时是利用单片机内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU时间,CPU有较高的工作效率。
采用硬件定时和软件定时并用的方式,即用T0溢出中断功能实现50ms定时,通过软件延时程序实现1s定时。
定时器的TMOD用于设置定时器/计数器的工作方式0~3,并确定用于定时还是用于计数。
TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
LED显示器
脉冲源
光耦
8031
程序存储器
键盘
硬件电路设计图
3.软件设计方案
根据设计要求和设计思路,进行模块设计。
8279的初始化
程序模块,定时计数程序模块,数制转换模块,显示模块,转速测量模块。
(1)显示当前转速
转速的显示我们采用了动态扫描的工作方式,LED数码显示管采用4联工阴极显示器,该器件内部已将4个数码显示器的同名字段端并接在一起,从上到下4个数码管的公共阴极分别由一个引脚引出,L1~L4表示。
P1口为字型口,P2口为字位口,每个口都经过集电极开路形式的驱动器74LS47驱动。
得到脉冲个数n
T0开始定时
T1开始计数
Y
N
脉冲个数m转化为转速n
显示子程序
显示当前转速程序流程图
(2)键盘处理程序流程图
系统操作说明
按下A键,进入显示当前转速功能
按下B键,进入显示给定上限值转速功能
按下C键,进入修改上限值转速功能
按下D键,进入清除显示功能键。
对于数字键0~9,只有在进入C键功能后才有效,其它时刻按下任何一个数字键将无效。
而在进入C键功能键后,还未输完四个数字键之前,随意输入任何一个功能键将视之无效。
Y
(3)报警程序流程图
当转速超过给定的上限值1500转/分时,根据要求要作出报警提示,我们的设计是转速超过规定值时,接在P3.6口的喇叭发出“嘀嘀的响声”,同时数码显示器显示FFFF。
还有当转速值超过4位时喇叭也发出警报声。
是利用定时器T1与软件一起实现的。
报警的解除需要按下停止按扭来进行,否则将一直持续.
(4)十进制转换为二进制程序框图
Y
由于给定的转速上限值是以十进制的形式存在于44H---47H单元中,而比较程序所需要的是二进制数,故把二进制数转换成十进制数。
转换后十进制数存入在R3R4中。
(5)脉冲个数的求取
千位的求取是这样的,该数值先减去1000,这时标志位加1,如果差值还大于1000,则返回继续作差,直到差值小于1000为止,这时往下执行,由于在上述过程中多加了一个1,所以这时标志位还应当再减去一个1.百位及个位的求取按照同样的道理进行,这样所记标志位即我们计数器的读数.
4.内存空间分配
地址分配
作用
40H---43H
存放上限值转速
50H---51H
存放测到的脉冲个数
52H--53H
存放当前转速结果单元
四总结与体会
一份耕耘,一份收获。
通过两周的单片机课程设计,使我对汇编语言有了进一步的认识。
为了以后使自己能进一步学好该门科以及其它的科目,我深深地感到要有科学的思维方法和学习方法是极其重要的。
实习已经很快的过去,蓦然回首,深深的认识到汇编的重要性。
由于对微机原理的课程有点茫然,所以拿到数字转速表这个课题时不知道是如何下手,一下子没有头绪。
于是去图书馆查找了相关资料后开始理清了设计的思路。
从程序设计到上机调试以及说明书的编写,都花费了不少的时间,还好课题能够顺利通过。
小小的胜利给了我自己很大的信心。
这其中也出现了不少的问题。
比如调试过程中,使我花费了不少工夫重温系统软件的应用,真是有种“才下眉头,又上心头”的感觉。
尽管在课程设计当中遇到了不少的问题,但在老师及同学的帮助下迎刃而解了。
做完设计我进一步认识到,任何事情,开始的时候,都感觉很难。
但,只要有信心克服困难,坚持到底,永不气馁,就能达到胜利的彼岸。
还有,在搞设计的时候,查阅资料也是很重要的,“他山之石,可以攻玉”,掌握足够的信息,就是掌握成功的关键。
回顾这两周的课程设计,我的收获很大,巩固了这学期所学的单片机这门课程,并且把以前所学的知识复习了,还自学了很多关于芯片的知识。
认为和以前进行的课程设计一样,开始总是一片茫然,但在老师的指导下,将逐步打开思路,万里长征终于走出了第一步,经过同组同学的讨论,仔细分析,终于定下了方案。
,通过对这些问题的分析讨论,我对数字转速表的工作原理和工作方式有了更深的理解,更多的是使我初步形成了一种全局考虑,对问题各个击破的设计思路。
总之,这次课程设计相对来说比较成功,要感谢各位老师的耐心指导,也离不开全组成员的共同努力。
我相信不管做什么课程设计,只要是大家一起多问多想多讨论,都将会有多的收获,都能取得成功。
五.程序清单
ORG0000H
SJMPMAIN
ORG0003H
SJMPFWE0
ORG000BH
SJMPFWT0
ORG0013H
SJMPFWE1
ORG001BH
SJMPFET1
ORG0030H;
设置中断向量
MAIN:
MOVTMOD,#52H;
写入工作方式字
MOVTH1,#00H
MOVTL1,#00H;
写入计数初值
MOVTH0,#56
MOVTL0,#56
MOVR1,#50H;
初始化定时器:
T1为计数方式1,T0为计数方式0
MOVR4,#50;
R4为辅助T0计时
MOVR0,#40H;
R0作为指针
SETBET1
SETBET0
SETBEX0
SETBEX1
SETBIT0
SETBIT1
SETBEA;
开放中断,并设置中断方式
MOV50H,#08H
MOV51H,#06H
MOV52H,#02H
MOV53H,#01H;
用做显示时的片选
SJMP$
FWE0:
SETBTR0
SETBTR1;
启动定时器0和1
SETBP3.6;
显示正常发光
CLRIE0;
启动完毕,关外部中断
RET1
FWE1:
CLRTR0
CLRTR1;
停止定时器T0和T1
CLRP3.6;
不显示
CLRIE1;
停止后,停止信号无效
FWT0:
DJNZR4,RETN0;
1秒定时未到,继续
1秒定时到,关闭计数器
MOVR4,#50;
R4置数50,下次测量时再用
ACALLJSH;
计算每分钟的转数,其值为二进制
存放到30H和31H中
ACALLBTOD
ACALLXSH;
调用数据处理程序
FWT1:
MOVTH1,#00H
MOVTL1,#00H;
重赋初值
ACALLBJ;
调用报警程序
BTOD:
LOPQ:
CLRC;
清进位标志
MOVA,30H16位数低8位放在A中
SUBBA,#0E8H;
A-0E8H放入A中
MOV30H,A;
保留差值
MOVA,31H;
高8位
SUBBA,#03H;
A-03H放入A中
INC40H;
千位加1
JNCLOPQ
DEC40H;
千位减1
LOPB:
MOVA,30H;
16位数低8位放在A中
SUBBA,#64H;
A-64H放入A中
INC41H;
百位加1
JNCLOPB
DEC41H;
求百位
LOPS:
CLRC
MOVA,30H
SUBBA,#10
MOV30H,A
INC42H
JNCLOPS
DEC42H;
求十位
LOPG:
ADDA,#10
MOV43H,A
MOVA,#40H
SUBBA,#2
JNCRETN
ACALLBJ
RETN:
RET;
求个位
DISP:
MOVR0,#40H;
赋值
MOVR1,#50H
XSH:
MOVP1,@R0;
P1口为50单元中的内容
MOVP0,@R1;
P0口为40单元中的内容
INCR0;
内存单元加1
INCR1
CJNER0,#44,NEXT;
判断4位数是否显示完
MOVR0,#40H
重新赋值
NEXT:
JBP3.6,XSH
RET
BJ:
MOVR1,#50H
XS:
MOVP1,#0FH
MOVP0,@R1
CJNER1,#54H,GOON
MOVR1,#50H;
使显示器显示FFFF
GOON:
CPL,P3.0;
发声,报警
JNBP3.6,XS;
按下停止按扭,解除警报
七参考文献
1、《单片微型计算机技术》
刘国荣编机械工业出版社
2、《单片微型计算机原理、应用及接口技术》
张迎新编国防工业出版社
3、《单片机实用系统设计技术》
房小翠编国防工业出版社
4、《单片机应用系统设计》
何立民编北航出版社
5、《单片机原理及接口技术》
曹琳琳编国防科技大学出版社
电气与信息工程系课程设计评分表
项目
评价
设计方案的合理性与创造性
硬件制作或软件编程完成情况*
硬件制作测试或软件调试结果*
设计说明书质量
设计图纸质量
答辩汇报的条理性和独特见解
答辩中对所提问题的回答情况
完成任务情况
独立工作能力
组织纪律性(出勤率)
综合评分
指导教师签名:
________________
日期:
________________
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 实现 数字 转速表 设计