?? uvi_4245 nov 08 08.lst
字號:
644
645 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BANK2
646 0015F 1E02 BANK 2
647 00160 1880 MOV A,@0X80
648 00161 0045 MOV T1CR,A ;TXPD和TXTD TIMER1 fs/2 2分頻
649 00162 189C MOV A,@0X9C
650 00163 0046 MOV TSR,A ;16BIT TIMER fs=32.768k
651 00164 1820 MOV A,@0X20
652 00165 0047 MOV T1PD,A ;0.5S 32768/2=16384
653 00166 0048 MOV T1TD,A
654 00167 1800 MOV A,@0X00
655 00168 0049 MOV T2CR,A
656 00169 1804 MOV A,@0X04
657 0016A 004A MOV T2PD,A ;時間過快調整(0.5s過快)(69240秒快34秒)
658 0016B 004B MOV T2TD,A
659
660 0016C 1800 MOV A,@0X00
661 0016D 004C MOV SPIS,A
662 0016E 004D MOV SPIC,A
663 0016F 004E MOV SPIR,A
664 00170 004F MOV SPIW,A ;SPI初始化
665
666 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BANK3
667
668 00171 1E03 BANK 3
669 00172 1800 MOV A,@0X00
670 00173 0045 MOV URC,A
671 00174 0046 MOV URS,A
672 00175 0047 MOV URRD,A
673 00176 0048 MOV URTD,A ;UART初始化
674
675 00177 1800 MOV A,@0X00
676 00178 0049 MOV ADCR,A ;AD控制
677 00179 004A MOV ADICH,A
678 0017A 1819 MOV A,@0X19
679 0017B 004B MOV ADICL,A ;AD0,3,4
680
681 0017C 1800 MOV A,@0X00
682 0017D 004E MOV EIESH,A
683 0017E 004F MOV EIESL,A ;外部中斷邊沿選擇
684
685 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BANK5
686
687 0017F 1E05 BANK 5
688 00180 1800 MOV A,@0X00
689 00181 0046 MOV URC2,A
690 00182 1804 MOV A,@0X04
691 00183 0047 MOV P7PHCR,A ;PULL HIGH
692 00184 180C MOV A,@0X0C
693 00185 004B MOV PBPHCR,A
694 00186 1800 MOV A,@0X00
695 00187 004C MOV PCPHCR,A
696
697 00188 1800 MOV A,@0X00
698 00189 0048 MOV P8PHCR,A
699 0018A 1800 MOV A,@0X00
700 0018B 0049 MOV P9PHCR,A
701 0018C 004A MOV PAPHCR,A ;設置上拉
702
703 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BANK6
704
705 0018D 1E06 BANK 6
706 0018E 1800 MOV A,@0X00
707 0018F 0046 MOV LVRCR,A ;低電壓保護寄存器
708
709 00190 0047 MOV P7ODCR,A
710 00191 004A MOV PAODCR,A
711 00192 004B MOV PBODCR,A
712 00193 1800 MOV A,@0X00 ;AD6,4
713 00194 0048 MOV P8ODCR,A
714 00195 1800 MOV A,@0X00 ;AD0,3
715 00196 0049 MOV P9ODCR,A ;OPEN DRAIN功能寄存器
716
717 00197 180C MOV A,@0X0C
718 00198 004C MOV PORTC,A
719
720 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&一般寄存器初始化
721
722 00199 1855 MOV A,@0X55 ;掉電檢測
723 0019A 0325 XOR A,POWERTEST1
724 0019B 0E83 JBS STATUS,Z
725 0019C 1EB0 LJMP CLR_RAM
725 0019D 01A5 LJMP CLR_RAM
726
727 0019E 18AA MOV A,@0XAA
728 0019F 0326 XOR A,POWERTEST2
729 001A0 0E83 JBS STATUS,Z
730 001A1 1EB0 LJMP CLR_RAM
730 001A2 01A5 LJMP CLR_RAM
731
732 ; MOV A,@0X18 ;test power on T=1,P=1
733 ; AND A,STATUS
734 ; XOR A,@0X18
735 ; JBS STATUS,Z
736
737 001A3 1EB0 LJMP MAIN1
737 001A4 01BA LJMP MAIN1
738
739 001A5 CLR_RAM: ;清除SRAM
740 001A5 1E00 BANK 0
741 001A6 18FF MOV A,@0XFF
742 001A7 0044 MOV R4,A
743
744 001A8 CLR_RAM1:
745 001A8 1E00 BANK 0
746 001A9 00C0 CLR R0
747 001AA 01C4 DEC R4
748
749 001AB 18CF MOV A,@0XCF
750 001AC 0104 SUB A,R4
751 001AD 0C03 JBC STATUS,C
752 001AE 1EB0 LJMP CLR_RAM1
752 001AF 01A8 LJMP CLR_RAM1
753
754 001B0 1855 MOV A,@0X55
755 001B1 0065 MOV POWERTEST1,A
756 001B2 18AA MOV A,@0XAA
757 001B3 0066 MOV POWERTEST2,A
758
759 001B4 1801 MOV A,@0X01
760 001B5 0077 MOV MONTH,A
761 001B6 0076 MOV DAY,A
762 001B7 180C MOV A,@0X0C
763 001B8 0059 MOV HOUR,A ;初始上電顯示中午12點
764 001B9 005A MOV HOUR_12,A
765
766
767 ;=============================================================================主程序
768 001BA MAIN1:
769 001BA 1E00 BANK 0
770 001BB 1881 MOV A,@0X81
771 001BC 004E MOV IMR,A
772
773 001BD 1E01 BANK 1
774 001BE 18C0 MOV A,@0XC0
775 001BF 004E MOV EIMR,A ;允許SET,UV按鍵中斷
776 001C0 0010 ENI
777
778 001C1 MAIN:
779 001C1 1E01 BANK 1
780 001C2 18C0 MOV A,@0XC0
781 001C3 004E MOV EIMR,A
782
783 001C4 1E00 BANK 0
784 001C5 0B3D BS FLAG2,SET_MODE_FLAG
785 001C6 1881 MOV A,@0X81
786 001C7 004E MOV IMR,A
787
788 001C8 1E00 BANK 0
789 001C9 0C17 JBC PRST,FTBAT ;電池電壓不足標志
790 001CA 1EA0 LCALL POWER_TEST ;檢查電池
790 001CB 022F LCALL POWER_TEST ;檢查電池
791
792 001CC 1E00 BANK 0
793 001CD 0C57 JBC PRST,FUV
794 001CE 1EA0 LCALL UV_TEST ;UV長按標志 測試UV
794 001CF 02A5 LCALL UV_TEST ;UV長按標志 測試UV
795
796 001D0 1E00 BANK 0
797 001D1 0DD7 JBC PRST,FDEM
798 001D2 1EA0 LCALL D_TIME_MODE
798 001D3 04D0 LCALL D_TIME_MODE
799
800 001D4 1E00 BANK 0
801 001D5 0C18 JBC FLAG1,UV_SHORT
802 001D6 1EA0 LCALL UV_SHORT_M ;UV短按標志 顯示UV和相應倒計時時間
802 001D7 025A LCALL UV_SHORT_M ;UV短按標志 顯示UV和相應倒計時時間
803
804 001D8 1E00 BANK 0
805 001D9 0CFD JBC FLAG2,SET_LONG
806 001DA 1EA0 LCALL D_TIME_SET
806 001DB 0583 LCALL D_TIME_SET
807
808 001DC 1E00 BANK 0
809 001DD 0CD7 JBC PRST,FSET
810 001DE 1EA0 LCALL TIME_SET ;SET標志,設置時間或調整12/24小時制
810 001DF 0705 LCALL TIME_SET ;SET標志,設置時間或調整12/24小時制
811
812 001E0 0DD7 JBC PRST,FDEM
813 001E1 1EB0 LJMP MAIN
813 001E2 01C1 LJMP MAIN
814
815 001E3 0C57 JBC PRST,FUV
816 001E4 1EB0 LJMP MAIN
816 001E5 01C1 LJMP MAIN
817
818 001E6 1E00 BANK 0
819 001E7 1EA0 LCALL TIME_DISPLAY ;顯示時間
819 001E8 094F LCALL TIME_DISPLAY ;顯示時間
820
821 001E9 1E00 BANK 0
822 001EA 0ECB JBS PORTB,UV
823 001EB 1EB0 LJMP MAIN
823 001EC 01C1 LJMP MAIN
824
825 001ED 0475 MOV KEY_TIME,KEY_TIME
826 001EE 0E83 JBS STATUS,Z
827 001EF 1EB0 LJMP MAIN
827 001F0 01C1 LJMP MAIN
828
829 001F1 0E8B JBS PORTB,SET
830 001F2 1EB0 LJMP MAIN
830 001F3 01C1 LJMP MAIN
831
832 ;=========================================================================POWER_DOWN IDLE模式
833 001F4 POWER_DOWN:
834 001F4 1E03 BANK 3
835 001F5 1800 MOV A,@0X00
836 001F6 0049 MOV ADCR,A
837 001F7 004A MOV ADICH,A
838 001F8 004B MOV ADICL,A ;關AD
839
840 001F9 1E04 BANK 4
841 001FA 1804 MOV A,@0X04
842 001FB 0047 MOV IOC7,A
843 001FC 18A2 MOV A,@0XA2
844 001FD 0048 MOV IOC8,A
845 001FE 1809 MOV A,@0X09
846 001FF 0049 MOV IOC9,A ;P90,P93 2.5V,VS
847 00200 1800 MOV A,@0X00
848 00201 004A MOV IOCA,A
849 00202 180C MOV A,@0X0C
850 00203 004B MOV IOCB,A
851 00204 180C MOV A,@0X0C
852 00205 004C MOV IOCC,A
853
854
855 00206 1E05 BANK 5
856 00207 1804 MOV A,@0X04
857 00208 0047 MOV P7PHCR,A ;PULL HIGH
858 00209 180C MOV A,@0X0C
859 0020A 004B MOV PBPHCR,A
860 0020B 1800 MOV A,@0X00
861 0020C 004C MOV PCPHCR,A
862
863 0020D 1800 MOV A,@0X00
864 0020E 0048 MOV P8PHCR,A
865 0020F 1800 MOV A,@0X00
866 00210 0049 MOV P9PHCR,A
867 00211 004A MOV PAPHCR,A ;設置上拉
868
869
870 00212 1E00 BANK 0
871 00213 1804 MOV A,@0X04
872 00214 0047 MOV PORT7,A
873 00215 18E2 MOV A,@0XE2
874 00216 0048 MOV PORT8,A ;關閉uvi檢測
875 00217 1809 MOV A,@0X09
876 00218 0049 MOV PORT9,A
877 00219 1800 MOV A,@0X00
878 0021A 004A MOV PORTA,A
879 0021B 180C MOV A,@0X0C
880 0021C 004B MOV PORTB,A
881 0021D 1880 MOV A,@0X80
882 0021E 004E MOV IMR,A ;使能T1,TCC中斷(0.5s,50ms)
883
884 0021F 1E01 BANK 1
885 00220 18C0 MOV A,@0XC0
886 00221 004E MOV EIMR,A ;允許SET,UV按鍵中斷
887
888 00222 1E04 BANK 4
889 00223 18C0 MOV A,@0XC0
890 00224 004F MOV WKCR,A ;允許SET,UV喚醒
891
892 00225 1E00 BANK 0
893 00226 0ACC BS SCCR,IDLE ;IDLE模式
894 00227 0010 ENI
895
896 00228 0003 SLEP
897 00229 0000 NOP
898 0022A 0000 NOP
899 0022B 0000 NOP
900 0022C 0000 NOP
901
902 0022D WAKE_UP:
903
904 0022D 1EB0 LJMP MAIN
904 0022E 01C1 LJMP MAIN
905
906 ;========================================================POWER_TEST電壓檢測
907
908 0022F POWER_TEST:
909 0022F 1E04 BANK 4
910 00230 0988 BC IOC8,POWER
911
912 00231 1E00 BANK 0
913 00232 18A2 MOV A,@0XA2
914 00233 0048 MOV PORT8,A ;P86=0 開啟UV測試電路
915 00234 0817 BC PRST,FTBAT
916
917 00235 1E03 BANK 3
918 00236 1800 MOV A,@0X00
919 00237 004A MOV ADICH,A
920 00238 1808 MOV A,@0X08 ;AD3,2.5V檢測
921 00239 004B MOV ADICL,A
922
923 0023A POWER_TEST1:
924 0023A 1873 MOV A,@0X73 ;FC/64
925 0023B 0049 MOV ADCR,A
926 0023C 0BC9 BS ADCR,ADRUN
927
928 0023D POWER_TEST1A:
929 0023D 0DC9 JBC ADCR,ADRUN
930 0023E 1EB0 LJMP POWER_TEST1A
930 0023F 023D LJMP POWER_TEST1A
931
932 00240 0000 NOP
933 00241 0000 NOP
934 00242 0000 NOP
935 00243 0BC9 BS ADCR,ADRUN
936 00244 POWER_TEST1A1:
937 00244 0DC9 JBC ADCR,ADRUN
938 00245 1EB0 LJMP POWER_TEST1A1
938 00246 0244 LJMP POWER_TEST1A1
939
940 00247 POWER_TEST1B:
941 00247 040C MOV A,ADDH
942
943 00248 1E00 BANK 0
944 00249 0050 MOV TEMP1,A ;讀取結果高8位
945
946 0024A POWER_TEST2:
947 0024A 0C97 JBC PRST,FBAT
948 0024B 1EB0 LJMP POWER_TEST2B ;電量不足
948 0024C 0253 LJMP POWER_TEST2B ;電量不足
949
950 0024D POWER_TEST2A:
951 0024D 18F5 MOV A,@0XF5 ;2.5/2.6*255=245
952 0024E 0110 SUB A,TEMP1
953 0024F 0C03 JBC STATUS,C
954 00250 0A97 BS PRST,FBAT ;大于245表示電池電壓不足2.6V
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -