返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 论坛


;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