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