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

📄 eerw.lst

📁 c语言写的读写24的holtek程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 122  0004              L12:

; 124: 		scl=1;
 124  0004  3194        SET [014H].3

; 125: 		BYTE<<=1;
 125  0005  340A        CLR [0AH].0
 125  0006  1A80     R  RLC CR3

; 126: 		BYTE|=sda;
 126  0007  1F00     R  CLR b0_7
 126  0008  3C18        SZ [018H].0
 126  0009  3000     R  SET b0_7.0
 126  000A  0700     R  MOV A,b0_7
 126  000B  0580     R  ORM A,CR3

; 127: 	    scl=0;
 127  000C  3594        CLR [014H].3
 127  000D              L13:

; 122: 	for(i=0;i<8;i++)
 122  000D  1480     R  INC CR4
 122  000E              L15:
 122  000E  0700     R  MOV A,CR4
 122  000F  0A08        SUB A,08h
 122  0010  380A        SNZ [0ah].0
 122  0011  2800     R  JMP L12

; 129: sda_c=0;	                         //设置成输出模式	
 129  0012  3419        CLR [019H].0

; 130: Ack();		
 130  0013  2000     R  CALL _Ack

; 131: return(BYTE);	
 131  0014  0700     R  MOV A,CR3
 131  0015              L11:
 131  0015  0003        RET
 131  0000  00          LOCAL b0_7 DB ?
文件:EERW.C       盛群编译器版本 2.86 页次8


; 120: 	uchar i,BYTE=0;
 120  0001  00          LOCAL CR3 DB ? ; BYTE
 120  0002  00          LOCAL CR4 DB ? ; i
 120  0016              _Read ENDP

