1、例程6:串行EPROM 写入编程练习
电路原理图:
参考程序:
;***************************************************************************
;程序包括主程序,24C02 读、写程序,INT1 中断服务程序以及显示子程序。
;中断次数计数器,每中断一次加1,并在右边数码管上显示,系统复位保存计数次数,
;计满99 次自动回零。
;***************************************************************************
SDA24 EQU P3
2、5
SCL24 EQU P3.4
ORG 0000H
AJMP MAIN
ORG 0013H
AJMP INT11
ORG 0030H
MAIN:
MOV SP,#0a0H
MOV 7cH,#14H
MOV 7dH,#14H
SETB EA
SETB IT1
SETB EX1
MOV A,#00H ;读地址
LCALL RD24
MOV 40H,A
LP: MOV A,40H
21
ANL A,#0FH
MOV 7BH,A
MOV A,40H
SWAP A
ANL A,#0FH
MOV 7AH,A
ACALL DISPLAY
AJMP LP
3、
;******************INT1 中断子程序***************************
INT11: PUSH ACC
PUSH PSW
MOV A,#00H ;读地址
LCALL RD24
ADD A,#01
DA A
MOV 40H,A
MOV B,A
MOV A,#00H
LCALL WT24
CPL P1.1
POP PSW
POP ACC
RETI
;*********************************************************************
RD24: ;读24C02 子程序
4、
PUSH ACC
SETB SDA24
CLR SCL24
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 R4,#8
CLR A
SETB SDA24
22
RD000:RL A
SETB SCL24
MOV C,SDA24
MOV ACC.0,C
CLR SCL24
DJNZ R4,RD000
RET
;-----
5、
;写入24C02 程序:
WT24:PUSH ACC
SETB SDA24
CLR SCL24
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
6、 SCL24
CLR SDA24
CLR SCL24
RET
;停止条件
STOP:CLR SDA24
SETB SCL24
SETB SDA24
RET
;应答信号
ACK:SETB SCL24
CLR SCL24
RET
23
;读、写数据
SHIFT8:MOV R4,#8
SH01:RLC A
MOV SDA24,C
SETB SCL24
CLR SCL24
DJNZ R4,SH01
RET
DELAY2:NOP
NOP
NOP
NOP
RET
;------------显示子程序----------------
DISPLAY:
7、MOV DPTR,#TABLE
DISPLAY1: MOV R0,#7aH
MOV R1,#0EFH
NEXTT: MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOV P2,A
LCALL DAY
INC R0
RL A
MOV R1,A
CJNE R1,#0FEH,NEXTT
RET
DAY: MOV R6,#4
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6, D1
RET
TABLE:
DB 28H ; 0
DB 0EBH ; 1
DB 32H ; 2
DB 0A2H ; 3
D
8、B 0E1H ; 4
DB 0A4H ; 5
DB 24H ; 6
24
DB 0EAH ; 7
DB 20H ; 8
DB 0A0H ; 9
DB 60H ; A
DB 25H ; B
DB 3CH ; C
DB 23H ; D
DB 34H ; E
DB 74H ; F
DB 0D7H ; -.
DB 61H ; H
DB 70H ;P
DB 0DFH ; .
DB 27H ;o
DB 0FFH ; 全黑
END
调试步骤:
1)线路连接:单片机P3.4、P3.5 与24C02 连接
2)下载程序:接好通信线,运行STC 程序。请参照“LK-51 系列单片机实
验、应用学习机使用说明”。
按照使用说明中提示的步骤,分别选择单片机型号、打开待下载的程序文件
(.HEX 文件)、选择通信口和通信波特率(可选38400);
下载程序,先关电源,点击Down Load/下载框,然后再接通电源(冷启动),
在左下框中出现程序下载信息,并提示程序下载成功。
3)运行程序:中断服务程序对中断次数计数,每中断一次加1,并将计数
值在右边两位数码管上显示,;计满99 次自动回零。系统掉电或复位时保存计
数次数,在开机后自动读出显示。