;24c02的开机计数器,系统复位一次数码管加1 ;*************************************************************************** ;* (程序转载请著明出处 ,未声明可适应本站腾龙/isp开发套件/倚天版开发套件
* ;* E-mail:sxj1974@163.com (51c51 test web) 51单片机学习网,自学单片机的网站
* ;* Create by :石学军  hex格式文件下载(点右键,目标另存为hex即可直接烧写)
SDA24EQUP3.7 SCLK24EQUP3.6 ORG0000H AJMPMAIN ORG0030H MAIN: CLRP3.7;打开写保护 MOVDPTR,#TAB MOVA,#00H;读地址 LCALLRD24 CJNEA,#10,TT TT:JNCTT1 AJMPTT2 TT1:MOVA,#00 TT2:MOV30H,A MOVCA,@A+DPTR CLRP2.6;开数码管 MOVP0,A;送显示 MOVA,30H INCA MOVB,A MOVA,#00H LCALLWT24 AJMP$ TAB:DB28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60H
RD24: PUSH ACC;读24C02子程序。 SETB SDA24 CLR SCLK24 CALL START24;启动 MOV A,#0A0H CALL SHIFT8 ;移位 CALL ACK;响应 POP ACC CALL SHIFT8 CALL ACK CALL START24 MOV A,#0A1H CALL SHIFT8 CALL ACK SETB SDA24 MOV R7,#8 CLR A SETB SDA24 RD000: RL A;8个位 SETB SCLK24 MOV C,SDA24 MOV ACC.0,C CLR SCLK24 DJNZ R7,RD000 RET ;------------------------------- ;写入24C02程序: WT24: PUSH ACC SETB SDA24 CLR SCLK24 CALL START24 MOV A,#0A0H CALL SHIFT8 CALL ACK POP ACC CALL SHIFT8 CALL ACK MOV A,B CALL SHIFT8 CALL ACK CALL STOP CALL DELAY2 RET ; ------------------------------- ;开始条件 START24:CLR SDA24 SETB SDA24 SETB SCLK24 CLR SDA24 CLR SCLK24 RET
;停止条件 STOP: CLR SDA24 SETB SCLK24 SETB SDA24 RET
;应答信号 ACK: SETB SCLK24 CLR SCLK24 RET
;读、写数据 SHIFT8: MOV R7,#8 SH01: RLC A MOV SDA24,C SETB SCLK24 CLR SCLK24 DJNZ R7,SH01 RET
DELAY2:;延时 NOP NOP NOP NOP RET END
|