;项目名称:24c02的开机计数器,系统复位一次数码管加1 ;硬件环境:AT89C51 ;硬件描述:P0口接LED数码管;P3.6接SCLK24脚 P3.7接SDA24脚 ;功能描述:24c02开机计数器实验 ;学习单片机 www.zsgbailin.com zsgbailin@sina.com ;2006年5月23日 ;******************************************************* SDA24 EQU P3.7 SCLK24 EQU P3.6 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#TAB MOV A,#00H ;读地址 LCALL RD24 CJNE A,#10,TT TT: JNC TT1 AJMP TT2 TT1: MOV A,#00 TT2: MOV 30H,A MOVC A,@A+DPTR CLR P2.2 ;开数码管 MOV P0,A ;送显示 MOV A,30H INC A MOV B,A MOV A,#00H LCALL WT24 AJMP $ 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 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 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END