数字转速表课程设计1.docx
《数字转速表课程设计1.docx》由会员分享,可在线阅读,更多相关《数字转速表课程设计1.docx(18页珍藏版)》请在冰豆网上搜索。
数字转速表课程设计1
目录
目录-1-
第1章前言-2-
第2章基本原理-3-
第3章总体设计思路-4-
3.1设计方案-4-
第4章硬件电路的设计方案-4-
4.1LED显示部分的电路设计-5-
4.2按键电路设计........................................................................................-6-
4.3程序设计总图........................................................................................-7-
第5章软件设计方案-7-
5.1显示当前转速-8-
5.2十进制转换为二进制程序框图-9-
5.3脉冲个数的求取-9-
5.4键盘电路-10-
第6章系统调试-12-
6.1软件模拟仿真-12-
6.2硬件调试-12-
第7章总结与体会-13-
第8章参考文献-14-
附录-15-
第1章前言
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机作为嵌入式微控制器在工业测控系统,智能仪器和家用电气中得到广泛应用。
虽然单片机的品种很多,但MCS-51系列单片机仍不失为单片机中的主流机型。
本课程一MCS-51系列以及派生系列单片机芯片为主介绍单片机的原理与应用,与其特点是由浅入深,注重接口技术和应用。
机电一体化是当今制造技术和产品发展的主要倾向,也是我国机电工业发展的必由之路。
可以认为,它是用系统工程学的观点和方法,研究在机电系统和产品中如何将机械、计算机、信息处理和自动控制技术综合应用,以求机电系统和产品达到最佳的组合。
机电一体化产品所需要的是嵌入式微机,而单片机具有体积小、集成度高、功能强等特点,适于嵌入式应用。
智能仪器、家用电器、数控机床、工业控制等机电设备和产品中竟相使用单片机。
就目前而言,单片机的发展势头依然不减,各种型号和功能更强的单片机和超级接口芯片不断出现,进一步向高层次发展的重要标志就是构成多机系统和分布式网络。
世界上单片机芯片的产量以每年27%的速度递增,到本世纪初已达30亿片,而我国的年需求量也超过了亿片的数量,这表明单片机有着广阔的应用前景。
本课程设计主要针对目前我国早期应用比较广泛的“MCS-51”单片机进行系统的讲解和分析。
为使用和开发各类机电一体化设备和仪表建立基础。
第2章基本原理
利用AT89C51作为主控器组成一个转速表。
电机转速采用光电脉冲传感器来测量,设置定时器/计数器T0和T1,利用其内部定时器T1设置为定时方式,且定时时间为1s。
计数器T0设置为外部脉冲计数工作方式,设在1s内测量的脉冲个数为n,又由于脉冲频率为60个脉冲/转,故测到转速n就是脉冲频率。
定时1s,在1s内允许中断,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,通过计数一定时间内通过定时器的脉冲数通过软硬件结合工作即可测出电机的转速。
第3章总体设计思路
3.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内的脉冲数即转速。
第4章硬件电路的设计方案
根据设计要求和设计思路,硬件电路有三部分组成,即单片机按键电路,LED显示器电路和程序存储器
在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可通过软件定时实现。
硬件定时是利用单片机内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU时间,CPU有较高的工作效率。
采用硬件定时和软件定时并用的方式,即用T0溢出中断功能实现50ms定时,通过软件延时程序实现1s定时。
定时器的TMOD用于设置定时器/计数器的工作方式0~3,并确定用于定时还是用于计数。
TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
LED显示器
8031
脉冲源
键盘
图4-1硬件电路设计图
4.1LED显示部分的电路设计
本课题所采用得是由LED(数码管)作为显示电路,用以显示由单片机所接收的脉冲来转换的BCD码,以及开始测速时的初始状态。
其硬件电路连接是单片机P0.0~P0.7接数码管的由A~G的8各管脚,P2.4~P2.7接数码管的控制端,采用共阴极连接的方法连接图如图4-2所示。
图4-2LED显示电路图
4.2按键电路设计
对按键电路的设计可以由2种方式:
一种方式是直接按键设计,这种设计电路适用于按键较少的控制;另一种方式是矩阵式键盘的设计,它适用于对控制按键较多的电路控制。
本课题总共设计按键有3个启动、停止、复位。
由于课题调试采用的LK-51单片机键盘采用的是矩阵式键盘,为方便电路的调试,因此我所采用矩阵键盘作为控制按键。
接法如图4-3所示。
图4-3按键图
4.3程序设计总图
图4-4总图
第5章软件设计方案
根据设计要求和设计思路,进行模块设计。
8279的初始化
程序模块,定时计数程序模块,数制转换模块,显示模块,转速测量模块。
5.1显示当前转速
转速的显示我们采用了动态扫描的工作方式,LED数码显示管采用4联工阴极显示器,该器件内部已将4个数码显示器的同名字段端并接在一起,从上到下4个数码管的公共阴极分别由一个引脚引出,L1~L4表示。
P1口为字型口,P2口为字位口,每个口都经过集电极开路形式的驱动器74LS47驱动。
得到脉冲个数n
T0开始定时
T1开始计数
脉冲个数m转化为转速n
显示子程序
图5-1显示当前转速程序流程图
5.2十进制转换为二进制程序框图
N
Y
图5-2二进制程序框图
由于给定的转速上限值是以十进制的形式存在于44H---47H单元中,而比较程序所需要的是二进制数,故把二进制数转换成十进制数。
转换后十进制数存入在R3R4中。
5.3脉冲个数的求取
千位的求取是这样的,该数值先减去1000,这时标志位加1,如果差值还大于1000,则返回继续作差,直到差值小于1000为止,这时往下执行,由于在上述过程中多加了一个1,所以这时标志位还应当再减去一个1.百位及个位的求取按照同样的道理进行,这样所记标志位即我们计数器的读数.
Y
N
图5-3
5.4键盘电路
数字转速表的键盘操作应具有3个功能,即:
启动、停止、复位。
确定矩阵式键盘上那个按键被按下通常采用的是行扫描法,其过程如图5-4所示。
。
图5-4键盘扫描流程图
第6章系统调试
6.1软件模拟仿真
试验所涉及的2个软件wave6000和proteus,以下是仿真步骤。
程序调试部分wave6000:
先新建一个工程,并保存在所建工程弹出的对话框中选择AT89C52处理器。
新建一个文档以编辑程序,将所设计的程序输入到新建文档中,并保存文档.asm(汇编源文件)。
将所保存的文档添加到工程中去,再进行工程配置,点击Project菜单下的OptionsforTarget,在弹出的对话框中设晶振为12MHZ,将CreateHEXFile打上勾,再编译文件。
仿真部分proteus:
运行proteus的ISIS后进入仿真界面将所需元件选择好,根据原理图画出仿真图,待仿真图换好后双击AT89C52写入由wave6000所产生的程序,按开始进行仿真。
6.2硬件调试
硬件调试的步骤如下:
接通电源和数据线,通过软件将在wave6000中生成的HEX文件下载到单片机板子上,先对板子关电当显示请上电时按下单片机上的电源开关按钮上电下载程序到单片机中,通过按键和LED的显示进行调试。
当程序下载完之后,按下电源开关,LED上显示初始状态,按下启动键显示接收数据的状态,按下停止键后显示当前所记录的数据,按下复位键则显示初始状态。
第7章总结与体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次的课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在李老师的辛勤指导下,终于迎刃而解。
同事,在李老师的身上我学得到很多实用的知识,在此我表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示衷心的感谢。
第8章参考文献
1、刘国荣.单片微型计算机技术.机械工业出版社,1996
2、张迎新.单片微型计算机原理、应用及接口技术.国防工业出版社,1993
3、房小翠.编单片机实用系统设计技术.国防工业出版社,1999
4、何立民.编单片机应用系统设计.北航出版社,2005
5、曹琳琳.编单片机原理及接口技术.国防科技大学出版社,2000
附录
程序清单
ORG0000H
SJMPMAIN
ORG000BH
LJMPDVT0;定时器T0中断
ORG0030H
MAIN:
MOVSP,#50H;设置堆栈区
MOV30H,#0;计数单元清零
MOV31H,#0
MOV7AH,#11H;复位状态字型码送缓冲区
MOV7BH,#11H
MOV7CH,#11H
MOV7DH,#11H
MOV01H,#14H
MOVTMOD,#51H;设置T0、T1的工作方式字
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTH1,#0
MOVTL1,#0;T0、T1置初值
CLRTR1
CLRTR0
CLRET0
CLREA
LOOP1:
LCALLDISPLAY;重复、显示查键
LCALLKEY
CLRC
CJNEA,#0FH,LOOP2
JNCLOOP1
LOOP2:
CJNEA,#00H,LOOP3;启动键没被按下
SETBET0
SETBTR0
SETBEA
SETBTR1
LJMPLOOP1
LOOP3:
CJNEA,#01H,LOOP4;停止键没被按下
CLRTR1
CLRTR0
CLRET0
CLREA
LJMPLOOP1
LOOP4:
CJNEA,#02H,LOOP1;回复键没被按下
LJMPMAIN
DVT0:
PUSHPSW;T0中断程序
PUSHACC;相关内容入堆栈
MOVTH0,#3CH
MOVTL0,#0B0H;T0重置初值
DJNZ01H,RTN;定时1s未到
MOV01H,#14H
CLRET0
CLRTR1
CLREA
CLRTR0
MOV31H,TH1
MOV30H,TL1;计数器T1清零,准备下一轮计数
MOVTH1,#0
MOVTL1,#0
LCALLHEXBCD
LCALLDISPLAY
SETBET0
SETBTR1
SETBEA
SETBTR0
RTN:
POPACC
POPPSW
RETI
HEXBCD:
PUSHPSW;数码转换化子程序
SETBRS0
SETBRS1
MOVA,30H
MOVB,#60
MULAB
MOV31H,B
MOV30H,A
LCALLEXCH;二进制到BCD码的转化
MOVA,33H;以下是将转化后的BCD码存入相应的缓存区
ANLA,#0FH
MOV7BH,A
MOVA,33H
SWAPA
ANLA,#0FH
MOV7AH,A
MOVA,32H
ANLA,#0FH
MOV7DH,A
MOVA,32H
SWAPA
ANLA,#0FH
MOV7CH,A
CLRRS0
CLRRS1
POPPSW
RET
EXCH:
MOV40H,#0
MOV41H,#0
MOVR7,#10H
LP1:
MOVR0,#30H
MOVR6,#2
CLRC
LP2:
MOVA,@R0
RLCA
MOV@R0,A
INCR0
DJNZR6,LP2
MOVR1,#41H
MOVR5,#02H
LP3:
MOVA,@R1
ADDCA,@R1
DAA
MOV@R1,A
DECR1
DJNZR5,LP3
DJNZR7,LP1
MOV33H,40H
MOV32H,41H
RET
KEY:
PUSHPSW;按键扫描程序
JBP3.0,X1
LCALLDISPLAY;延时去抖
JBP3.0,X1
MOVA,#0
SJMPX4
X1:
JBP3.1,X2
LCALLDISPLAY
JBP3.1,X2
MOVA,#1
SJMPX4
X2:
JBP3.2,X3
LCALLDISPLAY
JBP3.2,X3
MOVA,#2
SJMPX4
X3:
MOVA,#0FH
X4:
POPPSW
RET
DISPLAY:
PUSHACC;显示子程序
PUSHPSW;A,PSW
SETBRS1
SETBRS0
MOVDPTR,#TAB
MOVR0,#7AH
MOVR6,#0FEH
NEXT:
MOVA,@R0;扫描显示初始化
MOVCA,@A+DPTR;四位扫描轮流显示
MOVP0,A
MOVA,R6
MOVP2,A
ACALLDAY
MOVP2,#0FFH;显示中的消隐处理
INCR0
RLA
MOVR6,A
CJNER6,#0EFH,NEXT
POPPSW
POPACC
RET
TAB:
DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;;字形码表
DB
80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0BFH;
DAY:
MOVR4,#4;软件延时1s
D1:
MOVR7,#123
DJNZR7,$
DJNZR4,D1
RET
END电气与信息工程系课程设计评分表
项目
评价
设计方案的合理性与创造性
开发板焊接及其调试完成情况
硬件设计或软件编程完成情况*
硬件测试或软件调试结果*
设计说明书质量
设计图纸质量
答辩汇报的条理性和独特见解
答辩中对所提问题的回答情况
完成任务情况
独立工作能力
组织纪律性(出勤率)
综合评分
指导教师签名:
________________
日期:
_______________