资源描述
数字转速表的设计课+++程+++设++计
———————————————————————————————— 作者:
———————————————————————————————— 日期:
23
个人收集整理 勿做商业用途
湖南工程学院
课 程 设 计
课程名称
课题名称
专 业
班 级
学 号
姓 名
指导教师
2005年 3 月 11 日
湖南工程学院
课 程 设 计 任 务 书
课程名称 单片机原理与应用
课 题 数字转速表的设计
专业班级 电气工程
学生姓名
学 号
指导老师
审 批
任务书下达日期 2005 年 3 月 7 日
任务完成日期 2005年 3 月 12 日
目 录
一、 前言
二、 系统工作原理
三、 总体设计
1、 设计方案
2、 硬件任务及结构框图
3、 软件任务及模块图
4、 各模块说明
5、 内存空间分配
四、 结束语
五、 程序清单
六、 附录 系统原理图
七、参考资料
八、课程设计评分表
前言
单片机课程是已们实践性很强的专业技术课程,初学者只有通过大量的编程、实验、调试、设计制作等一系列的实践环节的训练,才能真正理解单片机软件及硬件设计和调试技巧,才能灵活的运用单片机的各条指令系统和各种开发调试工具,设计出高效、可靠、低功耗、体积更小的单片机应用系统,充分体现单片机的嵌入式应用特色。要进行单片机的开发、实验及课程设计等,必须有一套软硬件开发工具,这样可以省下许多宝贵的时间及精力,提高工作效率。单片机是计算机家族的一个重要分支,它具有体积小、价格低、面向控制的特点,适用于各种工业控制、仪器仪表装置,在人类生产和生活的各个领域都有极为广泛的应用。
近年来,微型计算机的发展速度足以让世人惊叹,以计算机为主导的信息技术作为一种崭新的生产力,正在向社会的各个领域渗透,也使机电一体化的进程大大加快。
机电一体化是当今制造技术和产品发展的主要倾向,也是我国机电工业发展的必由之路.可以认为,它是用系统工程学的观点和方法,研究在机电系统和产品中如何将机械、计算机、信息处理和自动控制技术综合应用,以求机电系统和产品达到最佳的组合。机电一体化产品所需要的是嵌入式微机,而单片机具有体积小、集成度高、功能强等特点,适于嵌入式应用。智能仪器、家用电器、数控机床、工业控制等机电设备和产品中竟相使用单片机。
就目前而言,单片机的发展势头依然不减,各种型号和功能更强的单片机和超级接口芯片不断出现,进一步向高层次发展的重要标志就是构成多机系统和分布式网络.世界上单片机芯片的产量以每年27%的速度递增,到本世纪初已达30亿片,而我国的年需求量也超过了亿片的数量,这表明单片机有着广阔的应用前景。本课程主要针对目前我国早期应用比较广泛的“MCS—51”单片机进行系统的讲解和分析。为使用和开发各类机电一体化设备和仪表建立基础.文档为个人收集整理,来源于网络个人收集整理,勿做商业用途
二基本原理
利用8031作为主控器组成一个转速表。电机转速采用光电脉冲传感器来测量,设置定时器/计数器T0和T1,利用其内部定时器T1设置为定时方式,且定时时间为1s.计数器T0设置为外部脉冲计数工作方式,设在1s内测量的脉冲个数为n,又由于脉冲频率为60个脉冲/转,故测到转速n就是脉冲频率。定时1s,在1s内允许中断,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,通过计数一定时间内通过定时器的脉冲数通过软硬件结合工作即可测出电机的转速。
三总体设计思路:
1.设计方案
该系统的功能概括起来就是能测量当前电机的转速,并且进行超速报警。要完成此功能,关键在于转速的测量,电机转速采用传感器或由信号发生器的方波脉冲信号来模拟,因此只要在给定的时间内对脉冲计数,即可测出转速。例如,可将脉冲信号接到引脚,外部中断1选择边沿触发方式。MCS—51单片机内有两个定时器/计数器T0和T1,利用其内部定时器T1设置为定时方式,且定时时间为1s。计数器T0设置为外部脉冲计数工作方式,设在1s内测量的脉冲个数为n,又由于脉冲频率为60个脉冲/转,故测到转速n就是脉冲频率。定时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开始计数
M>Mmaxx
报
警
程
序
Y
N
脉冲个数m转化为转速n
显示子程序
返回
显示当前转速程序流程图
(2)键盘处理程序流程图
系统操作说明
按下A键,进入显示当前转速功能
按下B键,进入显示给定上限值转速功能
按下C键,进入修改上限值转速功能
按下D键,进入清除显示功能键.
对于数字键0~9,只有在进入C键功能后才有效,其它时刻按下任何一个数字键将无效.而在进入C键功能键后,还未输完四个数字键之前,随意输入任何一个功能键将视之无效。
保护现场
指向命令口
设置读FIFO命令字
读键值
功能键?
N
Y
查功能地址转移表
转向各功能键处理程序
恢复现场
返回
(3)报警程序流程图
开始
T1初始化
启动
T1>1500?
R6=0???
重赋初值
R7=0?
发出嘀嘀声报警
返回
当转速超过给定的上限值1500转/分时,根据要求要作出报警提示,我们的设计是转速超过规定值时,接在P3。6口的喇叭发出“嘀嘀的响声”,同时数码显示器显示FFFF。还有当转速值超过4位时喇叭也发出警报声.是利用定时器T1与软件一起实现的.报警的解除需要按下停止按扭来进行,否则将一直持续。
(4)十进制转换为二进制程序框图
赋初值
3→R2 0→R3
((R0)) →R4
R2R4*10→R3R4 (R0)+1→R0
(R3R4)+((R0)) →R3R4
R2-1=0?
N
返回
Y
由于给定的转速上限值是以十进制的形式存在于44H—-—47H 单元中,而比较程序所需要的是二进制数,故把二进制数 转换成十进制数。转换后十进制数存入在R3R4中。
(5)脉冲个数的求取
千位的求取是这样的,该数值先减去1000,这时标志位加1,如果差值还大于1000,则返回继续作差,直到差值小于1000为止,这时往下执行,由于在上述过程中多加了一个1,所以这时标志位还应当再减去一个1。百位及个位的求取按照同样的道理进行,这样所记标志位即我们计数器的读数。
初值A
B=A-1000
标志位加1
B>1000?
Y
N
标志位-1
返回
4.内存空间分配
地址分配
作用
40H—-—43H
存放上限值转速
50H—-—51H
存放测到的脉冲个数
52H——53H
存放当前转速结果单元
四 总结与体会
一份耕耘,一份收获。通过两周的单片机课程设计,使我对汇编语言有了进一步的认识。为了以后使自己能进一步学好该门科以及其它的科目,我深深地感到要有科学的思维方法和学习方法是极其重要的。
实习已经很快的过去,蓦然回首,深深的认识到汇编的重要性.由于对微机原理的课程有点茫然,所以拿到数字转速表这个课题时不知道是如何下手,一下子没有头绪.于是去图 书馆查找了相关资料后开始理清了设计的思路。从程序设计到上机调试以及说明书的编写,都花费了不少的时间,还好课题能够顺利通过。小小的胜利给了我自己很大的信心。这其中也出现了不少的问题。比如调试过程中,使我花费了不少工夫重温系统软件的应用,真是有种“才下眉头,又上心头"的感觉。尽管在课程设计当中遇到了不少的问题,但在老师及同学的帮助下迎刃而解了.
做完设计我进一步认识到,任何事情,开始的时候,都感觉很难。但,只要有信心克服困难,坚持到底,永不气馁,就能达到胜利的彼岸。还有,在搞设计的时候,查阅资料也是很重要的,“他山之石,可以攻玉”,掌握足够的信息,就是掌握成功的关键.
回顾这两周的课程设计,我的收获很大,巩固了这学期所学的单片机这门课程,并且把以前所学的知识复习了,还自学了很多关于芯片的知识.认为和以前进行的课程设计一样,开始总是一片茫然,但在老师的指导下,将逐步打开思路,万里长征终于走出了第一步,经过同组同学的讨论,仔细分析,终于定下了方案.,通过对这些问题的分析讨论,我对数字转速表的工作原理和工作方式有了更深的理解,更多的是使我初步形成了一种全局考虑,对问题各个击破的设计思路。
总之,这次课程设计相对来说比较成功,要感谢各位老师的耐心指导,也离不开全组成员的共同努力。我相信不管做什么课程设计,只要是大家一起多问多想多讨论,都将会有多的收获,都能取得成功。
五.程序清单
ORG 0000H
SJMP MAIN
ORG 0003H
SJMP FWE0
ORG 000BH
SJMP FWT0
ORG 0013H
SJMP FWE1
ORG 001BH
SJMP FET1
ORG 0030H ; 设置中断向量
MAIN: MOV TMOD,#52H ;写入工作方式字
MOV TH1,#00H
MOV TL1,#00H ;写入计数初值
MOV TH0,#56
MOV TL0,#56
MOV R1,#50H ;初始化定时器:T1为计数方式1 ,T0为计数方式0
MOV R4,#50 ;R4为辅助T0计时
MOV R0,#40H ;R0作为指针
SETB ET1
SETB ET0
SETB EX0
SETB EX1
SETB IT0
SETB IT1
SETB EA ;开放中断,并设置中断方式
MOV 50H,#08H
MOV 51H,#06H
MOV 52H,#02H
MOV 53H,#01H ;用做显示时的片选
SJMP $
FWE0:SETB TR0
SETB TR1 ;启动定时器0和1
SETB P3。6 ;显示正常发光
CLR IE0 ;启动完毕,关外部中断
RET1
FWE1:CLR TR0
CLR TR1 ;停止定时器T0和T1
CLR P3。6 ;不显示
CLR IE1 ;停止后,停止信号无效
RET1
FWT0:DJNZ R4,RETN0 ;1秒定时未到,继续
CLR TR1 ;1秒定时到,关闭计数器
MOV R4,#50 ;R4置数50,下次测量时再用
ACALL JSH ;计算每分钟的转数,其值为二进制
存放到30H 和31H中
ACALL BTOD
ACALL XSH ;调用数据处理程序
RET1
FWT1:MOV TH1,#00H
MOV TL1,#00H ;重赋初值
ACALL BJ ;调用报警程序
RET1
BTOD:LOPQ:CLR C ;清进位标志
MOV A,30H 16位数低8位放在A中
SUBB A,#0E8H ;A-0E8H放入A中
MOV 30H,A ;保留差值
MOV A,31H ;高8位
SUBB A,#03H ;A-03H放入A中
MOV A,31H ;保留差值
INC 40H ;千位加1
JNC LOPQ
DEC 40H ;千位减1
LOPB:CLR C ;清进位标志
MOV A,30H ;16位数低8位放在A中
SUBB A,#64H ;A-64H放入A中
MOV 30H,A ;保留差值
INC 41H ;百位加1
JNC LOPB
DEC 41H ;求百位
LOPS:CLR C
MOV A,30H
SUBB A,#10
MOV 30H,A
INC 42H
JNC LOPS
DEC 42H ;求十位
LOPG:ADD A,#10
MOV 43H,A
CLR C
MOV A,#40H
SUBB A,#2
JNC RETN
ACALL BJ
RETN:RET ;求个位
DISP: MOV R0,#40H ;赋值
MOV R1,#50H
XSH: MOV P1,@R0 ;P1口为50单元中的内容
MOV P0,@R1 ;P0口为40单元中的内容
INC R0 ;内存单元加1
INC R1
CJNE R0,#44,NEXT ;判断4位数是否显示完
MOV R0,#40H
MOV R1,#50H ;重新赋值
NEXT:JB P3.6,XSH
RET
BJ: MOV R1,#50H
XS: MOV P1,#0FH
MOV P0,@R1
CJNE R1,#54H,GOON
MOV R1,#50H ;使显示器显示FFFF
GOON:CPL ,P3。0 ;发声,报警
JNB P3。6,XS ;按下停止按扭,解除警报
RET
七 参考文献
1、《单片微型计算机技术》
刘国荣 编 机械工业出版社
2、《单片微型计算机原理、应用及接口技术》
张迎新 编 国防工业出版社
3、《单片机实用系统设计技术》
房小翠 编 国防工业出版社
4、《单片机应用系统设计》
何立民 编 北航出版社
5、《单片机原理及接口技术》
曹琳琳 编 国防科技大学出版社
电气与信息工程系课程设计评分表
项 目
评 价
设计方案的合理性与创造性
硬件制作或软件编程完成情况*
硬件制作测试或软件调试结果*
设计说明书质量
设计图纸质量
答辩汇报的条理性和独特见解
答辩中对所提问题的回答情况
完成任务情况
独立工作能力
组织纪律性(出勤率)
综合评分
指导教师签名:________________
日 期:________________
展开阅读全文