单片机60分钟倒计时秒表.docx
- 文档编号:14574981
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:12
- 大小:453KB
单片机60分钟倒计时秒表.docx
《单片机60分钟倒计时秒表.docx》由会员分享,可在线阅读,更多相关《单片机60分钟倒计时秒表.docx(12页珍藏版)》请在冰点文库上搜索。
单片机60分钟倒计时秒表
60分钟倒计时秒表
功能:
1.带有启动键Start,暂停键Pause,停止键Stop,复位键Reset;
2.4位数码管显示分(两位)秒(两位);
3.按启动键启动从60分开始倒计时,按暂停键暂停,显示保持原来计时时间,再次按启动键继续计时,按停止键停止计时,复位键复位,到零停止计时.
4.按停止键后,可按中间的4个键,分别对应分的十位(2键),个位(4键),和秒的十位(5键),个位(9键),按动一下,相应的位增1,并保证时间的正确值,再按一次停止键,保存设置值,按其它键则放弃设置时间值,恢复原来的时间.
电路图:
计时器工作模式:
编码(54H单元)
当前工作模式
00H
Reset
01H
Start
02H
Pause
03H
Stop
主程序流程:
主程序代码段
主程序代码段:
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIMER0
ORG1000H
MAIN:
ACALLINIT;初始化定时器
SETBEA;开总中断
SETBET0;开定时器0中断
MOVA,#03H;设置8155的工作模式,PA,PB输出,PC输入.
MOVDPTR,#7F00H
MOVX@DPTR,A
BEGIN:
ACALLDIS
ACALLCLEAR
ACALLCCSCAN
JNZINK1
AJMPBEGIN
INK1:
ACALLDIS
ACALLCLEAR
ACALLCCSCAN
JNZINK2
AJMPBEGIN
INK2:
MOVR2,#7FH;从最左边列开始扫描
MOVR4,#00H
COLUM:
MOVDPTR,#7F02H
MOVA,R2
MOVX@DPTR,A
INCDPTR
MOVXA,@DPTR
JBACC.2,LONE
MOVA,#00H
AJMPKCODE
LONE:
JBACC.1,NEXT
MOVA,#04H
KCODE:
ADDA,R4
ACALLPUTBUF
KON:
ACALLDIS
ACALLCLEAR
ACALLCCSCAN
JNZKON
NEXT:
INCR4
MOVA,R2
JNBACC.4,KERR
RRA
MOVR2,A
AJMPCOLUM
KERR:
AJMPBEGIN
CCSCAN:
MOVDPTR,#7F02H
MOVA,#00H
MOVX@DPTR,A
INCDPTR
MOVXA,@DPTR
CPLA
ANLA,#03H
RET
CLEAR:
MOVDPTR,#7F01H
MOVA,#00H
MOVX@DPTR,A
RET
INIT:
MOV53H,#06H;分十位
MOV52H,#00H;分个位
MOV51H,#00H;秒十位
MOV50H,#00H;秒个位
MOV54H,#00H;存放当前工作模式,00:
Reset,01Start,02Pause,03Stop
MOV55H,#0AH;定时计数用,定时器每次中断0.1s,计数10次,定时1s
CLRTR0
MOVTMOD,01H;定时器工作在方式1,16位定时器
MOVTH0,#3CH
MOVTL0,#0B0H
RET
显示子函数
DIS:
PUSHACC
PUSH00H
PUSH03H
MOVA,#03H
MOVDPTR,#7F00H
MOVX@DPTR,A
MOVR0,#50H
MOVR3,#0EFH
MOVA,54H
CJNEA,#03H,DIS0
MOVR0,#60H
DIS0:
MOVA,R3
AGAIN:
MOVDPTR,#7F02H
MOVX@DPTR,A
MOVA,@R0
MOVDTPR,DATAS
MOVCA,@A+DPTR
MOVDPTR,#7F01H
MOVX@DPTR,A
ACALLDL1MS
INCR0
MOVA,R3
JNBACC.0,OUT
RLA
MOVR3,A
AJMPAGAIN
OUT:
POP03H
POP00H
POPACC
RET
DATAS:
DB03FH,06H,05BH,04FH,066H,06DH,07DH
DB07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DL1MS:
MOVR7,#01H
DL0:
MOVR6,#0FFH
DL1:
DJNZR6,DL1
DJNZR7,DL0
RET
按键功能
PUTBUF:
MOVR1,A
JNZCHKSTART
ACALLRESETFUNC
SJMPGOBACK
CHKSTART:
CJNER1,#03H,CHKPAUSE
ACALLSTARTFUNC
SJMPGOBACK
CHKPAUSE:
CJNER1,#04H,CHKSTOP
ACALLPAUSEFUNC
SJMPGOBACK
CHKSTOP:
CJNER1,#07H,CHKOTHER
ACALLSTOPFUNC
SJMPGOBACK
CHKOTHER:
ACALLOTHERFUNC
GOBACK:
RET
重置代码段
RESETFUNC:
MOVR0,54H
CJNER0,#00H,RESET0
RET
CJNER0,#01H,RESET0
RET
RESET0:
ACALLINIT
MOV54H,#00H
RET
开始功能代码段
STARTFUNC:
MOVR0,54H
CJNER0,#01H,START0
RET
START0:
MOV54H,#00H
SETBTR0
RET
暂停功能代码段
PAUSEFUNC:
MOVR0,54H
CJNER0,#01H,PAUSE0
CLRTR0
MOV54H,#02H
SJMPPAUSE1
PAUSE0:
CJNER0,#02H,PAUSE1
SETBTR0
MOV54H,#01H
PAUSE1:
RET
停止功能代码段
STOPFUNC:
MOVR0,54H
CJNER0,#03H,STOP0
MOV54H,#02H
MOVR0,#50H
MOVR1,#60H
STOP1:
MOVA,@R1
MOV@R0,A
INCR0
INCR1
CJNER0,#54H,STOP1
RET
STOP0:
CLRTR0
MOV54H,#03H
MOVR0,#60H
MOVR1,#50H
STOP2:
MOVA,@R1
MOV@R0,A
INCR0
INCR1
CJNER1,#54H,STOP2
RET
其他功能代码段
OTHERFUNC:
MOVR0,54H
CJNER0,#03H,OTHER0
CJNER1,#01H,OTHER1
MOVR0,#63H
INC@R0
CJNE@R0,#06H,OTHER0
MOV@R0,#00H
SJMPOTHER0
OTHER1:
CJNER1,#02H,OTHER2
MOVR0,#62H
INC@R0
CJNE@R0,#0AH,OTHER0
MOV@R0,#00H
SJMPOTHER0
OTHER2:
CJNER1,#05H,OTHER3
MOVR0,#61H
INC@R0
CJNE@R0,#06H,OTHER0
MOV@R0,#00H
SJMPOTHER0
OTHER3:
CJNER1,#06H,OTHER0
MOVR0,#60H
INC@R0
CJNE@R0,#0AH,OTHER0
MOV@R0,#00H
SJMPOTHER0
OTHER0:
RET
中断定时代码段
;使用定时器0,工作模式1,定时0.1s,晶振频率为6MHz
;定时器初值X=65536–50000=15536=3CB0H
TIMER0:
MOVTH0,#3CH
MOVTL0,#0B0H
DJNZ55H,EXIT0;判断是否已定时中断10,即1秒
MOV55H,#0AH
MOVR0,#50H
GOON0:
DEC@R0
CJNE@R0,#0FFH,EXIT0
MOV@R0,#09H
INCR0
DEC@R0
CJNE@R0,#0FFH,EXIT0
MOV@R0,#05H
INCR0
DEC@R0
CJNE@R0,#0FFH,EXIT0
MOV@R0,#09H
INCR0
DEC@R0
CJNE@R0,#0FFH,EXIT0;倒计时结束,停止计时,显示全”0”
ACALLINIT
MOV53H,#00H
MOV54H,#03H
EXIT0:
RET
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 60 分钟 倒计时 秒表