📄 iic0.src
字号:
; IIC0.SRC generated from: IIC0.c
; COMPILER INVOKED BY:
; C:\PROGRA~1\Keil\C51\BIN\c51.exe IIC0.c DB OE SMALL ROM(LARGE)
$NOMOD51
NAME IIC0
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
RD BIT 0B0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
led BIT 090H.2
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
TF1 BIT 088H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?_delay_time?IIC0 SEGMENT CODE
?PR?delay_time_1s?IIC0 SEGMENT CODE
?DT?delay_time_1s?IIC0 SEGMENT DATA OVERLAYABLE
?PR?main?IIC0 SEGMENT CODE
?DT?main?IIC0 SEGMENT DATA OVERLAYABLE
?C_INITSEG SEGMENT CODE
?DT?IIC0 SEGMENT DATA
EXTRN CODE (_wradr)
EXTRN DATA (?_wradr?BYTE)
EXTRN CODE (_rdadr)
EXTRN DATA (?_rdadr?BYTE)
EXTRN CODE (_rdnbyt)
EXTRN CODE (?C_STARTUP)
PUBLIC receive_data
PUBLIC init_adr
PUBLIC data_rom
PUBLIC main
PUBLIC delay_time_1s
PUBLIC _delay_time
RSEG ?DT?main?IIC0
?main?BYTE:
i?243: DS 1
RSEG ?DT?delay_time_1s?IIC0
?delay_time_1s?BYTE:
i?142: DS 1
RSEG ?DT?IIC0
data_rom: DS 8
init_adr: DS 1
receive_data: DS 16
RSEG ?C_INITSEG
DB 001H
DB init_adr
DB 000H
DB 008H
DB data_rom
DB 00DH
DB 00AH
DB 0ABH
DB 0A5H
DB 004H
DB 005H
DB 006H
DB 007H
; #pragma src small
; extern wradr(unsigned char *index,unsigned char suadr ,char numbyt);
; extern rdadr(unsigned char *index,unsigned char suadr ,char numbyt);
; extern rdnbyt(unsigned char *index,char numbyt);
; extern wrnbyt(unsigned char *index,char numbyt);
;
; #include<reg51.h>
; #include<intrins.h>
;
; unsigned char data init_adr =0x00;
;
; unsigned char data data_rom[] ={0x0D,0x0A,0xAB,0xA5,0x04,0x05,0x06,0x07};
; unsigned char data receive_data[16];
;
; sbit led =0x92;
; //////////////////////////////
; //名称:延迟程序
; //功能:根据参数延迟
; /////////////////////////////
; void delay_time(unsigned int us) //29us/40us/52us/64us
RSEG ?PR?_delay_time?IIC0
_delay_time:
USING 0
; SOURCE LINE # 20
;---- Variable 'us?040' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 21
; unsigned int data i;
; for(i=0;i<=us;i++)
; SOURCE LINE # 23
;---- Variable 'i?041' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0001:
SETB C
MOV A,R5
SUBB A,R7
MOV A,R4
SUBB A,R6
JNC ?C0004
; _nop_();
; SOURCE LINE # 24
NOP
INC R5
CJNE R5,#00H,?C0014
INC R4
?C0014:
SJMP ?C0001
; }
; SOURCE LINE # 25
?C0004:
RET
; END OF _delay_time
;
; void delay_time_1s (void) //实际模拟仿真测试 /0.9s
RSEG ?PR?delay_time_1s?IIC0
delay_time_1s:
USING 0
; SOURCE LINE # 27
; {
; SOURCE LINE # 28
?C0005:
; unsigned char i;
; while(i<4)
; SOURCE LINE # 30
MOV A,i?142
CLR C
SUBB A,#04H
JNC ?C0007
; {
; SOURCE LINE # 31
; delay_time(8000);
; SOURCE LINE # 32
MOV R7,#040H
MOV R6,#01FH
LCALL _delay_time
; _nop_();
; SOURCE LINE # 33
NOP
; delay_time(8000);
; SOURCE LINE # 34
LCALL _delay_time
; i++;
; SOURCE LINE # 35
INC i?142
; }
; SOURCE LINE # 36
SJMP ?C0005
; }
; SOURCE LINE # 37
?C0007:
RET
; END OF delay_time_1s
;
; ////////////////////////////////
; //名称:主程序
; ///////////////////////////////
; main()
RSEG ?PR?main?IIC0
main:
USING 0
; SOURCE LINE # 42
; {
; SOURCE LINE # 43
; unsigned char i;
;
; led =led^0x01;
; SOURCE LINE # 46
MOV C,led
CPL C
MOV led,C
; for(i=0;i<4;i++)
; SOURCE LINE # 47
CLR A
MOV i?243,A
?C0008:
; {
; SOURCE LINE # 48
;
; wradr(&data_rom[2*i],init_adr+2*i,2); //写入表格数据到EEPROM中
; SOURCE LINE # 50
MOV A,i?243
MOV B,#02H
MUL AB
ADD A,#LOW (data_rom)
MOV R1,A
CLR A
MOV R2,A
MOV R3,A
MOV A,i?243
ADD A,ACC
ADD A,init_adr
MOV R5,A
MOV ?_wradr?BYTE+04H,#02H
LCALL _wradr
; }
; SOURCE LINE # 51
INC i?243
MOV A,i?243
CLR C
SUBB A,#04H
JC ?C0008
?C0009:
; //wrnbyt(&data_rom[1],1);
;
; delay_time_1s();
; SOURCE LINE # 54
LCALL delay_time_1s
;
; rdadr(&receive_data[0],0x10,2); //从EEPROM中读数据到RAM单元
; SOURCE LINE # 56
MOV R3,#00H
MOV R2,#HIGH (receive_data)
MOV R1,#LOW (receive_data)
MOV ?_rdadr?BYTE+04H,#02H
MOV R5,#010H
LCALL _rdadr
; rdnbyt(&receive_data[2],6);
; SOURCE LINE # 57
MOV R3,#00H
MOV R2,#HIGH (receive_data+02H)
MOV R1,#LOW (receive_data+02H)
MOV R5,#06H
LCALL _rdnbyt
?C0011:
;
; while(1);
; SOURCE LINE # 59
SJMP ?C0011
; END OF main
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -