DJNZ R2,IR1 ;判断7位地址写完否,未完继续
RET
;----------------------------------------------------------
; 输出擦单元地址子程序
INADREW:
CALL INADR
CLR CS
NOP
SETB CS
JNB DO,$ ; DO=0,表示编程正在进行;
; DO=1,表示该指定地址的寄存器单元已擦完,可以执行下一条指令。
RET
;----------------------------------------------------------
; 读一个字节子程序
; 出口: 8位数据存在A中
;----------------------------------------------------------
READ: CLR SK ;时钟置低
MOV R2,#8 ;置读入位数8
RD1: SETB SK ;时钟上升沿读入一位数据
NOP
MOV C,DO ;存入Cy
RLC A ;左移入A中
CLR SK ;时钟置低
DJNZ R2,RD1 ;判8位数据读完否?未完继续
RET
;----------------------------------------------------------
;确良写一个字节子程序
; 入口: 写入数据须事先存入A中.
; 若需写入多个字节数据,须在1ms后,93C46 DO 端出现高电平后才能重新启动写入.
;----------------------------------------------------------
WRIT:
MOV R2,#8 ;置写入位数8
WR1: CLR SK ;时钟置低
RLC A ;A中数据移一位至Cy中
MOV DI,C ;数据传送至DI端
nop
SETB SK ;时钟上升沿输出至93C46
DJNZ R2,WR1 ;判8位数据写完否?未完继续
CLR CS ;8位数据写完,CS下降沿启动93C46擦写
SETB CS ;CS次高位,以使DO端REDAY/BUSY状态位号有效
RET
;----------------------------------------------------------
DLY1ms: ;延时1ms子程序
MOV R31,#29 ;
L2: PUSH R31
L3: DJNZ R31,L3
POP R31
DJNZ R31,L2
RET
DLY10ms: ;延时10ms子程序
MOV R31,#100
L20: PUSH R31
L30: DJNZ R31,L30
POP R31
DJNZ R31,L20
RET
;==========================================================
END
上一页 [1] [2] [3]
本文关键字:软件程序 51单片机,单片机-工控设备 - 51单片机