广州大学单片机原理与接口技术实验数字钟源程序Word下载.docx
- 文档编号:19899629
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:14
- 大小:17.41KB
广州大学单片机原理与接口技术实验数字钟源程序Word下载.docx
《广州大学单片机原理与接口技术实验数字钟源程序Word下载.docx》由会员分享,可在线阅读,更多相关《广州大学单片机原理与接口技术实验数字钟源程序Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
LJMPMAIN
ORG000BH
LJMPINT0
LEDMAP:
八段管显示码
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
KEYTABLE:
键码定义
DB16H,15H,14H,0FFH
DB13H,12H,11H,10H
DB0DH,0CH,0BH,0AH
DB0EH,03H,06H,09H
DB0FH,02H,05H,08H
DB00H,01H,04H,07H
MAIN:
MOVSP,#40H
MOVTMOD,#01H;
定时器设置
MOVTH0,#0ECH
MOVTL0,#0AAH
SETBET0
SETBEA
SETBTR0
初始化;
MOVSECOND-COUNT,#0
MOVSECOND,#0
MOVMINUTE,#58
MOVHOUR,#0
MOVFLIKER,#0FFH
SETBTIME_CONTROL
MOVMODE,#0
CLRP1.0
MOVLEDBUF+0,#0;
显示8.8.8.8.8.8
MOVLEDBUF+1,#0
MOVLEDBUF+2,#0
MOVLEDBUF+3,#0
MOVLEDBUF+4,#0
MOVLEDBUF+5,#0
主循环用来查询键入和模式控制;
MLOOP:
CALLDISPLAYLED;
显示时间
CALLTESTKEY;
调用查询键入函数
JZKEY_END;
无键入,则继续显示
CALLGETKEY;
有键入则读入键码
CJNEA,#KEY_MODE,KEY1
CALLMODE_RUN
SJMPKEY_END
KEY1:
CJNEA,#KEY_PLUS,KEY2
CALLPLUS_RUN
KEY2:
CJNEA,#KEY_MINUS,KEY3
CALLMINUS_RUN
KEY3:
CJNEA,#KEY_STOPWATCH,KEY4
CALLSTOPWATCH_RUN
KEY4:
CJNEA,#KEY_ALARM,KEY_END
CALLALARM_RUN
KEY_END:
MOVA,MODE
MOVB,#2
MULAB
MOVDPTR,#MODE_SWITCH
JMP@A+DPTR
MODE_SWITCH:
AJMPMODE0
AJMPMODE1
AJMPMODE2
AJMPMODE3
AJMPMODE4
AJMPMODE5
MODE_END:
MOVA,SECOND
JNZMLOOP
MOVA,MINUTE
SETBP1.0
MOVR6,#0
CALLDELAY
LJMPMLOOP
主程序结束;
模式控制子程序;
MODE0:
模式0正常显示
MOVFLIKER,#0FFH
CALLCLOCK_BUF
AJMPMODE_END
MODE1:
MOVFLIKER,#0FFH;
模式1调整时针
CLRTIME_CONTROL;
将时间运行控制位置0,开始控制闪烁
MOVA,SECOND-COUNT
CJNEA,#80,M1;
计数不为80跳转至M1
AJMPSMALLER
M1:
JNCBIGER;
借位标志位为0,即大于80
AJMPSMALLER
BIGER:
MOVFLIKER,#11001111B;
开启时针闪烁
AJMPM1_END
SMALLER:
MOVFLIKER,#0FFH;
小于80则正常显示
M1_END:
CALLCLOCK_BUF
MODE2:
模式2调整分针
CLRTIME_CONTROL
CJNEA,#80,M2
M2:
JNCBIGER2
AJMPSMALLER2
BIGER2:
MOVFLIKER,#11110011B
AJMPM2_END
SMALLER2:
MOVFLIKER,#0FFH
M2_END:
MODE3:
模式3调整秒针
CJNEA,#80,M3
AJMPSMALLER3
M3:
JNCBIGER3
AJMPSMALLER3
BIGER3:
MOVFLIKER,#11111100B
AJMPM3_END
SMALLER3:
M3_END:
MODE4:
MOVFLIKER,#
MODE5:
MODE_RUN:
返回MODE的值给主程序
INCA
MOVB,#5;
模式在0,1,2,3,4循环
DIVAB
MOVA,B
MOVMODE,A
RET
时间“加”控制子程序;
PLUS_RUN:
MOVA,MODE
MOVDPTR,#PLUS_SWITCH
PLUS_SWITCH:
AJMPPLUS0
AJMPPLUS1
AJMPPLUS2
AJMPPLUS3
AJMPPLUS4
PLUS0:
SJMPPLUS_END
PLUS1:
INCHOUR
MOVA,HOUR
CJNEA,#24,PLUS1_END
PLUS1_END:
PLUS2:
INCMINUTE
CJNEA,#60,PLUS2_END
MOVMINUTE,#0
PLUS2_END:
PLUS3:
INCSECOND
CJNEA,#60,PLUS3_END
PLUS3_END:
PLUS4:
PLUS_END:
时间“减”控制子程序;
MINUS_RUN:
MOVB,#2
MULAB
MOVDPTR,#MINUS_SWITCH
JMP@A+DPTR
MINUS_SWITCH:
AJMPMINUS0
AJMPMINUS1
AJMPMINUS2
AJMPMINUS3
AJMPMINUS4
MINUS0:
SJMPMINUS_END
MINUS1:
CJNEA,#0,MINUS1_END
MOVHOUR,#24
MINUS1_END:
DECHOUR
MINUS2:
CJNEA,#0,MINUS2_END
MOVMINUTE,#60
MINUS2_END:
DECMINUTE
MINUS3:
CJNEA,#0,MINUS3_END
MOVSECOND,#60
MINUS3_END:
DECSECOND
MINUS4:
MINUS_END:
秒表子程序;
STOPWATCH_RUN:
时钟显示缓冲子程序;
CLOCK_BUF:
MOVA,SECOND;
SECOND-COUNT;
显示“秒”缓冲
MOVB,#10
DIVAB
MOVDPTR,#LEDMAP
MOVCA,@A+DPTR
MOVLEDBUF+4,A
MOVA,B
MOVLEDBUF+5,A
MOVA,MINUTE;
显示“分”缓冲
MOVLEDBUF+2,A
MOVLEDBUF+3,A
MOVA,HOUR;
显示“时”缓冲
MOVLEDBUF+0,A
MOVLEDBUF+1,A
RET
中断子程序控制时间的正常走动;
INT0:
INCSECOND-COUNT
CJNEA,#100,T0
AJMPTP
T0:
JCT2;
若计数次数小于100则跳转至T2
MOVSECOND-COUNT,#0;
计数次数大于100则重新置0
T1:
JNBTIME_CONTROL,T_END;
若达到100次计数则秒数加1
CJNEA,#100,T2
T2:
若达到60秒则分数加1
CJNEA,#60,T3
T3:
若达到60分则时数加1
CJNEA,#60,T4
T4:
若达到24小时则重新小时位置0重新开始
CJNEA,#24,T_END
T_END:
RETI
延时子程序;
DELAY:
MOVR7,#0
DELAYLOOP:
DJNZR7,DELAYLOOP
DJNZR6,DELAYLOOP
RET
数码管显示子程序;
DISPLAYLED:
MOVR0,#LEDBUF
MOVR1,#6;
共6个八段管
MOVR2,#00100000B;
从左边开始显示
LOOP:
MOVDPTR,#OUTBIT
MOVA,#0
MOVX@DPTR,A;
关所有八段管
MOVA,@R0;
将缓冲区段码输入OUTSEG
MOVDPTR,#OUTSEG
MOVX@DPTR,A
MOVDPTR,#OUTBIT;
控制位显示
MOVA,R2
ANLA,FLIKER
显示被选中的八段管
MOVR6,#1;
延时
MOVA,R2;
显示下一位
RRA
MOVR2,A
INCR0
DJNZR1,LOOP
判断键入子程序;
TESTKEY:
输出线置为0
MOVDPTR,#IN
MOVXA,@DPTR;
读入键状态
CPLA
ANLA,#0FH;
高四位不用
获取键码子程序;
GETKEY:
MOVP2,DPH
MOVR0,#LOW(IN)
MOVR1,#00100000B
MOVR2,#6
KLOOP:
MOVA,R1;
找出键所在列
MOVR1,A;
下一列
MOVXA,@R0
ANLA,#0FH
JNZGOON1;
该列有键入
DJNZR2,KLOOP
MOVR2,#0FFH;
没有键按下,返回0FFH
SJMPEXIT
GOON1:
键值=列X4+行
DECA
RLA
MOVR2,A;
R2=(R2-1)*4
R1中为读入的行值
MOVR1,#4
LOOPC:
RRCA;
移位找出所在行
JCEXIT
INCR2;
R2=R2+行值
DJNZR1,LOOPC
EXIT:
取出键码
MOVDPTR,#KEYTABLE
WAITRELEASE:
等键释放
CLRA
MOVR6,#10
CALLTESTKEY
JNZWAITRELEASE
END
程序结束;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广州大学 单片机 原理 接口 技术 实验 数字 源程序