HOUR EQU 40H ;存放时信息的单元
MINUTE EQU 41H ;存放分信息的单元
SECOND EQU 42H ;存放秒信息的单元
NUM EQU 43H ;存放T0溢出次数的单元
ORG 0000H ;程序入口
AJMP MAIN
ORG 0030H ;主程序入口
MAIN:MOV SP,#60H ;指定堆栈栈底
MOV HOUR,#00H
MOV MINUTE,#00H
MOV SECOND,#00H ;将时、分、秒分别清零
MOV NUM,#0
MOV TMOD,#01H ;设T0工作于方式1,用于定时
MOV TH0,#4CH ;设置T0的初始值
MOV TL0,#00H
MOV IE,#00H ;关中断
SETB TR0 ;开启定时器T0
LOOP:NOP
NOP
ACALL DISPLAY ;调用显示子程序
NOP
NOP
LOOP1:JB TF0,TIME ;等待定时溢出
LJMP LOOP1
TIME:CLR TR0 ;关闭定时器
PUSH DPL ;保护现场
PUSH DPH
PUSH ACC
MOV TH0,#4CH ;重新设置T0的值
MOV TL0,#00H
SETB TR0 ;开启T0
MOV A,NUM
INC A ;溢出次数+1
MOV NUM,A
CJNE A,#0AH,TT1 ;检测键盘
MOV P1,#0FH ;设键盘初值
MOV R0,#04H ;延时消抖
LCALL DELAY
JNB P1.0,T0C1 ;为0表示P1.0按下,转T0C1调整秒
JNB P1.1,T0C2 ;为0表示P1.1按下,转T0C2调整分
JNB P1.2,T0C3 ;为0表示P1.2按下,转T0C3调整时
TT1: CJNE A,#140,RR4
MOV NUM,#00H
T0C1:MOV A,SECOND
INC A ;秒单元内容加1
DA A ;调整为BCD码
MOV SECOND,A
CJNE A,#60H,RR4 ;不为60秒继续等待
setb flag:
clr flag
RR1: MOV SECOND,#00H ;为60秒将秒单元清零
T0C2:MOV A,MINUTE
INC A ;分单元内容加1
DA A ;调整为BCD码
MOV MINUTE,A
CJNE A,#60H,RR4 ;不为60分继续等待
RR2: MOV MINUTE,#00H ;为60分,分单元清零
T0C3:MOV P1,#0F0H ; 1小时闪一次
LCALL DELAY ;延时
MOV P1,#0FH
MOV A,HOUR
INC A ;时单元内容加1
DA A ;调整为BCD码
MOV HOUR,A
CJNE A,#24H,RR4 ;不为24小时继续等待
RR3: MOV HOUR,#00H ;为24小时,时单元清零
RR4: POP ACC ;恢复现场
POP DPH
POP DPL
LJMP LOOP
DELAY:MOV R1,#10H ;延时子程序
DELAY1:MOV R2,#20H
DJNZ R2,$
DJNZ R1,DELAY1
DJNZ R0,DELAY
RET
DISPLAY:MOV DPTR,#TAB ;送表头基地址
MOV A,HOUR
ANL A,#0FH ;屏蔽时高位
MOVC A,@A+DPTR ;查时高位
MOV P0,A
CLR P2.6 ;开显示
MOV R0,#1 ;延时消除鬼影
LCALL DELAY
SETB P2.6 ;关显示
MOV A,HOUR
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P0,A
CLR P2.7
MOV R0,#1
LCALL DELAY
SETB P2.7
MOV A,MINUTE
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
CLR P2.4
MOV R0,#1
LCALL DELAY
SETB P2.4
MOV A,MINUTE
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P0,A
CLR P2.5
MOV R0,#1
LCALL DELAY
SETB P2.5
MOV A,SECOND
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
CLR P2.2
MOV R0,#1
LCALL DELAY
SETB P2.2
MOV A,SECOND
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P0,A
CLR P2.3
MOV R0,#1
LCALL DELAY
SETB P2.3
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
这是单片机8051设计电子时钟的问题,谁能把它改成8031的程序,急用a
答案:1 悬赏:80 手机版
解决时间 2021-05-25 19:58
- 提问者网友:火车头
- 2021-05-25 00:01
最佳答案
- 五星知识达人网友:春色三分
- 2021-05-25 01:30
程序是一样的。8051和8031的区别是8051内部有一个4K(好像)的ROM,而8031内部没有。所以你用8031就要外部扩展程序存储器,这是硬件问题和软件没关系。外扩的问题就比较复杂,主要是看你们怎么调试,要是试验箱可能别人就已经设计好了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