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

📄 sangna.lst

📁 用HOLTEK单片机做的一个实际项目
💻 LST
📖 第 1 页 / 共 5 页
字号:
 599  0027              _RcvByte ENDP

; 640: {
 640  0000              @Ack_I2C .SECTION 'CODE'
 640  0000              PUBLIC _Ack_I2C
 640  0000              _Ack_I2C PROC

; 639: void Ack_I2C(bit a)
 639  0000              PUBLIC Ack_I2C0
文件:SANGNA.C     盛群编译器版本 2.86 页次27

 639  0000  00          LOCAL Ack_I2C0 DBIT ; a

; 641:    if(a)
 641  0000  3800     R  SNZ Ack_I2C0
 641  0001  2800     R  JMP L127

; 642:       SDA=1;
 642  0002  3194        SET [014H].3
 642  0003  2800     R  JMP L128
 642  0004              L127:

; 644:       SDA=0;
 644  0004  3594        CLR [014H].3
 644  0005              L128:

; 645:    _nop();
 645  0005  0000        NOP

; 646:    _nop();
 646  0006  0000        NOP

; 647:    _nop();
 647  0007  0000        NOP

; 648:    _nop();
 648  0008  0000        NOP

; 649:    _nop();
 649  0009  0000        NOP

; 650:    SCL=1;
 650  000A  3114        SET [014H].2

; 651:    _nop();
 651  000B  0000        NOP

; 652:    _nop();
文件:SANGNA.c     盛群编译器版本 2.86 页次31 

 652  000C  0000        NOP

; 653:    _nop();
 653  000D  0000        NOP

; 654:    _nop();
 654  000E  0000        NOP

; 655:    _nop();
 655  000F  0000        NOP

; 656:    _nop();
 656  0010  0000        NOP

; 657:    SCL=0;
 657  0011  3514        CLR [014H].2

; 658:    _nop();
 658  0012  0000        NOP

; 659:    _nop();
 659  0013  0000        NOP

; 660:    _nop();
 660  0014  0000        NOP

; 661:    _nop();
 661  0015  0000        NOP
 661  0016              L126:
 661  0016  0003        RET
 661  0017              _Ack_I2C ENDP

; 666: {
 666  0000              @SettingRD .SECTION 'CODE'
 666  0000              PUBLIC _SettingRD
 666  0000              _SettingRD PROC

; 667:     Start_I2C();
 667  0000  2000     R  CALL _Start_I2C

; 668:     SendByte(AT24ADDR);
 668  0001  0FA0        MOV A,0a0h
文件:SANGNA.C     盛群编译器版本 2.86 页次28

 668  0002  0080     R  MOV SendByte0,A
 668  0003  2000     R  CALL _SendByte

; 669:     SendByte(0);
 669  0004  0F00        MOV A,00h
 669  0005  0080     R  MOV SendByte0,A
 669  0006  2000     R  CALL _SendByte

; 670:     Start_I2C();
 670  0007  2000     R  CALL _Start_I2C

; 671:     SendByte(AT24ADDR+1);
 671  0008  0FA1        MOV A,0a1h
 671  0009  0080     R  MOV SendByte0,A
 671  000A  2000     R  CALL _SendByte

; 673:     _PreSettedTemperature=RcvByte();
文件:SANGNA.c     盛群编译器版本 2.86 页次32 

 673  000B  2000     R  CALL _RcvByte
 673  000C  0080     R  MOV b0_10,A
 673  000D  0700     R  MOV A,b0_10
 673  000E  0080     R  MOV __PreSettedTemperature,A
 673  000F  1F00     R  CLR __PreSettedTemperature[1]

; 674:     Ack_I2C(0);
 674  0010  3400     R  CLR Ack_I2C0
 674  0011  2000     R  CALL _Ack_I2C

; 676:     _Timer=RcvByte();
 676  0012  2000     R  CALL _RcvByte
 676  0013  0080     R  MOV b0_10,A
 676  0014  0700     R  MOV A,b0_10
 676  0015  0080     R  MOV __Timer,A
 676  0016  1F00     R  CLR __Timer[1]

; 677: 	Ack_I2C(1);
 677  0017  3000     R  SET Ack_I2C0
 677  0018  2000     R  CALL _Ack_I2C

; 678: 	Stop_I2C();
 678  0019  2000     R  CALL _Stop_I2C

; 680: 	_Timer*=60;
 680  001A  0700     R  MOV A,__Timer
 680  001B  0080     E  MOV T2,A
 680  001C  0700     R  MOV A,__Timer[1]
 680  001D  0080     E  MOV RH,A
 680  001E  0F00        MOV A,00h
 680  001F  0080     E  MOV T4,A
 680  0020  0F3C        MOV A,03ch
 680  0021  2000     E  CALL MULL
 680  0022  0080     R  MOV __Timer[1],A
 680  0023  0700     E  MOV A,T6
 680  0024  0080     R  MOV __Timer,A
 680  0025              L129:
 680  0025  0003        RET
 680  0000  00          LOCAL b0_10 DB ?
 680  0026              _SettingRD ENDP

; 684: {
 684  0000              @SettingWR .SECTION 'CODE'
 684  0000              PUBLIC _SettingWR
 684  0000              _SettingWR PROC

; 685:     Start_I2C();
 685  0000  2000     R  CALL _Start_I2C

; 686:     SendByte(AT24ADDR);
 686  0001  0FA0        MOV A,0a0h
 686  0002  0080     R  MOV SendByte0,A
 686  0003  2000     R  CALL _SendByte

; 687:     SendByte(0);
文件:SANGNA.C     盛群编译器版本 2.86 页次29

 687  0004  0F00        MOV A,00h
 687  0005  0080     R  MOV SendByte0,A
 687  0006  2000     R  CALL _SendByte
文件:SANGNA.c     盛群编译器版本 2.86 页次33 


; 689:     SendByte(_PreSettedTemperature);
 689  0007  0700     R  MOV A,__PreSettedTemperature
 689  0008  0080     R  MOV SendByte0,A
 689  0009  2000     R  CALL _SendByte

; 691: 	SendByte(_Timer/60);
 691  000A  0F3C        MOV A,03ch
 691  000B  0080     E  MOV T2,A
 691  000C  0F00        MOV A,00h
 691  000D  0080     E  MOV RH,A
 691  000E  0700     R  MOV A,__Timer[1]
 691  000F  0080     E  MOV T6,A
 691  0010  0700     R  MOV A,__Timer
 691  0011  2000     E  CALL DIVUL
 691  0012  0080     R  MOV b0_11,A
 691  0013  0700     E  MOV A,T6
 691  0014  0080     R  MOV b0_11[1],A
 691  0015  0700     R  MOV A,b0_11
 691  0016  0080     R  MOV SendByte0,A
 691  0017  2000     R  CALL _SendByte

; 693: 	Stop_I2C();
 693  0018  2000     R  CALL _Stop_I2C
 693  0019              L130:
 693  0019  0003        RET
 693  0000  0002[       LOCAL b0_11 DB 2 DUP(?)
            00
            ]
 693  001A              _SettingWR ENDP

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

; 702: 	safeguard_init();
 702  0000  2000     R  CALL _safeguard_init

; 704: 	_LedSequence=0;
 704  0001  1F00     R  CLR __LedSequence

; 707: 	OUTPUT_DRAIN=0;		
 707  0002  3792        CLR [012H].7

; 708: 	OUTPUT_POWER=0;																			//剩余30分时关排水,开消毒
 708  0003  3694        CLR [014H].5

; 709: 	OUTPUT_FAN=0;
 709  0004  3492        CLR [012H].1

; 710: 	OUTPUT_HEAT=0;
 710  0005  3614        CLR [014H].4

; 711: 	OUTPUT_LIGHT=0;
 711  0006  3592        CLR [012H].3

; 712: 	OUTPUT_DISINFACT=0;
 712  0007  3412        CLR [012H].0

; 714: 	_SysState=IDLE;
文件:SANGNA.c     盛群编译器版本 2.86 页次34 

 714  0008  1F00     R  CLR __SysState

; 715: 	_DrainTimer=0;
 715  0009  1F00     R  CLR __DrainTimer

; 716: 	_DisinfactTimer=0;
 716  000A  1F00     R  CLR __DisinfactTimer
 716  000B  1F00     R  CLR __DisinfactTimer[1]

; 718: 	_Timer=0;
 718  000C  1F00     R  CLR __Timer
文件:SANGNA.C     盛群编译器版本 2.86 页次30

 718  000D  1F00     R  CLR __Timer[1]

; 720: 	_Flag_Power=0;
 720  000E  3400     R  CLR __Flag_Power

; 722: 	_Flag_KeyPressed=0;
 722  000F  3400     R  CLR __Flag_KeyPressed

; 724: 	_InputReg=0xFF;
 724  0010  1F80     R  SET __InputReg

; 725: 	_PreInputReg=0xFF;
 725  0011  1F80     R  SET __PreInputReg

; 727: 	SettingRD();
 727  0012  2000     R  CALL _SettingRD

; 729: 	if(_PreSettedTemperature>SAFE_TEMPERATURE)
 729  0013  0F00        MOV A,00h
 729  0014  0200     R  SUB A,__PreSettedTemperature[1]
 729  0015  380A        SNZ [0ah].0
 729  0016  2800     R  JMP L225
 729  0017  390A        SNZ [0ah].2
 729  0018  2800     R  JMP L132
 729  0019  0F43        MOV A,043h
 729  001A  0200     R  SUB A,__PreSettedTemperature
 729  001B  3C0A        SZ [0ah].0
 729  001C  2800     R  JMP L132
 729  001D              L225:

; 731: 		_PreSettedTemperature=SAFE_TEMPERATURE;
 731  001D  0F43        MOV A,043h
 731  001E  0080     R  MOV __PreSettedTemperature,A
 731  001F  1F00     R  CLR __PreSettedTemperature[1]
 731  0020              L132:

; 734: 	_ton=1;
 734  0020  320E        SET [0EH].4
 734  0021  2800     R  JMP L135
 734  0022              L134:

; 747: 		if(_DisinfactTimer)																		
 747  0022  0700     R  MOV A,__DisinfactTimer
 747  0023  0500     R  OR A,__DisinfactTimer[1]
 747  0024  3D0A        SZ [0ah].2
 747  0025  2800     R  JMP L137

; 749: 			OUTPUT_DISINFACT=1;
文件:SANGNA.c     盛群编译器版本 2.86 页次35 

 749  0026  3012        SET [012H].0

; 750: 		}
 750  0027  2800     R  JMP L138
 750  0028              L137:

; 753: 			OUTPUT_DISINFACT=0;
 753  0028  3412        CLR [012H].0
 753  0029              L138:

; 759: 		if(_DrainTimer)																		
 759  0029  1080     R  SZ __DrainTimer
 759  002A  2800     R  JMP L226
 759  002B  2800     R  JMP L139
 759  002C              L226:

; 761: 			OUTPUT_DRAIN=1;
文件:SANGNA.C     盛群编译器版本 2.86 页次31

 761  002C  3392        SET [012H].7

; 762: 		}
 762  002D  2800     R  JMP L140
 762  002E              L139:

; 765: 			OUTPUT_DRAIN=0;
 765  002E  3792        CLR [012H].7
 765  002F              L140:

; 773: 		if(!_ButtonScanTimer)
 773  002F  1080     R  SZ __ButtonScanTimer
 773  0030  2800     R  JMP L141

; 777: 			BEEP=0;
 777  0031  3496        CLR [016H].1

; 779: 			_flag_delay=0;
 779  0032  3400     R  CLR CR20

; 781: 			SER_CLK1=0;
 781  0033  3494        CLR [014H].1

; 783: 			SER_DATA1=0;
 783  0034  3416        CLR [016H].0

; 785: 			SER_CLK1=1;
 785  0035  3094        SET [014H].1

; 787: 			SER_DATA1=1;
 787  0036  3016        SET [016H].0

; 789: 			_InputReg=0;
 789  0037  1F00     R  CLR __InputReg

; 791: 			for(i=8;i--;)
 791  0038  0F08        MOV A,08h
 791  0039  0080     R  MOV CR18,A
 791  003A  2800     R  JMP L146
 791  003B              L143:

; 793: 				_InputReg>>=1;
文件:SANGNA.c     盛群编译器版本 2.86 页次36 

 793  003B  340A        CLR [0AH].0
 793  003C  1B80     R  RRC __InputReg

; 795: 				if(KEY_COM)
 795  003D  3A92        SNZ [012H].5
 795  003E  2800     R  JMP L147

; 797: 					_InputReg+=0x80;
 797  003F  0F80        MOV A,080h
 797  0040  0380     R  ADDM A,__InputReg
 797  0041              L147:

; 800: 				SER_CLK1=0;
 800  0041  3494        CLR [014H].1

; 801: 				SER_CLK1=1;			
 801  0042  3094        SET [014H].1
 801  0043              L144:
 801  0043              L146:

; 791: 			for(i=8;i--;)
 791  0043  0700     R  MOV A,CR18
 791  0044  0080     R  MOV b0_12,A
 791  0045  1580     R  DEC CR18
 791  0046  1080     R  SZ b0_12
 791  0047  2800     R  JMP L143
文件:SANGNA.C     盛群编译器版本 2.86 页次32


; 805: 			if((_PreInputReg==_InputReg)&&(_PreInputReg!=0xFF))
 805  0048  0700     R  MOV A,__PreInputReg
 805  0049  0080     R  MOV b0_12,A
 805  004A  0700     R  MOV A,b0_12
 805  004B  0400     R  XOR A,__InputReg
 805  004C  390A        SNZ [0ah].2
 805  004D  2800     R  JMP L149
 805  004E  0700     R  MOV A,b0_12
 805  004F  0CFF        XOR A,0ffh
 805  0050  3D0A        SZ [0ah].2
 805  0051  2800     R  JMP L149

; 807: 				_Flag_KeyPressed=1;
 807  0052  3000     R  SET __Flag_KeyPressed
 807  0053              L149:

; 810: 			if(_Flag_KeyPressed)
 810  0053  3800     R  SNZ __Flag_KeyPressed
 810  0054  2800     R  JMP L151

; 812: 				if((_InputReg==0xFF)||((~_InputReg)&0x05))
 812  0055  0700     R  MOV A,__InputReg
 812  0056  0080     R  MOV b0_12,A
 812  0057  0700     R  MOV A,b0_12
 812  0058  0CFF        XOR A,0ffh
 812  0059  3D0A        SZ [0ah].2
 812  005A  2800     R  JMP L155
 812  005B  0100     R  CPLA b0_12
 812  005C  0080     R  MOV b0_12,A
 812  005D  0700     R  MOV A,b0_12
 812  005E  0E05        AND A,05h
文件:SANGNA.c     盛群编译器版本 2.86 页次37 

 812  005F  1085        SZ [05H]
 812  0060  2800     R  JMP L227
 812  0061  2800     R  JMP L153
 812  0062              L227:
 812  0062              L155:

; 814: 					temp=~_PreInputReg;
 814  0062  0100     R  CPLA __PreInputReg
 814  0063  0080     R  MOV CR19,A

; 815: 					temp&=0x7F;
 815  0064  3400     R  CLR CR19.7

; 816: 					for(i=8;(i--)&&temp;)
 816  0065  0F08        MOV A,08h
 816  0066  0080     R  MOV CR18,A
 816  0067  2800     R  JMP L159
 816  0068              L156:

; 818: 						if(temp&0x80)
 818  0068  3800     R  SNZ CR19.7
 818  0069  2800     R  JMP L160

; 820: 							switch(i)
 820  006A  0700     R  MOV A,CR18
 820  006B  0080     R  MOV 

⌨️ 快捷键说明

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