📄 t6620.lst
字号:
0577 0150 7F22 LDI CT1,0EH ;配置计数器高位CT1=15
0578 0151 7D23 LDI CT2,0AH
0579 0152 58A4 SBIM PARM,01H ;judge parmater is >0
0580 0153 9955 BC DELAY_N_10mS_1
0581 0154 E166 JMP DELAY_N_10mS_E
0582 0155 DELAY_N_10mS_1:
0583 0155 FFFF NOP
0584 0156 FFFF NOP ;2 ITIME
0585 0157 58A1 SBIM CT0,01H ;1 ITIME
0586 0158 9955 BC DELAY_N_10mS_1;1 ITIME
0587 0159 58A2 SBIM CT1,01H
0588 015A 9955 BC DELAY_N_10mS_1;2 ITIME
0589 015B 7F22 LDI CT1,0EH
0590 015C FFFF NOP
0591 015D FFFF NOP
0592 015E FFFF NOP
0593 015F FFFF NOP
0594 0160 FFFF NOP
0595 0161 FFFF NOP
0596 0162 FFFF NOP
0597 0163 58A3 SBIM CT2,01H
0598 0164 9955 BC DELAY_N_10mS_1
0599 0165 E14F JMP DELAY_N_10mS
0600 0166 DELAY_N_10mS_E:
0601 0166 D400 RTNI
0602
0603 0167 DELAY_N_10uS:
0604 0167 58A4 SBIM PARM,01H ;judge parmater is >0
0605 0168 8970 BNC DELAY_N_10uS_E
0606 0169 FFFF NOP
0607 016A FFFF NOP
0608 016B FFFF NOP
0609 016C FFFF NOP
0610 016D FFFF NOP
0611 016E FFFF NOP
0612 016F E167 JMP DELAY_N_10uS
0613 0170 DELAY_N_10uS_E:
0614 0170 D400 RTNI
0615
0616 0171 DELAY_N_100uS:
0617 0171 7D21 LDI CT0,0AH
0618 0172 58A4 SBIM PARM,01H ;judge parmater is >0
0619 0173 897F BNC DELAY_N_100uS_E
0620 0174 DELAY_N_100uS_1:
0621 0174 FFFF NOP
0622 0175 FFFF NOP
0623 0176 FFFF NOP
0624 0177 FFFF NOP
0625 0178 FFFF NOP
0626 0179 FFFF NOP
0627 017A FFFF NOP
0628 017B FFFF NOP
0629 017C 58A1 SBIM CT0,01H
0630 017D 9974 BC DELAY_N_100uS_1
0631 017E E171 JMP DELAY_N_100uS
0632 017F DELAY_N_100uS_E:
0633 017F D400 RTNI
0634
0635 ;
0636 ;*************************************************************************
0637
0638
0639 0180 YAOKONG:
0640 0180 7800 LDI IE,0000B;关闭中断
0641 0181 7801 LDI IRQ,0000B
0642 0182 7828 LDI IRRES,00H
0643 0183 7F88 LDI PORTA,0FH
0644
0645 0184 7F89 LDI PORTB,1111B
0646 0185 78A4 LDI PARM,1
0647 0186 C142 CALL DELAY_N_mS
0648 0187 3809 LDA PORTB
0649 0188 A1D2 BA0 YK_EX_1
0650 0189 7BA5 LDI IRCNTH,07H
0651 018A YK_ST_1: ;9ms起始码检测
0652 018A 7F89 LDI PORTB,1111B
0653 018B FFFF NOP
0654 018C FFFF NOP
0655 018D 3809 LDA PORTB
0656 018E FFFF NOP
0657 018F A191 BA0 YK_REC_1;若接收端为高电平,同步起始码高电平部分
0658 0190 E18A JMP YK_ST_1 ;若接收端为低电平,同步9ms起始码低电平部分
0659 ;
0660 ; YK_ST_2:
0661 ; NOP
0662 ; NOP
0663 ; LDA PORTB
0664 ; NOP
0665 ; BA0 YK_ST_2 ;当接收端为高电平时,继续9ms起始码高电平同步
0666 ; ;当接收端为低电平时,退出9ms起始码高电平同步
0667
0668 0191 YK_REC_1:
0669 0191 C1D4 CALL YK4BIT
0670 0192 3827 LDA IRTEMP
0671 0193 3C30 STA IRC0
0672
0673 0194 C1D4 CALL YK4BIT
0674 0195 3827 LDA IRTEMP
0675 0196 3C31 STA IRC1
0676
0677 0197 C1D4 CALL YK4BIT
0678 0198 3827 LDA IRTEMP
0679 0199 3C32 STA IRC2
0680
0681 019A C1D4 CALL YK4BIT
0682 019B 3827 LDA IRTEMP
0683 019C 3C33 STA IRC3
0684
0685 019D C1D4 CALL YK4BIT
0686 019E 3827 LDA IRTEMP
0687 019F 3C35 STA IRD0L
0688
0689 01A0 C1D4 CALL YK4BIT
0690 01A1 3827 LDA IRTEMP
0691 01A2 3C34 STA IRD0H
0692
0693 01A3 C1D4 CALL YK4BIT
0694 01A4 3827 LDA IRTEMP
0695 01A5 3C37 STA IRD1L
0696
0697 01A6 C1D4 CALL YK4BIT
0698 01A7 3827 LDA IRTEMP
0699 01A8 3C36 STA IRD1H
0700
0701 01A9 YK_CHK_1:
0702 01A9 50B0 SBI IRC0,01H
0703 01AA 99BC BC YK_CHK_2
0704 01AB 50B1 SBI IRC1,01H
0705 01AC 99BC BC YK_CHK_2
0706 01AD 40B2 ADI IRC2,01H
0707 01AE 89D0 BNC YK_CHK_ERR_1
0708 01AF 40B3 ADI IRC3,01H
0709 01B0 89D0 BNC YK_CHK_ERR_1
0710
0711 01B1 78A0 LDI ACCBUF,01H
0712 01B2 3834 LDA IRD0H
0713 01B3 0836 ADD IRD1H
0714 01B4 0820 ADD ACCBUF
0715 01B5 89D0 BNC YK_CHK_ERR_1
0716
0717 01B6 3835 LDA IRD0L
0718 01B7 0837 ADD IRD1L
0719 01B8 0820 ADD ACCBUF
0720 01B9 89D0 BNC YK_CHK_ERR_1
0721
0722 01BA 78A8 LDI IRRES,01H
0723 01BB E1D2 JMP YK_EX_1
0724
0725 01BC YK_CHK_2:
0726 01BC 57B0 SBI IRC0,0FH
0727 01BD 81CE BNZ YK_CHK_ERR
0728 01BE 57B1 SBI IRC1,0FH
0729 01BF 81CE BNZ YK_CHK_ERR
0730 01C0 57B2 SBI IRC2,0FH
0731 01C1 81CE BNZ YK_CHK_ERR
0732 01C2 57B3 SBI IRC3,0FH
0733 01C3 81CE BNZ YK_CHK_ERR
0734 01C4 57B5 SBI IRD0L,0FH
0735 01C5 81CE BNZ YK_CHK_ERR
0736 01C6 57B7 SBI IRD1L,0FH
0737 01C7 81CE BNZ YK_CHK_ERR
0738 01C8 57B4 SBI IRD0H,0FH
0739 01C9 81CE BNZ YK_CHK_ERR
0740 01CA 57B6 SBI IRD1H,0FH
0741 01CB 81CE BNZ YK_CHK_ERR
0742
0743 01CC 7928 LDI IRRES,02H
0744 01CD E1D2 JMP YK_EX_1
0745
0746 01CE YK_CHK_ERR:
0747 01CE 7828 LDI IRRES,00H;校检错
0748 01CF E1D2 JMP YK_EX_1
0749 01D0 YK_CHK_ERR_1:
0750 01D0 7828 LDI IRRES,00H;校检错
0751 01D1 E1D2 JMP YK_EX_1
0752 01D2 YK_EX_1:
0753 01D2 7880 LDI IE,0001B
0754 01D3 D400 RTNI
0755
0756 01D4 YK4BIT:
0757 01D4 7827 LDI IRTEMP,00H
0758 01D5 79A6 LDI IRCNTL,03H
0759 01D6 YK4BIT_1:
0760 01D6 7FA1 LDI CT0,0FH ;配置计数器低位CT0=16
0761 01D7 7FA2 LDI CT1,0FH ;配置计数器高位CT1=16
0762 01D8 7A23 LDI CT2,04H
0763
0764 01D9 YK4BIT_4:
0765 01D9 7F89 LDI PORTB,1111B
0766 01DA FFFF NOP
0767 01DB 3809 LDA PORTB
0768 01DC FFFF NOP
0769 01DD A1DF BA0 YK4BIT_5
0770 01DE E1E5 JMP YK4BIT_6
0771 01DF YK4BIT_5:
0772 01DF 58A1 SBIM CT0,01H
0773 01E0 99D9 BC YK4BIT_4
0774 01E1 58A2 SBIM CT1,01H
0775 01E2 99D9 BC YK4BIT_4
0776 01E3 58A3 SBIM CT2,01H
0777 01E4 99D9 BC YK4BIT_4
0778
0779 01E5 YK4BIT_6: ;等待低电平结束
0780 01E5 7F89 LDI PORTB,1111B
0781 01E6 FFFF NOP
0782 01E7 3809 LDA PORTB
0783 01E8 FFFF NOP
0784 01E9 A1EB BA0 YK4BIT_2
0785 01EA E1E5 JMP YK4BIT_6
0786
0787 01EB YK4BIT_2:
0788 01EB 7C24 LDI PARM,8
0789 01EC C171 CALL DELAY_N_100uS
0790 01ED 3827 LDA IRTEMP
0791 01EE F000 SHR
0792 01EF 3C27 STA IRTEMP ;IRTEMP右移
0793
0794 01F0 7808 LDI PORTA,00H
0795 01F1 7F89 LDI PORTB,1111B
0796 01F2 FFFF NOP
0797 01F3 FFFF NOP
0798 01F4 3809 LDA PORTB
0799 01F5 A1F7 BA0 YK4BIT_3
0800 01F6 E1F9 JMP YK4BIT_7
0801 01F7 YK4BIT_3:
0802 01F7 6C27 ORIM IRTEMP,1000B
0803 01F8 7F88 LDI PORTA,0FH
0804 01F9 YK4BIT_7:
0805 01F9 58A6 SBIM IRCNTL,01H
0806 01FA 99D6 BC YK4BIT_1
0807
0808 01FB D400 RTNI
0809
0810
0811 01FC PS2OUTB:
0812 01FC 7800 LDI IE,0000B
0813 01FD 6B17 ORIM PBOUT,0110B
0814 01FE 7848 LDI PS2TEMP,00H
0815
0816 01FF 7F89 LDI PORTB ,1111B
0817 0200 7A20 LDI ACCBUF,0100B
0818 0201 3009 AND PORTB ;检查CLK是否为高电平
0819 0202 91FC BAZ PS2OUTB
0820
0821 0203 78A4 LDI PARM,1
0822 0204 C167 CALL DELAY_N_10uS;延时10微秒
0823
0824 0205 7F89 LDI PORTB ,1111B
0825 0206 7A20 LDI ACCBUF,0100B
0826 0207 3009 AND PORTB
0827 0208 91FC BAZ PS2OUTB ;再次检查CLK是否为高电平
0828
0829 0209 7F89 LDI PORTB ,1111B
0830 020A 7920 LDI ACCBUF,0010B
0831 020B 3009 AND PORTB
0832 020C 926B BAZ PS2OUTB_ERR;若数据线为低,放弃
0833
0834 020D 6B17 ORIM PBOUT,0110B
0835 020E 3817 LDA PBOUT
0836
0837 020F PS2OUTB_2: ;发送起始位
0838 020F 7689 ANDIM PORTB,1101B
0839 0210 7AA4 LDI PARM,5
0840 0211 C167 CALL DELAY_N_10uS;延时100微秒
0841 0212 7589 ANDIM PORTB,1011B ;CLK->0
0842 0213 7D24 LDI PARM,10
0843 0214 C167 CALL DELAY_N_10uS;延时130微秒
0844 0215 6A09 ORIM PORTB,0100B;CLK->1
0845 0216 7AA4 LDI PARM,5
0846 0217 C167 CALL DELAY_N_10uS;延时20微秒
0847
0848 0218 79C2 LDI PS2CNTL,03H
0849 0219 3844 LDA PS2SNDL
0850 021A 3C49 STA PS2BUF
0851 021B PS2OUTB_3:
0852 021B 3849 LDA PS2BUF
0853 021C F000 SHR
0854 021D 3C49 STA PS2BUF
0855 021E 9A29 BC PS2OUTB_S0_1
0856
0857 021F PS2OUTB_S0_0: ;SEND 0
0858 021F 7689 ANDIM PORTB,1101B;DATA->0
0859 0220 7AA4 LDI PARM,5
0860 0221 C167 CALL DELAY_N_10uS;延时100微秒
0861 0222 7589 ANDIM PORTB,1011B;CLK->0
0862 0223 7D24 LDI PARM,10
0863 0224 C167 CALL DELAY_N_10uS;延时130微秒
0864 0225 6A09 ORIM PORTB,0100B;CLK->1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -