标题:
单片机可校准时钟汇编语言程序及proteus仿真
[打印本页]
作者:
51黑ff
时间:
2016-9-26 18:41
标题:
单片机可校准时钟汇编语言程序及proteus仿真
一个用51单片机做的可校准时钟,是用汇编语言写的,下面是仿真原理图:
0.png
(28.29 KB, 下载次数: 55)
下载附件
2016-9-26 18:38 上传
0.png
(64.54 KB, 下载次数: 65)
下载附件
2016-9-26 18:39 上传
所有资料下载:
可校准时钟.zip
(56.88 KB, 下载次数: 77)
2016-9-26 18:40 上传
点击文件名下载附件
下载积分: 黑币 -5
汇编语言程序
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0INT0
ORG 0013H
LJMP INT1INT1
ORG 000BH
LJMP IT0P
ORG 0040H
/**************主程序*******************/
MAIN:MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV 30H,#14H
MOV 40H,#00H
MOV 41H,#00H
MOV 42H,#00H
MOV SP,#60H
MOV TCON,#05H
MOV TMOD,#01H
MOV IE,#87H
MOV IP,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
LOOP: LCALL DISPLAYSECOND
LCALL DISPLAYMINUTE
LCALL DISPLAYHOUR
SECOND0:JNB P2.0,SECOND
MINUTE0:JNB P2.1,MINUTE
HOUR0: JNB P2.2,HOUR
CLEAR0: JNB P2.3,CLEAR
LAST: LJMP LOOP
/**************秒调整程序*******************/
SECOND: LCALL DELAY100MS
JNB P2.0,HAVES
LJMP RETURNS
HAVES: MOV A,#01H
ADD A,42H
DA A
MOV 42H,A
CJNE A,#60H,RETURNS
MOV 42H,#00H
RETURNS:LCALL DISPLAYSECOND
LJMP MINUTE0
/**************分调整程序*******************/
MINUTE: LCALL DELAY100MS
JNB P2.1,HAVEM
LJMP RETURNM
HAVEM: MOV A,#01H
ADD A,41H
DA A
MOV 41H,A
CJNE A,#60H,RETURNM
MOV 41H,#00H
RETURNM:LCALL DISPLAYMINUTE
LJMP HOUR0
/**************时调整程序*******************/
HOUR: LCALL DELAY100MS
JNB P2.2,HAVEH
LJMP RETURNH
HAVEH: MOV A,#01H
ADD A,40H
DA A
MOV 40H,A
CJNE A,#24H,RETURNH
MOV 40H,#00H
RETURNH:LCALL DISPLAYHOUR
LJMP CLEAR0
/**************清零程序*******************/
CLEAR: LCALL DELAY100MS
JNB P2.3,HAVEC
LJMP RETURNC
HAVEC: CLR TR0
MOV 40H,#00H
MOV 41H,#00H
MOV 42H,#00H
RETURNC:LJMP LAST
/**************秒数码管显示程序*******************/
DISPLAYSECOND:
SECONDGE: SETB P1.0
MOV A,42H
ANL A,#0FH
LCALL SEG
LCALL DELAY1MS
CLR P1.0
SECONDSHI:SETB P1.1
MOV A,42H
SWAP A
ANL A,#0FH
LCALL SEG
LCALL DELAY1MS
CLR P1.1
RET
/**************分数码管显示程序*******************/
DISPLAYMINUTE:
MINUTEGE: SETB P1.2
MOV A,41H
ANL A,#0FH
LCALL SEG
LCALL DELAY1MS
CLR P1.2
MINUTESHI:SETB P1.3
MOV A,41H
SWAP A
ANL A,#0FH
LCALL SEG
LCALL DELAY1MS
CLR P1.3
RET
/**************时数码管显示程序*******************/
DISPLAYHOUR:
HOURGE: SETB P1.4
MOV A,40H
ANL A,#0FH
LCALL SEG
LCALL DELAY1MS
CLR P1.4
HOURSHI: SETB P1.5
MOV A,40H
SWAP A
ANL A,#0FH
LCALL SEG
LCALL DELAY1MS
CLR P1.5
RET
/**************启动int0中断服务程序*******************/
INT0INT0:CLR EA
LCALL DELAY10MS
JNB INT0,HAVEKEY1
SETB EA
RETI
HAVEKEY1:PUSH PSW
PUSH Acc
SETB EA
SETB TR0
CLR EA
POP Acc
POP PSW
SETB EA
RETI
/************暂停int1中断服务程序*******************/
INT1INT1:CLR EA
LCALL DELAY10MS
JNB INT1,HAVEKEY2
SETB EA
RETI
HAVEKEY2:PUSH PSW
PUSH Acc
SETB EA
CLR TR0
CLR EA
POP Acc
POP PSW
SETB EA
RETI
/*****************定时器0中断服务程序*****************/
IT0P:PUSH PSW
PUSH Acc
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ 30H,RETURN
MOV 30H,#14H
MOV A,#01H
ADD A,42H
DA A
MOV 42H,A
CJNE A,#60H,RETURN
MOV 42H,#00H
MOV A,#01H
ADD A,41H
DA A
MOV 41H,A
CJNE A,#60H,RETURN
MOV 41H,#00H
MOV A,#01H
ADD A,40H
DA A
MOV 40H,A
CJNE A,#24H,RETURN
MOV 40H,#00H
RETURN:
SETB TR0
POP Acc
POP PSW
RETI
/*************查表子程序程序***************/
SEG:MOV DPTR,#TAB
MOVC A,@A+DPTR
CPL A
MOV P0,A
RET
TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
/*************1mS延时子程序*****************/
DELAY1MS:MOV R7,#04H
D1: MOV R6,#7DH
DJNZ R6,$
DJNZ R7,D1
RET
/*************10mS延时子程序****************/
DELAY10MS:MOV R7,#28H
D2: MOV R6,#7DH
DJNZ R6,$
DJNZ R7,D2
RET
/*************100mS延时子程序****************/
DELAY100MS:MOV R7,#02H
DEL1:MOV R6,#0C8H
DEL2:MOV R5,#7DH
DEL3:DJNZ R5,DEL3
DJNZ R6,DEL2
DJNZ R7,DEL1
RET
END
复制代码
作者:
1534545848
时间:
2016-9-26 20:57
谢谢分享下载学习
作者:
咲夜琉命
时间:
2017-1-1 19:51
膜拜顺便学习一下
作者:
林冰
时间:
2017-1-6 23:12
这个很需要,可是下不了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1