单片机课程设计电子时钟.docx
- 文档编号:2856687
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:9
- 大小:30.53KB
单片机课程设计电子时钟.docx
《单片机课程设计电子时钟.docx》由会员分享,可在线阅读,更多相关《单片机课程设计电子时钟.docx(9页珍藏版)》请在冰点文库上搜索。
单片机课程设计电子时钟
单片机课程设计
一、设计内容
该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。
二、电子时钟设计思想:
用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY(自己计算)。
形成定时时间为50ms。
用片内RAM的7BH单元对50ms计数,计20次产生秒计数器7BH单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。
然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。
在处理过程中加上了按键判断程序,能对按键处理。
三、电子时钟硬件图
四、软件程序:
;采用8位LED软件译码动态显示程序
;使用AT89C51单片机,12MHZ晶振,P0输出字段码,P2口输出位选码,用共阳
;LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键。
;片内RAM的70H到77H单元为LED数码管的显示缓冲区
;78H,79H,7AH分别为秒、分、小时计数单元
;7BH为50ms计数器,7CH为调时按键计数器
ORG0000H
LJMPSTART
ORG000BH;定时器/计数器T0中断程序入口
LJMPINTT0
;主程序
START:
MOVR0,#70H
MOVR7,#0CH
INIT:
MOV@R0,#00H
INCR0
DJNZR7,INIT
MOV72H,#10
MOV75H,#10
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#03CH
SETBEA
SETBET0
SETBTR0
START1:
LCALLSCAN
LCALLKEYSCAN
SJMPSTART1
;延时1MS子程序
DL1MS:
MOVR6,#14H
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET
;延时20MS子程序
DL20MS:
ACALLSCAN
ACALLSCAN
ACALLSCAN
RET
;数码管显示程序
SCAN:
MOVA,78H;时间存入显示缓冲区相应位置
MOVB,#0AH
DIVAB
MOV71H,A
MOV70H,B
MOVA,79H
MOVB,#0AH
DIVAB
MOV74H,A
MOV73H,B
MOVA,7AH
MOVB,#0AH
DIVAB
MOV77H,A
MOV76H,B
MOVR1,#70H;循环扫描显示
MOVR5,#80H
MOVR3,#08H
SCAN1:
MOVA,R5
MOVP2,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
MOVA,R5
LCALLDL1MS
INCR1
MOVA,R5
RRA
MOVR5,A
DJNZR3,SCAN1
MOVP2,#00H
MOVP0,#0FFH
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
;“0~9”,“-”的共阳极字段码
;定时器/计数器T0中断服务程序
INTT0:
PUSHACC
PUSHPSW
CLRET0
CLRTR0
MOVTL0,#0B0H
MOVTH0,#03CH
SETBTR0
INC7BH
MOVA,7BH
CJNEA,#14H,OUTT0
MOV7BH,#00
INC78H
MOVA,78H
CJNEA,#3CH,OUTT0
MOV78H,#00
INC79H
MOVA,79H
CJNEA,#3CH,OUTT0
MOV79H,#00
INC7AH
MOVA,7AH
CJNEA,#18H,OUTT0
MOV7AH,#00
OUTT0:
SETBET0
poppsw
popacc
RETI
;按键处理程序
KEYSCAN:
CLREA
JNBP1.0,KEYSCAN0
JNBP1.1,KEYSCAN1
JNBP1.2,KEYSCAN2
KEYOUT:
SETBEA
RET
KEYSCAN0:
LCALLDL20MS
JBP1.0,KEYOUT
WAIT0:
JNBP1.0,WAIT0
INC7CH
MOVA,7CH
CLRTR0
CLRET0
CJNEA,#03H,KEYOUT
MOV7CH,#00
SETBTR0
SETBET0
SJMPKEYOUT
KEYSCAN1:
LCALLDL20MS
JBP1.1,KEYOUT
WAIT1:
JNBP1.1,WAIT1
MOVA,7CH
CJNEA,#02H,KSCAN11
INC79H
MOVA,79H
CJNEA,#3CH,KEYOUT
MOV79H,#00
SJMPKEYOUT
KSCAN11:
INC7AH
MOVA,7AH
CJNEA,#18H,KEYOUT
MOV7AH,#00
SJMPKEYOUT
KEYSCAN2:
LCALLDL20MS
JBP1.2,KEYOUT
WAIT2:
JNBP1.2,WAIT2
MOVA,7CH
CJNEA,#02H,KSCAN21
DEC79H
MOVA,79H
CJNEA,#0FFH,KEYOUT
MOV79H,#3BH
SJMPKEYOUT
KSCAN21:
DEC7AH
MOVA,7AH
CJNEA,#0FFH,KEYOUT
MOV7AH,#17H
SJMPKEYOUT
END
五、要求:
1、在PROTEUS中设计硬件,在KEIL51中编写软件,在PROTEUS中运行程序仿真实现。
2、写课程设计报告,给出设计思想,原理,硬件电路图,给出相应程序,并写出设计过程。
课程设计报告格式:
(要求至少6页,可以打印)
1、课程设计的目的
2、课程设计具体要求
3、MCS-51单片机系统简介
4、MCS-51单片机内部定时器/计数器中断系统简介
5、键盘和LED数码管显示器简介
6、基本原理
7、硬件电路
8、软件程序流程及代码
9、设计制作过程
10、总结
六、设计说明
1、硬件电路图参考书第十一章,第一节。
2、程序参考书第十一章,第一节。
3、KEIL51软件使用参考书第十二章。
4、PROTEUS软件使用过程简介如下:
1)选择元器件
2)放置元器件
3)连线
4)添加程序
5)运行仿真
元器件清单如下:
单片机:
80C52
按键:
BUTTON
电阻:
RES
电容:
CAP
晶振:
CRYSTAL
LED数码管:
7SEG-MPX8-CA-BLUE(CA:
共阳,CC:
共阴)
地:
GRAND
电源:
POWER
七、设计过程演示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 电子 时钟