基于MCS51的单片机秒表设计.docx
《基于MCS51的单片机秒表设计.docx》由会员分享,可在线阅读,更多相关《基于MCS51的单片机秒表设计.docx(8页珍藏版)》请在冰豆网上搜索。
基于MCS51的单片机秒表设计
基于MCS51的单片机秒表设计
————————————————————————————————作者:
————————————————————————————————日期:
一、设计的任务与要求……3
二、硬件电路设计……4
三、软件设计流程及描述……5
四、设计调试过程……13
五、源程序代码……14
六、收获体会……15
七、参考文献…………………………
一、
设计的任务与要求
用AT89C51设计一个2位的LED数码显示作为“秒表”:
显示时间为00-99秒,每秒自动加1,另设计一个“开始"键和一个“复位”键。
按键说明:
按“开始"按键,开始计数,数码管显示从00开始每秒自动加一,再按“开始”键,停止计数;按“复位"按键,系统清零,数码管显示00。
二、硬件电路设计
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
图1AT89C52实物图图2AT89C52引脚图
主要功能特性:
1、兼容MCS51指令系统
2、8k可反复擦写(大于1000次)FlashROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中断;
6、时钟频率0—24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;
11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
本设计利用AT89C52单片机的定时器/计时器定时和计数的原理,使其能精确计时。
设计中包括硬件电路的设计和系统程序的设计,其硬件电路主要有主控制器、计时与显示电路和复位电路等.主控制器用AT89C52,显示电路采用共阴极LED数码管显示计时时间。
利用中断系统使其能实现开始暂停的功能.P3.0,P3。
1,RST开口接四个按钮,分别实现开始,暂停,复位的功能。
电路原理图设计最基本得要求是正确性,其次布局合理,最后在正确性和布局合理的前提下力求完美。
由于条件限制本系统采用软件模拟硬件系统,采用proteus软件进行模拟设计及调试工作.
图3七段数码管引脚图
三、软件设计流程及描述
四、设计调试过程
利用51单片机设计一个1/100秒表,最大能显示99秒,具有启停、复位等功能。
用汇编语言编程,数码管显示!
1、确立总体设计方案;
2、系统整体框图设计;
3、各个单元电路设计与分析;
4、应用软件设计与调试;
5、系统仿真与调试;
6、分析结果,得出结论以及展望.
图4Keil调试调试完成图
图5Proteus调试效果图
五、源程序代码
========================================================
ORG0000H
AJMPMAIN
ORG0003H
AJMPX0_INT
ORG000BH
AJMPT0_INT
ORG0013H
AJMPX1_INT
MAIN:
MOVTMOD,#01H;T0定时方式1
MOVTH0,#(65536-50000)/256;50ms@12MHz
MOVTL0,#(65536-50000)MOD256;
SETBTR0
SETBET0;开启定时中断
SETBEX0
SETBEX1
SETBEA;定时器初始化结束,下面循环显示即可
MOVR1,#99H;0~99计数。
MOVR7,#1;50ms计数。
MOVP0,#3FH
MOVP2,#3FH
LOOP:
SJMPLOOP
;——-—-———--------————————-——--——-——-—--——-——---————----———-—
DELAY:
;延时子程序。
AA4:
MOVR4,#0
DJNZR4,$
DJNZR4,$
RET
;—--—-————-—---------———-———-——--———----—--————---——-—————--
X0_INT:
;启动/停止
CPLF0
RETI
;—-———-—--—---—-———-—-—--——-—--————-—————————--————-——-————-
X1_INT:
;清零
MOVR1,#0
MOVP0,#3FH
MOVP2,#3FH
RETI
;——————-—--—--—-——-—-—-—--————-——---——-—---—-————--———----—-
T0_INT:
;50ms中断执行一次.
MOVTL0,#(65536—50000)MOD256;
MOVTH0,#(65536-50000)/256;50ms@12MHz
DJNZR7,T0_END;中断不到20次.
MOVR7,#20
JNBF0,T0_END
MOVA,R1
ADDA,#1
DAA
MOVR1,A
ANLA,#0FH
MOVDPTR,#TAB
MOVCA,@A+DPTR;查出段码
MOVP2,A
MOVA,R1
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR;查出段码
MOVP0,A;显示十位数。
T0_END:
RETI
;--——-—-————-————-----—----———————————-——-—--—---——-—-——————
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
===========================================================文档为个人收集整理,来源于网络个人收集整理,勿做商业用途
六、收获体会
通过这次的秒表设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。
本次设计主要是对已学习的模拟电子技术、数字电子技术和单片机的综合应用,同时加上电路等知识,设计完成了利用软件模拟的秒表。
经过几天的奋战,我感受很深。
在设计过程中深感自己在培养动手能力这方面还需很大的努力。
单片机课程设计不仅给我提供了一个很好的展现应用自己所掌握的知识的平台,又是检验自己所学知识的一次考核.在设计的过程中我也不可避免的遇到了很多的问题。
尤其是在调试过程中,会因为某些原因出不来结果,但通过老师对我的帮助最后还是成功的完成了这次的设计。
经过过这次的系统设计,我也发现了不少自己不会的知识,通过查询各方面资料,我也进步了很多,也学会了很多上课时没掌握的东西,最后在调试结果出来后,我更是无比的兴奋,无比的自豪.总之,通过这次电子课程设计,我对自己的知识有了更好的掌握和应用,这使我在以后的学习和生活中受用终身。
七、参考文献
《单片机原理与应用设计》,张毅刚彭喜元编著,电子工业出版社