📄 rount.src
字号:
; rount.SRC generated from: rount.c
; COMPILER INVOKED BY:
; C:\PROGRA~1\Keil\C51\BIN\c51.exe rount.c DB OE SMALL ROM(LARGE)
$NOMOD51
NAME ROUNT
pageh BIT 090H.1
pagel BIT 090H.0
?PR?read_id?ROUNT SEGMENT CODE
?DT?read_id?ROUNT SEGMENT DATA OVERLAYABLE
?DT?ROUNT SEGMENT DATA
EXTRN CODE (_wradr)
EXTRN DATA (?_wradr?BYTE)
EXTRN CODE (FindDevices)
EXTRN DATA (FoundROM)
EXTRN CODE (_rdadr)
EXTRN DATA (?_rdadr?BYTE)
PUBLIC send_rom_flg
PUBLIC init_adr
PUBLIC read_id
RSEG ?DT?read_id?ROUNT
?read_id?BYTE:
i?040: DS 1
j?041: DS 1
id_count?042: DS 1
data_rom?043: DS 16
RSEG ?DT?ROUNT
init_adr: DS 1
send_rom_flg: DS 1
; #pragma src
; #include<iicrount_h.h>
; #include<intrins.h>
;
; extern void FindDevices(void);
; extern unsigned char data FoundROM[2][8] ;
;
; unsigned char data init_adr; //写操作时EEPROM偏移地址索
; unsigned char data send_rom_flg;
;
; void read_id(void)
RSEG ?PR?read_id?ROUNT
read_id:
USING 0
; SOURCE LINE # 11
; {
; SOURCE LINE # 12
; unsigned char data i,j;
; unsigned char id_count;
; unsigned char data_rom[16]; //verify eeprom data after write
;
; i =0;
; SOURCE LINE # 17
CLR A
MOV i?040,A
; j =0;
; SOURCE LINE # 18
MOV j?041,A
; pagel =0;
; SOURCE LINE # 19
CLR pagel
; pageh =0;
; SOURCE LINE # 20
CLR pageh
; send_rom_flg =0;
; SOURCE LINE # 21
MOV send_rom_flg,A
; init_adr =0x00;
; SOURCE LINE # 22
MOV init_adr,A
; FindDevices(); //查找所有DS18B20 ID,暂存FoundROM[64][8]
; SOURCE LINE # 23
LCALL FindDevices
;
; if(send_rom_flg==1)
; SOURCE LINE # 25
MOV A,send_rom_flg
XRL A,#01H
JNZ ?C0001
; {
; SOURCE LINE # 26
; for(j=0;j<64;j++)
; SOURCE LINE # 27
MOV j?041,A
?C0002:
; {
; SOURCE LINE # 28
; if(id_count==0xff)
; SOURCE LINE # 29
MOV A,id_count?042
CJNE A,#0FFH,?C0005
; {
; SOURCE LINE # 30
; pageh =0;
; SOURCE LINE # 31
CLR pageh
; pagel =1;
; SOURCE LINE # 32
SETB pagel
; }
; SOURCE LINE # 33
?C0005:
; for(i=0;i<4;i++) //写8字节数据到EEPROM中
; SOURCE LINE # 34
CLR A
MOV i?040,A
?C0006:
; {
; SOURCE LINE # 35
; wradr(&FoundROM[j][2*i],init_adr+2*i,2); //每次只能写入2字节<24C02>
; SOURCE LINE # 36
MOV A,j?041
MOV B,#08H
MUL AB
ADD A,#LOW (FoundROM)
MOV R1,A
CLR A
MOV R3,A
MOV A,i?040
MOV B,#02H
MUL AB
ADD A,R1
MOV R1,A
CLR A
ADDC A,B
MOV R2,A
MOV A,i?040
ADD A,ACC
ADD A,init_adr
MOV R5,A
MOV ?_wradr?BYTE+04H,#02H
LCALL _wradr
; }
; SOURCE LINE # 37
INC i?040
MOV A,i?040
CLR C
SUBB A,#04H
JC ?C0006
?C0007:
; id_count+=8;
; SOURCE LINE # 38
MOV A,#08H
ADD A,id_count?042
MOV id_count?042,A
; init_adr+=8;
; SOURCE LINE # 39
MOV A,#08H
ADD A,init_adr
MOV init_adr,A
; }
; SOURCE LINE # 40
INC j?041
MOV A,j?041
CLR C
SUBB A,#040H
JC ?C0002
; }
; SOURCE LINE # 41
?C0001:
; //verify eeprom data after write
; init_adr =0;
; SOURCE LINE # 43
CLR A
MOV init_adr,A
; rdadr(&data_rom[0],init_adr,16);
; SOURCE LINE # 44
MOV R3,A
MOV R2,#HIGH (data_rom?043)
MOV R1,#LOW (data_rom?043)
MOV ?_rdadr?BYTE+04H,#010H
MOV R5,init_adr
LCALL _rdadr
;
; send_rom_flg =0;
; SOURCE LINE # 46
CLR A
MOV send_rom_flg,A
;
; }
; SOURCE LINE # 48
RET
; END OF read_id
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -