📄 ice159.lst
字号:
760 00273 000B iow PDCR
761 00274 180F mov a, @0x0f
762 00275 0005 iow P5CR
763 00276 18FF mov a, @0xff
764 00277 0006 iow P6CR
765 00278 1332 call delay
766 00279 0EC6 jbs port6, 3
767 0027A 0BEC bs pulldown_buf,p63_down
768 0027B 0000 nop
769 /**************************************/
770 0027C p63pull_high:
771 0027C 18FF mov a, @0xff
772 0027D 000B iow PDCR
773 0027E 18F7 mov a, @0xf7
774 0027F 000D iow PHCR
775 00280 180F mov a, @0x0f
776 00281 0005 iow P5CR
777 00282 18FF mov a, @0xff
778 00283 0006 iow P6CR
779 00284 1332 call delay
780 00285 0CC6 jbc port6, 3
781 00286 0AED bs pullhigh_buf,p63_high
782 00287 0000 nop
783
784 /**************************************/
785 00288 18FF tcc_check: mov a, @0xff
786 00289 000B iow PDCR
787 0028A 000D iow PHCR
788 0028B 180F mov a, @0x0f ;set tcc interrupt
789 0028C 0005 iow P5CR
790 0028D 18FF mov a, @0xff
791 0028E 0006 iow P6CR
792 0028F 1800 mov a, @0x00
793 00290 0002 contw
794 00291 00CF clr RF
795 00292 1837 mov a, @0x37
796 00293 0041 mov tcc, a
797 00294 1801 mov a, @0x01
798 00295 000F iow IOCF
799 00296 0010 eni
800 00297 1332 call delay
801 00298 1800 mov a, @0x00
802 00299 000F iow IOCF
803 0029A 0011 disi
804 /**************************************/
805 0029B 180E int0_check: mov a, @0x0e ;set P50 output,others input
806 0029C 0005 iow P5CR
807 0029D 18FF mov a, @0xff
808 0029E 0006 iow P6CR
809 0029F 1840 mov a, @0x40
810 002A0 000E iow WDTCR
811 002A1 00CF clr RF
812 002A2 1804 mov a, @0x04
813 002A3 000F iow IOCF
814 002A4 0010 eni
815 002A5 0A05 bs port5, 0
816 002A6 1332 call delay
817 002A7 0805 bc port5, 0
818 002A8 1332 call delay
819 002A9 1800 mov a, @0x00
820 002AA 000F iow IOCF
821 002AB 0011 disi
822 /**************************************/
823 002AC port6_change:
824 002AC 180F mov a, @0x0f
825 002AD 0005 iow P5CR
826 002AE 18FF mov a, @0xff ;set port6 input
827 002AF 0006 iow P6CR
828 002B0 18FE mov a, @0xfe ;set port60 pull-high
829 002B1 000D iow PHCR
830 002B2 1806 mov a, @0x06
831 002B3 0002 contw
832 002B4 00C1 clr TCC
833 002B5 180E mov a, @0x0e
834 002B6 0002 contw
835 002B7 0004 wdtc
836 002B8 1800 mov a, @0x00
837 002B9 000E iow WDTCR
838 002BA 0000 nop
839 002BB 0000 nop
840 002BC 0446 mov port6, port6
841 002BD 0000 nop
842 002BE 0000 nop
843 002BF 0010 eni
844 ;disi
845 002C0 1802 mov a, @0x02
846 002C1 004E mov RE, a
847 002C2 1802 mov a, @0x02 ;enable port6 status change interrupt
848 002C3 000F iow IOCF
849 002C4 084F bc RF, 1
850 002C5 port6_change1:
851 002C5 0003 slep
852 /**************************************/
853 002C6 0000 nop
854 002C7 0C96 jbc flag, p60_flag
855 002C8 16CF jmp port6_change2
856 002C9 1317 call key_scan
857 002CA 0ED6 jbs flag, key_over
858 002CB 16C5 jmp port6_change1
859 002CC 18FF mov a, @0xff
860 002CD 006F mov port6_buf, a
861 ;inc port6_buf
862 002CE 16D3 jmp wdt_check
863 002CF port6_change2:
864 002CF 0ED6 jbs flag, key_over
865 002D0 16C5 jmp port6_change1
866 ;mov a, @0xff
867 ;mov port6_buf, a
868 002D1 056F inc port6_buf
869 002D2 0896 bc flag, p60_flag
870 /**************************************/
871 002D3 0000 wdt_check: nop
872 002D4 0571 inc wdt_buf
873 002D5 188E mov a, @0x8e
874 002D6 000E iow WDTCR
875 002D7 0000 wdt_check1: nop
876 ;wdtc
877 002D8 0000 nop
878 002D9 0000 nop
879 002DA 1332 call delay
880 002DB 1332 call delay
881 002DC 16D7 jmp wdt_check1
882
883 /**************************************/
884 002DD 0011 intin: disi ;interrupt service routine
885 002DE 0C0F jbc RF, 0
886 002DF 16E8 jmp tcc_interrupt
887 002E0 0C4F jbc RF, 1
888 002E1 16F8 jmp port6_interrupt
889 002E2 0C8F jbc RF, 2
890 002E3 1709 jmp int_interrupt
891 002E4 1800 intin1: mov a, @0x00
892 002E5 004F mov RF, a
893 002E6 000F iow IOCF
894 002E7 0013 reti
895 /**************************************/
896 002E8 tcc_interrupt:
897 002E8 0057 mov temp_A, a
898 002E9 0757 swap temp_A
899 002EA 0703 swapa r3
900 002EB 0058 mov temp_S, a ;tcc interrupt service routine
901 002EC 056E inc tcc_buf
902 002ED 1837 mov a, @0x37
903 002EE 0041 mov tcc, a
904 002EF 1801 mov a, @0x01
905 002F0 000F iow IOCF
906 002F1 040F mov a, RF
907 002F2 1A06 and a, @0x06
908 002F3 004F mov RF, a
909 002F4 0718 swapa temp_S
910 002F5 0043 mov r3, a
911 002F6 0717 swapa temp_A
912 002F7 0013 reti
913 /**************************************/
914 002F8 port6_interrupt: ;port6 status change interrrupt service routine
915 002F8 0057 mov temp_A, a
916 002F9 0757 swap temp_A
917 002FA 0703 swapa r3
918 002FB 0058 mov temp_S, a
919 002FC 1800 mov a, @0x00
920 002FD 000E iow WDTCR
921 002FE 1317 call key_scan
922 002FF 0A96 bs flag, p60_flag
923 00300 1802 mov a, @0x02
924 00301 024F or IOCF, a
925 00302 040F mov a, RF
926 00303 1A05 and a, @0x05
927 00304 004F mov RF, a
928 00305 0718 swapa temp_S
929 00306 0043 mov r3, a
930 00307 0717 swapa temp_A
931 00308 0013 reti
932 /**************************************/
933 00309 int_interrupt: ;int0 interrupt service routine
934 00309 0057 mov temp_A, a
935 0030A 0757 swap temp_A
936 0030B 0703 swapa r3
937 0030C 0058 mov temp_S, a
938 0030D 0570 inc int0_buf
939 0030E 1804 mov a, @0x04
940 0030F 024F or IOCF, a
941 00310 040F mov a, RF
942 00311 1A03 and a, @0x03
943 00312 004F mov RF, a
944 00313 0718 swapa temp_S
945 00314 0043 mov r3, a
946 00315 0717 swapa temp_A
947 00316 0013 reti
948 /**************************************/
949 00317 key_scan:
950 00317 0E06 jbs port6, 0
951 00318 1724 jmp key_close
952 00319 key_open:
953 00319 0E16 jbs flag, key_flag
954 0031A 171D jmp key_open1
955 0031B 0816 bc flag, key_flag
956 0031C 1717 jmp key_scan
957 0031D key_open1:
958 0031D 0C56 jbc flag, key_state
959 0031E 1721 jmp key_open2
960 0031F 08D6 bc flag, key_over
961 00320 1730 jmp key_off
962 00321 key_open2:
963 00321 0AD6 bs flag, key_over
964 00322 0856 bc flag, key_state
965 00323 1730 jmp key_off
966 /**************************************/
967 00324 key_close:
968 00324 0C16 jbc flag, key_flag
969 00325 172A jmp key_close1
970 00326 1332 call delay
971 00327 1332 call delay
972 00328 0A16 bs flag, key_flag
973 00329 1717 jmp key_scan
974 0032A key_close1:
975 0032A 0C56 jbc flag, key_state
976 0032B 172E jmp key_close2
977 0032C 1332 call delay
978 0032D 0A56 bs flag, key_state
979 0032E key_close2:
980 0032E 1332 call delay
981 0032F 1717 jmp key_scan
982 00330 0000 key_off: nop
983 00331 0012 ret
984 /**************************************/
985 00332 0000 delay: nop
986 00333 1804 mov a, @0x04
987 00334 0054 mov dt1, a
988 00335 0000 delay1: nop
989 00336 18FA mov a, @0xfa
990 00337 0055 mov dt2, a
991 00338 0000 delay2: nop
992 00339 0000 nop
993 0033A 05D5 djz dt2
994 0033B 1738 jmp delay2
995 0033C 05D4 djz dt1
996 0033D 1735 jmp delay1
997 0033E 0000 nop
998 0033F 0012 ret
999 /**************************************/
1000 00340 0000 IO_error: nop
1001 00341 0000 nop
1002 00342 0000 nop
1003 00343 18FF mov a, @0xff
1004 00344 0060 mov port50, a
1005 00345 0000 IO_error1: nop
1006 00346 0000 nop
1007 00347 1740 jmp IO_error
1008 end
1009
0 Error(s), 0 Warning(s), 0 User Message(s)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -