单片机数字时钟课程设计报告Word格式文档下载.docx
- 文档编号:18455006
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:28
- 大小:44.08KB
单片机数字时钟课程设计报告Word格式文档下载.docx
《单片机数字时钟课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机数字时钟课程设计报告Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
由四个调整键组成独立式键盘,分别具有为启动、调时、退出调闹,调闹、止闹、退出调时,秒表切换,加一,减一、暂停功能。
(4)输出系统
由两个四位一体的共阴数码管,并以74LS244做驱动电路构成显示输出,由NPN三极管以及一个蜂鸣器构成闹铃。
四、软件设计
4.1单片机资源使用情况
(1)时钟与秒表的时分秒在片内RAM存储地址如表3.1所示。
表3.1时钟存储地址
名称
时
分
秒
十位
7AH
78H
76H
个位
79H
77H
75H
表3.4秒表存储地址
66H
64H
62H
65H
63H
61H
(2)电子钟的时钟时间在八位数码管上进行显示,因此,在片内RAM中设置显示缓冲区共8个单元。
LED7LED6LED5LED4LED3LED2LED1LED0
74H73H72H71H70H6FH6EH6DH
显示缓冲区从左至右依次存时、-、分、-、秒的数值。
(3)闹钟的时分秒在片内RAM存储地址如表3.2所示。
表3.2闹钟标志位存储地址表
6CH
6AH
68H
6BH
69H
67H
(4)P0口作为数据显示输出、P1.4作为闹铃输出,P1.0-P1.3接按键输入,
20H.0-20H.3作为P1.0-P1.3的位标志存储地址。
(5)运用了定时器1作为1秒计时所用,定时器0作为10ms计时所用。
4.2软件系统程序流程框图
主程序流程框图如图3.1所示。
图3.1主程序流程框图
(2)1秒计时子程序流程框图如图3.2所示。
图3.21秒计时流程框图
图3.3键监控程序流程框图
(3)键监控子程序流程框图如图3.3所示,它还包含了键扫描和P1口处理子程序,它们的程序流程框图分别为图3.4和3.5。
图3.5P1口处理子程序流程框图
图3.4键扫描子程序流程框图
4.3源程序清单
LJMPMAIN
ORG000BH
LJMPINTT0
ORG001BH
LJMPINTT1
;
---------------------------------------------------------
-----------------主程序----------------------------------
MAIN:
LCALLBEGIN;
上电显示“PP”
MOVSP,#30H
MOVR0,#7AH;
清7AH-67H单元
MOVR1,#14H
LCALLCLR0
MOV20H,#00H
MOV6CH,#01H
MOV6BH,#02H
MOV7BH,#0CH;
熄灭符
MOVTMOD,#11H;
定时器0、1的工作方式为1
MOVTH1,#0BH;
125ms
MOVTL1,#0DCH
MOVTH0,#0FEH
MOVTL0,#0FFH;
1.25ms
MOVR7,#08H;
125ms*8=1s,1.25ms*8=10ms
SETBEA
SETBET1
SETBTR1
LOOP:
LCALLDIR;
调显示子程序
LCALLCLOCK;
查闹钟
LCALLKEYC
JB20H.0,KEYAA;
若A键按下跳转,调时
JB20H.1,KEYCC;
若B键按下跳转,调闹
JB20H.2,KEYEE;
若C键按下跳转,切换秒表
JB20H.3,KEYDD;
若D键按下跳转,暂停
LJMPLOOP
--------------秒表显示程序-----------------------
KEYEE:
CLRET1
CLRTR1
SETBET0
SETBTR0
MBLOOP:
LCALLDIRS
LCALLKEYCS
JB20H.2,OUTSETS
JB20H.3,MBZ
LJMPMBLOOP
OUTSETS:
CLRET0
CLRTR0
MBZ:
CLRET0
MBZLOOP:
LCALLKEYCS
JB20H.3,OUTMBZ
LJMPMBZLOOP
OUTMBZ:
SETBET0
SETBTR0
LJMPMBLOOP
-------------------------------------------------
--------------闹钟调整程序-----------------------
KEYCC:
CLRET1
LCALLSETCH
------------------暂停---------------------------
KEYDD:
CLRTR1
LOOPSP:
LCALLKEYC;
键扫描
JB20H.3,OUTSP;
D键按下,暂停取消,继续走
LJMPLOOPSP
OUTSP:
SETBTR1
-------------时钟调整程序------------------------
KEYAA:
CLRTR1
CLRET1
LJMPSETHH
OUTSET:
SETBET1
---------------时位调整-------------------------
------------------------------------------------
SETHH:
MOVR5,#0FFH
LOOPH0:
MOVR0,#79H
MOVR1,#7AH
LCALLRDIRH;
输出
LCALLDIR;
显示
LCALLDIR
LCALLKEYC;
JNB20H.0,H1
LJMPSETMM;
A键按下,调分
H1:
JNB20H.1,H2
LJMPOUTSET;
B键按下,退出调时
H2:
JNB20H.2,H3
LJMPADDH1;
C键按下,加1
H3:
JNB20H.3,H4
LJMPSUBH1;
D键按下,减1
H4:
DJNZR5,LOOPH0;
无键按下,循环,返回
LJMPOUTSET
------------时加减一----------------------------
ADDH1:
MOVR0,#79H;
加一
LCALLADD1
LJMPSETH
SUBH1:
减一
LCALLSUBBH1
SETH:
LCALLRDIRH
CJNER3,#24H,SETHH
MOV79H,#00H
MOV7AH,#00H
==============分位调整===========================
SETMM:
LOOPM0:
MOVR0,#77H
MOVR1,#78H
LCALLRDIRM
LCALLKEYC
JNB20H.0,M1
LJMPSETSS;
A键按下,调秒
M1:
JNB20H.1,M2
M2:
JNB20H.2,M3
LJMPADDM1
M3:
JNB20H.3,M4
LJMPSUBBM
M4:
DJNZR5,LOOPM0
---------------分加减一--------------------------
ADDM1:
MOVR0,#77H;
加一
LJMPSETM
SUBBM:
LCALLSUBBMS
SETM:
CJNER3,#60H,SETMM
MOV77H,#00H
MOV78H,#00H
LJMPSETMM
==================秒位调整=======================
SETSS:
LOOPS0:
MOVR0,#75H
MOVR1,#76H
LCALLRDIRS
JNB20H.0,S1
S1:
JNB20H.1,S2
S2:
JNB20H.2,S3
LJMPADDS1
S3:
JNB20H.3,S4
LJMPSUBBS
S4:
DJNZR5,LOOPS0
-------------------秒加减一----------------------
ADDS1:
MOVR0,#75H;
加一
LJMPSETS
SUBBS:
SETS:
CJNER3,#60H,SETSS
MOV75H,#00H
MOV76H,#00H
LJMPSETSS
==============闹钟调整子程序====================
================时位调整========================
SETCHH:
LOOPCH0:
MOVR0,#6BH
MOVR1,#6CH
JNB20H.0,CH0
LJMPOUTSC;
结束子程序
CH0:
JNB20H.1,CH1
LJMPSETCM;
B键按下,调分
CH1:
JNB20H.2,CH2
LJMPADDCH1
CH2:
JNB20H.3,CH3
LJMPSUBCH1
CH3:
DJNZR5,LOOPCH0
LJMPOUTSC
-----------------时加减一-----------------------
ADDCH1:
MOVR0,#6BH;
LJMPSETCH
SUBCH1:
SETCH:
MOVR0,#6BH
CJNER3,#24H,SETCHH
MOV6CH,#00H
MOV6BH,#00H
MOVR0,#6BH
LJMPSETCHH
==================分位调整======================
SETCMM:
LOOPCM0:
MOVR0,#69H
MOVR1,#6AH
JNB20H.0,CM0
CM0:
JNB20H.1,CM1
CM1:
JNB20H.2,CM2
LJMPADDCM1
CM2:
JNB20H.3,CM3
LJMPSUBCM1
CM3:
DJNZR5,LOOPCM0
---------------------分加减一--------------------
ADDCM1:
MOVR0,#69H;
LJMPSETCM
SUBCM1:
SETCM:
MOVR0,#69H
CJNER3,#60H,SETCMM
MOV6AH,#00H
MOV69H,#00H
MOVR0,#69H
LJMPSETCMM
OUTSC:
RET
===========调整显示装载子程序====================
RDIRH:
MOV6DH,7BH
MOV6EH,7BH
MOV6FH,7BH
MOV70H,7BH
MOV71H,7BH
MOV72H,7BH
MOV73H,@R0
MOV74H,@R1
RET
RDIRM:
MOV70H,@R0
MOV71H,@R1
MOV73H,7BH
MOV74H,7BH
RET
RDIRS:
MOV6DH,@R0
MOV6EH,@R1
--------------------------------------------------
=====================键扫描子程序=================
KEYC:
LCALLKEYDEAL;
键扫描子程序
LCALLKEYDEAL;
再次确认键有无按下,去抖动
JZEXIT
MOVB,20H
KEYSF:
LCALLKEYDEAL
JZKEY1
LJMPKEYSF;
当键按下弹起后保存键值,返回
KEY1:
MOV20H,B
EXIT:
----------------------秒表键扫描子程序--------------
KEYCS:
LCALLDIRS
LCALLKEYDEAL
JZEXITS
KEYSFS:
JZKEY1S
LJMPKEYSFS
KEY1S:
EXITS:
---------------P1口处理子程序----------------------
KEYDEAL:
PUSHPSW;
P1口处理子程序
MOVA,P1
CPLA
ANLA,#0FH
MOV20H,A
POPPSW
---------------------------------------------------
=================1S计时程序========================
INTT1:
PUSHPSW
PUSHACC
MOVTH1,#0BH
MOVTL1,#0DCH
DJNZR7,OUTT0
ADDSS:
MOVR7,#08H
MOVR0,#75H
CLRC
CJNER3,#60H,ADDMM
ADDMM:
JCOUTT1
MOVR0,#77H
CJNER3,#60H,ADDHH
ADDHH:
JCOUTT0
MOVR0,#79H
CJNER3,#24H,HOUR
HOUR:
MOVR1,#06H
OUTT0:
MOV6FH,#0CH;
MOV72H,#0CH
LJMPOUTT2
OUTT1:
MOV6FH,#0BH;
‘-’
MOV72H,#0BH;
OUTT2:
MOV6DH,75H;
秒个位
MOV6EH,76H;
十位
MOV70H,77H;
分个位
MOV71H,78H;
MOV73H,79H;
时个位
MOV74H,7AH;
POPACC
RETI
----------------10ms计时程序------------------
IN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数字 时钟 课程设计 报告