📄 sangna.lst
字号:
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 + -