; 136: {
 136  0000              @delay_ms .SECTION 'CODE'
 136  0000              PUBLIC _delay_ms
 136  0000              _delay_ms PROC

; 135: void delay_ms(unsigned char n)
 135  0000              PUBLIC delay_ms0
 135  0000  00          LOCAL delay_ms0 DB ? ; n

; 138: 	for(;n!=0;n--)
 138  0000  2800     R  JMP L20
 138  0001              L17:
文件:EERW.c       盛群编译器版本 2.86 页次8 


; 140: 		for(temp=1120;temp!=0;temp--)  ;
 140  0001  0F60        MOV A,060h
 140  0002  0080     R  MOV CR5,A
 140  0003  2800     R  JMP L24
 140  0004              L21:
 140  0004              L22:
 140  0004  1580     R  DEC CR5
 140  0005              L24:
 140  0005  1080     R  SZ CR5
 140  0006  2800     R  JMP L21
 140  0007              L18:

; 138: 	for(;n!=0;n--)
 138  0007  1580     R  DEC delay_ms0
 138  0008              L20:
 138  0008  1080     R  SZ delay_ms0
 138  0009  2800     R  JMP L17
 138  000A              L16:
 138  000A  0003        RET

; 137: 	unsigned int temp;
 137  0001  00          LOCAL CR5 DB ? ; temp
 137  000B              _delay_ms ENDP

; 145: {
 145  0000              @iic_write .SECTION 'CODE'
 145  0000              PUBLIC _iic_write
 145  0000              _iic_write PROC

; 144: void  iic_write(uchar Wr_Address,uchar WrData_Address,uchar data  )
 144  0000              PUBLIC iic_write0
 144  0000  00          LOCAL iic_write0 DB ? ; Wr_Address
 144  0000              PUBLIC iic_write1
 144  0001  00          LOCAL iic_write1 DB ? ; WrData_Address
文件:EERW.C       盛群编译器版本 2.86 页次9

 144  0000              PUBLIC iic_write2
 144  0002  00          LOCAL iic_write2 DB ? ; data

; 146: 	start();
 146  0000  2000     R  CALL _start

; 147: 	send(Wr_Address);
 147  0001  0700     R  MOV A,iic_write0
 147  0002  0080     R  MOV send0,A
 147  0003  2000     R  CALL _send

; 148: 	testack();
 148  0004  2000     R  CALL _testack

; 149: 	send(WrData_address);
 149  0005  0700     R  MOV A,_WrData_address
 149  0006  0080     R  MOV send0,A
 149  0007  2000     R  CALL _send

; 150: 	testack();
 150  0008  2000     R  CALL _testack

; 151: 	send(data);             //发送数据
文件:EERW.c       盛群编译器版本 2.86 页次9 

 151  0009  0700     R  MOV A,iic_write2
 151  000A  0080     R  MOV send0,A
 151  000B  2000     R  CALL _send

; 152: 	testack();
 152  000C  2000     R  CALL _testack

; 153: 	stp();
 153  000D  2000     R  CALL _stp

; 154: 	delay_ms(10);
 154  000E  0F0A        MOV A,0ah
 154  000F  0080     R  MOV delay_ms0,A
 154  0010  2000     R  CALL _delay_ms
 154  0011              L25:
 154  0011  0003        RET
 154  0012              _iic_write ENDP

; 158: {    
 158  0000              @iic_read .SECTION 'CODE'
 158  0000              PUBLIC _iic_read
 158  0000              _iic_read PROC

; 157: uchar   iic_read(uchar Wr_Address,uchar WrData_Address )
 157  0000              PUBLIC iic_read0
 157  0000  00          LOCAL iic_read0 DB ? ; Wr_Address
 157  0000              PUBLIC iic_read1
 157  0001  00          LOCAL iic_read1 DB ? ; WrData_Address

; 160: 	start();
 160  0000  2000     R  CALL _start

; 161: 	send(Wr_Address);          //发送设备地址0A0H    
 161  0001  0700     R  MOV A,iic_read0
 161  0002  0080     R  MOV send0,A
 161  0003  2000     R  CALL _send

; 162: 	testack();
 162  0004  2000     R  CALL _testack

; 163: 	send(WrData_address);     //发送数据地址
 163  0005  0700     R  MOV A,_WrData_address
 163  0006  0080     R  MOV send0,A
文件:EERW.C       盛群编译器版本 2.86 页次10

 163  0007  2000     R  CALL _send

; 164: 	testack();
 164  0008  2000     R  CALL _testack

; 165: 	start();
 165  0009  2000     R  CALL _start

; 166: 	send(0xa1);	              //设置从机为读模式,读模式第0位是1  0A1h
 166  000A  0FA1        MOV A,0a1h
 166  000B  0080     R  MOV send0,A
 166  000C  2000     R  CALL _send

; 167: 	testack();
 167  000D  2000     R  CALL _testack
文件:EERW.c       盛群编译器版本 2.86 页次10 


; 168: 	a =Read();
 168  000E  2000     R  CALL _Read
 168  000F  0080     R  MOV CR6,A

; 169: 	NoAck();
 169  0010  2000     R  CALL _NoAck

; 170: 	stp();
 170  0011  2000     R  CALL _stp

; 171: 	return a  ;
 171  0012  0700     R  MOV A,CR6
 171  0013              L26:
 171  0013  0003        RET

; 159:     unsigned char a  ;
 159  0002  00          LOCAL CR6 DB ? ; a
 159  0014              _iic_read ENDP

; 178: {   
 178  0000              @MAIN .SECTION 'CODE'
 178  0000              _main PROC
 178  0000              begin:

; 180: 	_pac=0x00;             //set pa output
 180  0000  1F13        CLR __pac

; 181: 	_pbc=0x00;
 181  0001  1F15        CLR __pbc

; 182: 	_pdc=0x00;
 182  0002  1F19        CLR __pdc

; 183:     iic_write(0xa0 , 0x00 , 65)  ;
 183  0003  0FA0        MOV A,0a0h
 183  0004  0080     R  MOV iic_write0,A
 183  0005  0F00        MOV A,00h
 183  0006  0080     R  MOV iic_write1,A
 183  0007  0F41        MOV A,041h
 183  0008  0080     R  MOV iic_write2,A
 183  0009  2000     R  CALL _iic_write

; 184:     delay_ms(100)  ;
 184  000A  0F64        MOV A,064h
 184  000B  0080     R  MOV delay_ms0,A
 184  000C  2000     R  CALL _delay_ms

; 185:     iic_write(0xA0 , 0x10 ,95);
 185  000D  0FA0        MOV A,0a0h
 185  000E  0080     R  MOV iic_write0,A
 185  000F  0F10        MOV A,010h
 185  0010  0080     R  MOV iic_write1,A
 185  0011  0F5F        MOV A,05fh
 185  0012  0080     R  MOV iic_write2,A
 185  0013  2000     R  CALL _iic_write

; 186:     delay_ms(100)  ;
 186  0014  0F64        MOV A,064h
 186  0015  0080     R  MOV delay_ms0,A
文件:EERW.c       盛群编译器版本 2.86 页次11 

文件:EERW.C       盛群编译器版本 2.86 页次11

 186  0016  2000     R  CALL _delay_ms

; 187:     iic_write(0xA0 , 0x20 , 180);
 187  0017  0FA0        MOV A,0a0h
 187  0018  0080     R  MOV iic_write0,A
 187  0019  0F20        MOV A,020h
 187  001A  0080     R  MOV iic_write1,A
 187  001B  0FB4        MOV A,0b4h
 187  001C  0080     R  MOV iic_write2,A
 187  001D  2000     R  CALL _iic_write

; 188:     delay_ms(100)  ;
 188  001E  0F64        MOV A,064h
 188  001F  0080     R  MOV delay_ms0,A
 188  0020  2000     R  CALL _delay_ms

; 189:     ration_setsgl = (iic_read(0xA0 , 0x10));
 189  0021  0FA0        MOV A,0a0h
 189  0022  0080     R  MOV iic_read0,A
 189  0023  0F10        MOV A,010h
 189  0024  0080     R  MOV iic_read1,A
 189  0025  2000     R  CALL _iic_read
 189  0026  0080     R  MOV _ration_setsgl,A

; 191:     if(ration_setsgl<=35)ration_setsgl = 98 ;
 191  0027  0F23        MOV A,023h
 191  0028  0200     R  SUB A,_ration_setsgl
 191  0029  380A        SNZ [0ah].0
 191  002A  2800     R  JMP L28
 191  002B  0F62        MOV A,062h
 191  002C  0080     R  MOV _ration_setsgl,A
 191  002D              L28:

; 193: 	  ration_setdou = (iic_read(0xA0,0x20)) ;
 193  002D  0FA0        MOV A,0a0h
 193  002E  0080     R  MOV iic_read0,A
 193  002F  0F20        MOV A,020h
 193  0030  0080     R  MOV iic_read1,A
 193  0031  2000     R  CALL _iic_read
 193  0032  0080     R  MOV _ration_setdou,A

; 195:     if(ration_setdou<=100)ration_setdou = 174 ;
 195  0033  0F64        MOV A,064h
 195  0034  0200     R  SUB A,_ration_setdou
 195  0035  380A        SNZ [0ah].0
 195  0036  2800     R  JMP L30
 195  0037  0FAE        MOV A,0aeh
 195  0038  0080     R  MOV _ration_setdou,A
 195  0039              L30:

; 197: 	  temp_set = (iic_read(0xA0 , 0x00 ))  ;
 197  0039  0FA0        MOV A,0a0h
 197  003A  0080     R  MOV iic_read0,A
 197  003B  0F00        MOV A,00h
 197  003C  0080     R  MOV iic_read1,A
 197  003D  2000     R  CALL _iic_read
 197  003E  0080     R  MOV _temp_set,A

; 198:     if(ErrorBit)temp_set=62;      //如果写入有问题,默认102度
文件:EERW.c       盛群编译器版本 2.86 页次12 

 198  003F  3800     R  SNZ _ErrorBit
 198  0040  2800     R  JMP L35
 198  0041  0F3E        MOV A,03eh
 198  0042  0080     R  MOV _temp_set,A
 198  0043              L34:
 198  0043              L35:
文件:EERW.C       盛群编译器版本 2.86 页次12


; 199:    	while(1)   ;
 199  0043  2800     R  JMP L34
 199  0044              L27:

; 201: }
 201  0044  2800     R  JMP $
 201  0045              _main ENDP
 201  0045              PUBLIC _ration_setdou
 201  0000              @ration_setdou .SECTION 'DATA'

;  14: unsigned char  ration_setdou ;
  14  0000  00          _ration_setdou DB ? ; ration_setdou
  14  0001              PUBLIC _ration_setsgl
  14  0000              @ration_setsgl .SECTION 'DATA'

;  13: unsigned char  ration_setsgl ;
  13  0000  00          _ration_setsgl DB ? ; ration_setsgl
  13  0001              PUBLIC _temp_set
  13  0000              @temp_set .SECTION 'DATA'

;  12: unsigned char  temp_set   ;                          //set temperature  variable of the whole 
  12  0000  00          _temp_set DB ? ; temp_set
  12  0001              PUBLIC _WrData_address
  12  0000              @WrData_address .SECTION 'DATA'

;  11: uchar  WrData_address;
  11  0000  00          _WrData_address DB ? ; WrData_address
  11  0001              PUBLIC _Wr_Address
  11  0000              @Wr_Address .SECTION 'DATA'

;  10: uchar  Wr_Address;                           
  10  0000  00          _Wr_Address DB ? ; Wr_Address
  10  0000              BITDATASEC .SECTION 'DATA'
  10  0000              PUBLIC _ErrorBit

;  16: bit   ErrorBit  ;  
  16  0000  00          _ErrorBit DBIT ; ErrorBit

; 177: void  main (void)
 177  0000              STARTSEC .SECTION 'CODE'
 177  0000              STARTUP:
 177  0000  0003        RET
 177  0000              @CODE .SECTION AT 0 'CODE'
 177  0000  2800     R  JMP begin
 177  0001              @DUMMY PROC
 177  0001  2000     R  CALL _main
 177  0002              @DUMMY ENDP
 177  0002              ROMBANK 0 @DUMMYNOP 
 177  0000              @DUMMYNOP .SECTION AT 07ffh 'CODE'
 177  0000  0000        nop

文件:EERW.c       盛群编译器版本 2.86 页次13 


        0 Errors

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -