我要EDA網(wǎng) 發(fā)布日期:2005-11-17 瀏覽次數(shù):619 | ;DS1302時(shí)鐘芯片 ;說明: ;入口條件: 日(30H) 月(31H) 年(32H) ; 秒(30H) 分(31H) 時(shí)(32H) ; 星期(30H) ;出口信息: 日(30H) 月(31H) 年(32H) ; 秒(30H) 分(31H) 時(shí)(32H) ; 星期(30H) ;影響資源:PSW、R7、A 堆棧需求: 6字節(jié)
DS_SCK BIT P1.6 DS_RST BIT P3.5 DS_IO BIT P1.7 READ_HMS: ;讀時(shí)鐘芯片的時(shí)分秒 CLR DS_IO JB DS_IO, READ_HMS_END MOV A, #81H LCALL DS_READ1 MOV 30H, A MOV A, #83H LCALL DS_READ1 MOV 31H, A MOV A, #85H LCALL DS_READ1 MOV 32H, A
CLR DS_RST MOV A, 30H CLR C SUBB A, #60H JC READ_HMS_END MOV 30H, #00H LCALL SET_HMS READ_HMS_END: RET READ_WEEK: ;讀時(shí)鐘芯片的星期 CLR DS_IO JB DS_IO, READ_WEEK_END MOV A, #8BH LCALL DS_READ1 MOV 32H, A READ_WEEK_END: RET DS_SEND1: CLR DS_RST CLR DS_SCK NOP NOP NOP SETB DS_RST LCALL DS_SEND MOV A, 10H LCALL DS_SEND RET SET_YMD: ;去除寫保護(hù)----寫時(shí)鐘芯片的年月日 MOV A, #8EH MOV 10H, #00H LCALL DS_SEND1 MOV A, #8CH MOV 10H, 32H LCALL DS_SEND1 MOV R0, #86H MOV R1, #30H MOV R6, #02H LJMP NEXT_WRITE_SP RET SET_HMS: ;去除寫保護(hù)-----寫時(shí)鐘芯片的時(shí)分秒 MOV A, #8EH MOV 10H, #00H LCALL DS_SEND1
MOV R0, #80H MOV R1, #30H MOV R6, #03H LJMP NEXT_WRITE_SP SET_WEEK: ;寫時(shí)鐘芯片的星期 MOV A, #8EH MOV 10H, #00H LCALL DS_SEND1 MOV A, #8AH MOV 10H, 30H LCALL DS_SEND1 RET NEXT_WRITE_SP: MOV A, R0 MOV 10H, @R1 LCALL DS_SEND1 INC R0 INC R0 INC R1 DJNZ R6, NEXT_WRITE_SP MOV A, #8EH ;打上寫保護(hù) MOV 10H, #80H LCALL DS_SEND1 CLR DS_RST RET NEXT_READ_SP: MOV A, R1 LCALL DS_READ1 MOV @R0, A INC R1 INC R1 INC R0 DJNZ R6, NEXT_READ_SP CLR DS_RST RET READ_YMD: ;讀時(shí)鐘芯片的年月日 MOV A, #8DH LCALL DS_READ1 MOV 32H, A MOV R1, #87H MOV R6, #02H MOV R0, #30H LJMP NEXT_READ_SP RET DS_SEND: ;發(fā)命令 MOV R7, #08H NEXT_BIT: NOP NOP NOP RRC A MOV DS_IO, C SETB DS_SCK NOP NOP NOP NOP NOP CLR DS_SCK NOP NOP NOP NOP NOP DJNZ R7, NEXT_BIT RET DS_READ: ;收數(shù)據(jù) MOV R7, #08H NEXT_BIT1: NOP NOP NOP MOV C, DS_IO RRC A SETB DS_SCK NOP NOP NOP NOP NOP CLR DS_SCK NOP NOP NOP NOP NOP DJNZ R7, NEXT_BIT1 RET DS_READ1: CLR DS_RST CLR DS_SCK NOP NOP NOP SETB DS_RST LCALL DS_SEND LCALL DS_READ RET |
|
|