⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xq_16io.lst

📁 16输入8输出单片机程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
                     167     ;
00AD 530010   F      168     stus_port13:    anl     input_stus,#010H
A51 MACRO ASSEMBLER  XQ_AP66C.LST                                                        11/24/2003 18:38:36 PAGE     9

00B0 800D            169                     sjmp    in_exit
                     170     ;
00B2 530020   F      171     stus_port14:    anl     input_stus,#020H
00B5 8008            172                     sjmp    in_exit
                     173     ;
00B7 530040   F      174     stus_port15:    anl     input_stus,#040H
00BA 8003            175                     sjmp    in_exit
                     176     ;
00BC 530080   F      177     stus_port16:    anl     input_stus,#080H
00BF E500     F      178     in_exit:        mov     a,input_stus
00C1 B40004          179                     cjne    a,#00,in_exit1
00C4 7F01            180                     mov     r7,#ON
00C6 8002            181                     jmp     in_exit2
00C8 7F00            182     in_exit1:       mov     r7,#OFF
00CA 22              183     in_exit2:       ret
                     184     ;----------------------------------------------------------------------------
                     185     ;       PC16I8O output port C call function prototype
                     186     ;       void _output_port(char c,char s)
                     187     ;
00CB ED              188     _output_port:   mov     a,r5
00CC B40104          189                     cjne    a,#01,out_port1
00CF 7D00            190                     mov     r5,#OFF
A51 MACRO ASSEMBLER  XQ_AP66C.LST                                                        11/24/2003 18:38:36 PAGE    10

00D1 8002            191                     jmp     out_port2
00D3 7D01            192     out_port1:      mov     r5,#ON
00D5 AE90            193     out_port2:      mov     r6,p1
00D7 8E00     F      194                     mov     output_buf,r6
00D9 EF              195                     mov     a,r7
00DA 14              196                     dec     a
00DB B40800          197                     cjne    a,#08h,out_port3
00DE 4003            198     out_port3:      jc      $ + 5h
00E0 020000   F      199                     ljmp    out_exit
00E3 900000   F      200                     mov     dptr,#out_vector
00E6 F8              201                     mov     r0,a
00E7 28              202                     add     a,r0
00E8 28              203                     add     a,r0
00E9 73              204                     jmp     @a+dptr
                     205     ;
00EA 020000   F      206     out_vector:     ljmp    port1_out
00ED 020000   F      207                     ljmp    port2_out
00F0 020000   F      208                     ljmp    port3_out
00F3 020000   F      209                     ljmp    port4_out
00F6 020000   F      210                     ljmp    port5_out
00F9 020000   F      211                     ljmp    port6_out
00FC 020000   F      212                     ljmp    port7_out
A51 MACRO ASSEMBLER  XQ_AP66C.LST                                                        11/24/2003 18:38:36 PAGE    11

00FF 020000   F      213                     ljmp    port8_out
                     214     ;
0102 ED              215     port1_out:      mov     a,r5
0103 B40106          216                     cjne    a,#01h,port1_out1
0106 430001   F      217                     orl     output_buf,#01H
0109 020000   F      218                     ljmp    out_exit
010C 5300FE   F      219     port1_out1:     anl     output_buf,#0FEH
010F 020000   F      220                     ljmp    out_exit
0112 ED              221     port2_out:      mov     a,r5
0113 B40106          222                     cjne    a,#01h,port2_out1
0116 430002   F      223                     orl     output_buf,#02h
0119 020000   F      224                     ljmp    out_exit
011C 5300FD   F      225     port2_out1:     anl     output_buf,#0fdh
011F 8052            226                     sjmp    out_exit
0121 ED              227     port3_out:      mov     a,r5
0122 B40105          228                     cjne    a,#01h,port3_out1
0125 430004   F      229                     orl     output_buf,#04h
0128 8049            230                     sjmp    out_exit
012A 5300FB   F      231     port3_out1:     anl     output_buf,#0fbh
012D 8044            232                     sjmp    out_exit
012F ED              233     port4_out:      mov     a,r5
0130 B40105          234                     cjne    a,#01h,port4_out1
A51 MACRO ASSEMBLER  XQ_AP66C.LST                                                        11/24/2003 18:38:36 PAGE    12

0133 430008   F      235                     orl     output_buf,#08h
0136 803B            236                     sjmp    out_exit
0138 5300F7   F      237     port4_out1:     anl     output_buf,#0f7h
013B 8036            238                     sjmp    out_exit
013D ED              239     port5_out:      mov     a,r5
013E B40105          240                     cjne    a,#01h,port5_out1
0141 430010   F      241                     orl     output_buf,#010h
0144 802D            242                     sjmp    out_exit
0146 5300EF   F      243     port5_out1:     anl     output_buf,#0efh
0149 8028            244                     sjmp    out_exit
014B ED              245     port6_out:      mov     a,r5
014C B40105          246                     cjne    a,#01h,port6_out1
014F 430020   F      247                     orl     output_buf,#020h
0152 801F            248                     sjmp    out_exit
0154 5300DF   F      249     port6_out1:     anl     output_buf,#0dfh
0157 801A            250                     sjmp    out_exit
0159 ED              251     port7_out:      mov     a,r5
015A B40105          252                     cjne    a,#01h,port7_out1
015D 430040   F      253                     orl     output_buf,#040h
0160 8011            254                     sjmp    out_exit
0162 5300BF   F      255     port7_out1:     anl     output_buf,#0bfh
0165 800C            256                     sjmp    out_exit
A51 MACRO ASSEMBLER  XQ_AP66C.LST                                                        11/24/2003 18:38:36 PAGE    13

