⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rount.src

📁 一个温度采集系统的单片机程序与WINDOWS 串口通信程序
💻 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 + -