简易秒表的制作.docx
《简易秒表的制作.docx》由会员分享,可在线阅读,更多相关《简易秒表的制作.docx(14页珍藏版)》请在冰豆网上搜索。
简易秒表的制作
课题设计论文
课题名称:
简易秒表的制作
班级:
D10电气
姓名:
李帅刘启通
学号:
201003210123201003210124
指导教师:
李红艳
二O一O年十二月二十日
摘要
自从1974年美国Fairchild公司研制出第一台单片机F8之后,迄今为止,单片机经历了由4位机到8位机再到16位机、32位机的发展过程。
单片机制造商很多,主要有美国的Intel、Motorola、Zilog、Atmel等公司。
目前,单片机正朝着高性能、多品种方向发展。
近年来,32位单片机已进入了实用阶段,但是由于8位单片机在性能价格比上占有优势,而且8位增强型单片机在速度和功能上并不逊色于16位单片机,因此在未来相当长的时期内,8位单片机仍是单片机的主流机型。
AT89C51单片机是另外一种使用非常多的单片机,因其功耗低、体积小等特点而被广大用户所选。
本文的主要内容是掌握各种单片机的结构,接口,片上外设的特点,并利用自行制作的单片机最小系统,完成一个简单应用【简易秒表】的设计与软件及硬件制作,来实现分、秒显示。
关键词:
单片机高性能多品种简易秒表AT89C51
目录
摘要2
一、设计方案4
1.1设计题目:
4
1.2设计要求:
4
1.3设计思路:
4
二、硬件知识及硬件线路设计图5
2.18051单片机5
2.2时钟电路与复位电路6
2.3数码管6
2.4系统硬件线路设计图7
三、程序流程图8
四、程序设计9
五、心得体会12
六、参考文献13
一、设计方案
1.1设计题目:
简易秒表的制作
1.2设计要求:
(1)从右往左显示秒值的个位、十位,分值的个位、十位,个位能向十位进位;
(2)上电后首先显示0000,表示从0000秒开始计时,当时间显示到5959时,4位显示都清零,从头开始。
(3)以三个独立式按键实现复位、启动、停止。
1.3设计思路:
(1)整体程序主要分为3个部分:
主程序、显示子程序和定时器中断程序。
主程序主要是初始化部分和不断调用动态显示子程序部分。
动态显示子程序完成4位LED的轮流位扫描,它被主程序不断调用,以保证稳定可靠的显示。
显示时间的刷新由定时器中断产生,定时器每100ms中断一次,当中断10次后(即1s后),对时间单元(秒计数单元、分计数单元)进行更新,然后通过拆字子程序将时间单元里面的十六进制数拆开为两个BCD码,并送到显示缓冲区。
返回主程序后显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。
(2)用中断的编程思路使用定时器T0,定时器工作在定时方式,实现1秒定时,秒表计时显示用动态显示方式实现;通过键盘扫描方式取得KE0、KE1、KE2的键值,用键盘的中断处理程序实现秒表的启动、停止、清0等功能。
4位LED显示的位码由单片机的P2口输出,段码由P0口输出,P2口线与LED之间接有200Ω限流电阻;LED为共阳极数码管,显示方式为动态显示方式;3个按键可以采用独立式键盘,其中两个按键分别连接到外部中断INT0、INT1,第3个按键连接到定时器1的T1端口,以中断方式实现键盘的扫描。
二、硬件知识及硬件线路设计图
2.18051单片机
(1)8051单片机的基本组成:
中央处理器(CPU)、内部数据存储器(内部RAM)、内部程序存储器(内部ROM)、
定时/计数器、并行I/O口、串行口、中断控制系统、时钟电路。
(2)8051芯片共有40个引脚,除了电源、地、两个时钟输入/输出脚以及32个I/O引脚外,还有4个控制引脚:
ALE(低8位地址锁存允许)、(片外ROM读选通)、RST(复位)、(内外ROM选择)。
8051单片机的内部结构
图为8051的引脚图
2.2时钟电路与复位电路
(1)在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,这就是单片机的时钟振荡电路,电容C1和C2取30pF左右,晶体的振荡频率为6MHz。
(2)单片机复位的条件是:
必须使RST/VPD或RST引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。
单片机复位期间不产生ALE和PSEN信号
2.3数码管
(1)数码管由8个发光二极管构成,通过不同的组合可显示数字0~9、字符A~F、H、L、P、R、U、Y、符号“”及小数点“”。
数码管又分为共阴极和共阳极两种结构
(2)数码管工作原理:
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
2.4系统硬件线路设计图
三、程序流程图
四、程序设计
软件设计:
软件整体设计思路是以动态显示作为主程序,按键查询采用中断方式;秒定时采用定时器T0中断方式进行,定时器T0定时时间为100ms,定时器100ms溢出一次,溢出10次后秒值加1;计时的开启与关闭受控于按键处理程序。
源代码
MSECEQU20H
SECONDEQU21H
MINEQU22H
;--------------------各程序入口------------------
ORG0000H
LJMPMAIN
ORG0003H
LJMPKE1
ORG000BH
LJMPCONT
ORG0013H
LJMPKE0
ORG001BH
LJMPKE2
;-------------------主程序------------------
MAIN:
MOVTMOD,#61H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTH1,#0FFH
MOVTL1,#0FFH
MOVMSEC,#0AH
MOVSP,#3FH
MOVSECOND,#00H
MOVMIN,#00H
MOV33H,#00H
MOV32H,#00H
MOV31H,#00H
MOV30H,#00H
MOVIE,#8FH
SETBTR0
START:
LCALLDISP
SJMPSTART
;---------------LED动态显示子程序--------------
DISP:
MOVR0,#30H
MOVR7,#00H
MOVR2,#04H
MOVR3,#08H
MOVA,@R0
DISP1:
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
MOVA,R3
MOVP2,A
DJNZR7,$
DJNZR7,$
MOVP0,#0FFH;注意:
清屏
RRA
MOVR3,A
INCR0
MOVA,@R0
DJNZR2,DISP1
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;-------------------时器中断子程序-------------------------
CONT:
PUSHACC
MOVTH0,#3CH
MOVTL0,#0B0H
DJNZMSEC,RN
MOVMSEC,#0AH
INCSECOND
MOVA,SECOND
MOVR1,#31H
LCALLBINBCD
MOVA,SECOND
CJNEA,#60,RN
MOVA,#00
MOVSECOND,A
MOVR1,#31H
LCALLBINBCD
MOVA,MIN
INCA
MOVMIN,A
MOVR1,#33H
LCALLBINBCD
MOVA,MIN
CJNEA,#60,RN
MOVA,#00H
MOVMIN,A
MOVR1,#33H
LCALLBINBCD
RN:
POPACC
RETI
;------------------十六进制转BCD码拆字子程序-------------------
BINBCD:
MOVB,#10
DIVAB
MOV@R1,A
DECR1
MOVA,B
MOV@R1,A
RET
;-------------按键1中断服务程序-----------------
KE1:
CLRTR0
RETI
;-------------按键2中断服务程序-----------------
KE2:
MOVSECOND,#00H
MOVMIN,#00H
MOV33H,#00H
MOV32H,#00H
MOV31H,#00H
MOV30H,#00H
RETI
;-------------按键0中断服务程序-----------------
KE0:
SETBTR0
RETI
END
五、心得体会
通过本次秒表的设计后,我从中学到了很多东西,对MC-51单片机有了更深入的了解,对I/O口的使用,晶振电路的接法,以及复位电路等的掌握都有了很大的提高,对一些指令的使用更加熟悉了,巩固了课本上所学的知识,实现了学以致用的目的,在摸索设计电路中我体会到了知识的伟大性,发挥了我的主观能动性和创造能力,这为以后的实践打下了良好的基础。
六、参考文献
1.刘守义单片机应用技术西安电子科技大学出版社2007
2.张毅坤.单片微型计算机原理及应用,西安电子科技大学出版社1998
3.余锡存曹国华.单片机原理及接口技术[M].陕西:
西安电子科技大社,2000.7
4.雷丽文微机原理与接口技术[M].北京:
电子工业出版社,1997.2