0167 ED              257     port8_out:      mov     a,r5
0168 B40105          258                     cjne    a,#01h,port8_out1
016B 430080   F      259                     orl     output_buf,#080h
016E 8003            260                     sjmp    out_exit
0170 53007F   F      261     port8_out1:     anl     output_buf,#07fh
0173 850090   F      262     out_exit:       mov     p1,output_buf
0176 22              263                     ret
                     264     ;----------------------------------------------------------------------------
0177 AE90            265     _get_outstus:   mov     r6,p1
0179 EF              266                     mov     a,r7
017A B40105          267                     cjne    a,#01,get_outstus1
017D EE              268                     mov     a,r6
017E 5401            269                     anl     a,#00000001b
0180 8036            270                     jmp     check_stus
0182 B40205          271     get_outstus1:   cjne    a,#02,get_outstus2
0185 EE              272                     mov     a,r6
0186 5402            273                     anl     a,#00000010b
0188 802E            274                     jmp     check_stus
018A B40305          275     get_outstus2:   cjne    a,#03,get_outstus3
018D EE              276                     mov     a,r6
018E 5404            277                     anl     a,#00000100b
0190 8026            278                     jmp     check_stus
A51 MACRO ASSEMBLER  XQ_AP66C.LST                                                        11/24/2003 18:38:36 PAGE    14

0192 B40405          279     get_outstus3:   cjne    a,#04,get_outstus4
0195 EE              280                     mov     a,r6
0196 5408            281                     anl     a,#00001000b
0198 801E            282                     jmp     check_stus
019A B40505          283     get_outstus4:   cjne    a,#05,get_outstus5
019D EE              284                     mov     a,r6
019E 5410            285                     anl     a,#00010000b
01A0 8016            286                     jmp     check_stus
01A2 B40605          287     get_outstus5:   cjne    a,#06,get_outstus6
01A5 EE              288                     mov     a,r6
01A6 5420            289                     anl     a,#00100000b
01A8 800E            290                     jmp     check_stus
01AA B40705          291     get_outstus6:   cjne    a,#07,get_outstus7
01AD EE              292                     mov     a,r6
01AE 5440            293                     anl     a,#01000000b
01B0 8006            294                     jmp     check_stus
01B2 B4080B          295     get_outstus7:   cjne    a,#08,check_end
01B5 EE              296                     mov     a,r6
01B6 5480            297                     anl     a,#10000000b
01B8 7004            298     check_stus:     jnz     check_stus1
01BA 7F01            299                     mov     r7,#ON
01BC 8002            300                     jmp     check_end
A51 MACRO ASSEMBLER  XQ_AP66C.LST                                                        11/24/2003 18:38:36 PAGE    15

01BE 7F00            301     check_stus1:    mov     r7,#OFF
01C0 22              302     check_end:      ret
                     303     ;----------------------------------------------------------------------------
                     304     ;       PC16I8O sk2 explanation using read BCD function
                     305     ;       sk2.2 = MSB byte sk2.4 = LSB byte
                     306     ;       C call function prototype char _scan_manual(void)
                     307     ;
01C1 C2B6            308     _scan_manual:   clr     p3.6           ; read LSB byte
01C3 120000   F      309                     call    delay5ms
01C6 120000   F      310                     call    delay5ms
01C9 E5B0            311                     mov     a,p3
01CB 13              312                     rrc     a
01CC 13              313                     rrc     a
01CD F4              314                     cpl     a
01CE 540F            315                     anl     a,#00001111b
01D0 F8              316                     mov     r0,a           ; save LSB byte at r0
01D1 D2B6            317                     setb    p3.6
01D3 C2B7            318                     clr     p3.7           ; read MSB byte
01D5 120000   F      319                     call    delay5ms
01D8 120000   F      320                     call    delay5ms
01DB E5B0            321                     mov     a,p3
01DD 13              322                     rrc     a
A51 MACRO ASSEMBLER  XQ_AP66C.LST                                                        11/24/2003 18:38:36 PAGE    16

01DE 13              323                     rrc     a
01DF F4              324                     cpl     a
01E0 540F            325                     anl     a,#00001111b
01E2 D2B7            326                     setb    p3.7
01E4 75F00A          327                     mov     b,#10
01E7 A4              328                     mul     ab
01E8 28              329                     add     a,r0
01E9 FF              330                     mov     r7,a           ; return BCD in r7 register
01EA 22              331                     ret
                     332     ;----------------------------------------------------------------------------
                     333     ;       PC16I8O sk2 explanation using panel control
                     334     ;       Sk2.5 & sk2.6 & sk2.8 & sk2.9 using for key
                     335     ;       C call function prototye char _get_key(char c)
                     336     ;
01EB E500     F      337     _get_key:       mov     a,port3_stus
01ED BF0104          338                     cjne    r7,#01,get_key1
01F0 5404            339                     anl     a,#04h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -