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

📄 main.lst

📁 汇编写的51程序
💻 LST
字号:
                         ;ADC CONTROL,TIMER0 INTERRUPT
      0030              ADCOUNTER data 30H
      0031              sgl data 31h
      007F              channelbit bit 7fH
      007E              xdirection bit 7eh
      007D              ydirection bit 7dh
      00E0              X0OUTPUT  BIT  0E0H
      00E1              X1OUTPUT BIT 0E1H
      00E4              Y0OUTPUT BIT 0E4H
      00E5              Y1OUTPUT BIT 0E5H
      000A              buffer00 equ 0ah
      000A              buffer01 equ 0ah
      000A              buffer02 equ 0ah
      000A              buffer03 equ 0ah
      000A              buffer04 equ 0ah
      000A              buffer05 equ 0ah
      000A              buffer06 equ 0ah
      000A              buffer07 equ 0ah
      000A              buffer08 equ 0ah
      000A              buffer09 equ 0ah
      000A              buffer10 equ 0ah



                                 org 0000h
0000  020030                     JMP MAIN
                                 ORG 000BH
000B  0200BC                     JMP ADSTART
                                 ORG 001BH
001B  020057                     JMP TIMER1

                                 ORG 0030H
0030                       MAIN:
0030  7CCC                        MOV R4,#11001100B
0032  7DCC                        MOV R5,#11001100B
0034  758CB1                      MOV TH0,#0B1H             ;TIMER0 定时周期2MS 每秒50次采样
0037  758AE0                      MOV TL0,#0E0H             ;
003A  758D00                      MOV TH1,#00H
003D  758BCE                      MOV TL1,#206             ;50*2US T1定时周期0.1毫秒
0040  758921                      MOV TMOD,#00100001B           ;定时器0工作方式1,定时器1工作方式2
0043  D28C                        SETB TR0
0045  D2A9                        SETB ET0
0047  D28E                        SETB TR1
0049  D2AB                        SETB ET1
004B  D2AF                        SETB EA
004D  7AFF                        MOV R2,#0FFH
004F  7BFF                        MOV R3,#0FFH
0051  78FF                        MOV R0,#0FFH
0053  79FF                        MOV R1,#0FFH

0055  80FE                 HERE:   JMP HERE


                          ;**********************************************************************************************************************************
                          ;  TIMER1 INTERRUPTION    根据定时规则,定时0.1MS 以此为基数进行计数,控制各通道得刷新频率。
                          ;  R0,R1中是计数器,每次到零改变引脚状态一次,R4,R5是引脚状态移位器
                          ;
                          ;******************************************************************************************************
0057                    TIMER1:
0057  B8FF05                      CJNE R0,#0FFH,CHANGEX
005A  EA                          MOV A, R2                   ;REFRESH X PARAMETER
005B  F8                          MOV R0,A
005C  020086                      JMP XENDLOOP

005F                    CHANGEX:
005F  B80023                            CJNE R0,#00H,CHANGER0



0062  EA                                MOV A, R2                   ;REFRESH X PARAMETER
0063  F8                                MOV R0,A                   ;重载R0
0064  EC                                MOV A,R4
0065  207E04                            JB XDIRECTION, XROLL              ;移位后输出
0068  23                                RL A
0069  02006D                            JMP XROLLEND
006C  03                XROLL:          RR A
006D                    XROLLEND:
006D  FC                                MOV R4,A
006E  30E005                            JNB X0OUTPUT,X0VOTE
0071  D292                                 SETB P1.2
0073  020078                            JMP X0VOTEEND
0076  C292                 X0VOTE:      CLR P1.2

0078  30E105              X0VOTEEND:    JNB X1OUTPUT,X1VOTE
007B  D293                                 SETB P1.3
007D  020082                            JMP X1VOTEEND
0080  C293                 X1VOTE:      CLR P1.3




0082  020086              X1VOTEEND:    JMP XENDLOOP
0085  18                CHANGER0:       DEC R0


0086                    XENDLOOP:

0086  B9FF05                            CJNE R1,#0FFH,CHANGEY
0089  EB                                MOV A,R3                   ;REFRESH X PARAMETER
008A  F9                                MOV R1,A
008B  0200B5                            JMP YENDLOOP

008E                    CHANGEY:
008E  B90023                            CJNE R1,#00H,CHANGER1


0091  EB                                MOV A, R3                   ;REFRESH Y PARAMETER
0092  F9                                MOV R1,A                   ;重载R0
0093  ED                                MOV A,R5
0094  207D04                            JB YDIRECTION, YROLL              ;移位后输出
0097  23                                RL A
0098  02009C                            JMP YROLLEND
009B  03                YROLL:          RR A
009C                    YROLLEND:
009C  FD                                MOV R5,A
009D  30E405                            JNB Y0OUTPUT,Y0VOTE
00A0  D294                                 SETB P1.4
00A2  0200A7                            JMP Y0VOTEEND
00A5  C294                 Y0VOTE:      CLR P1.4

00A7  30E505              Y0VOTEEND:    JNB Y1OUTPUT,Y1VOTE
00AA  D295                                 SETB P1.5
00AC  0200B1                            JMP Y1VOTEEND
00AF  C295                 Y1VOTE:      CLR P1.5

00B1  0200B5              Y1VOTEEND:    JMP YENDLOOP
00B4  19                CHANGER1:       DEC R1


00B5                    YENDLOOP:


00B5  758D00                            MOV TH1,#00H
00B8  758BCE                            MOV TL1,#206             ;50*2US T1定时周期0.1毫秒
00BB  32                                RETI











                          ;**********************************************************************************************************************************
                          ;   TIMER0 INTERRUPT , 从P3口与ADC0832通信获得两路模拟信息,并作处理使R2,R3暂存两路强度信息
                          ;   XDIRECTION,YDIRECTION 保存两路的方向信息。
                          ;
                          ;******************************************************************************************************



00BC  75B000            ADSTART:  MOV P3,#00H
00BF  753102             MOV SGL,#02H
00C2  C2B0               CLR P3.0	;CLOCK=0
00C4  E4                 CLR A
00C5  FA                ADCHANNEL: MOV R2,A
00C6  FB                 MOV R3,A
00C7  D2B2               SETB P3.2	;START BIT
00C9  C2B1               CLR P3.1	;CS=0
00CB  31AB               ACALL CLOCK
00CD  D2B2               SETB P3.2	;SGL/DIF=1
00CF  31AB               ACALL CLOCK
00D1  307F04             JNB CHANNELBIT,CHANNEL0
00D4  D2B2               SETB P3.2		;SELECT CHANNEL1 Y
00D6  C27F               CLR CHANNELBIT
00D8  C2B2              CHANNEL0: CLR P3.2	;SELECT CHANNEL0 X
00DA  D27F               SETB CHANNELBIT
00DC  31AB               ACALL CLOCK

00DE  753009             MOV ADCOUNTER,#09H
00E1  31AB              ADREAD:ACALL CLOCK
00E3  A2F3               MOV C,B.3
00E5  33                 RLC A
00E6  D530F8             DJNZ ADCOUNTER,ADREAD
00E9  D2B1               SETB P3.1		;CS=1
00EB  D531D7             DJNZ SGL,ADCHANNEL
00EE  FB                 MOV R3,A

                         ;X CHNNEL FREQUENCY PARAMETER

00EF  E4                 CLR A
00F0  75F080             MOV B,#128
00F3  EA                 MOV A,R2
00F4  84                 DIV AB
00F5  C27E               CLR XDIRECTION
00F7  7009               JNZ LOOPX
00F9  7480               MOV A,#128  ;A=128
00FB  95F0               SUBB A,B
00FD  D27E               SETB XDIRECTION
00FF  020104             JMP LOOPX1
0102                    LOOPX:
0102  E5F0                    MOV A,B


0104  C3                LOOPX1: CLR C
0105  940A               SUBB A,#BUFFER00
0107  7AFF               MOV R2,#0FFH		;X NOT MOVE
0109  403E               JC LOOPXEND

010B  940A               SUBB A,#BUFFER01
010D  7AFA               MOV R2,#0FAH		;X MOVE PARAMETER 250
010F  4038               JC LOOPXEND

0111  940A               SUBB A,#BUFFER02
0113  7AA6               MOV R2,#0A6H		;X MOVE PARAMETER 166
0115  4032               JC LOOPXEND

0117  940A               SUBB A,#BUFFER03
0119  7A6F               MOV R2,#06FH		;X MOVE PARAMETER 111
011B  402C               JC LOOPXEND

011D  940A               SUBB A,#BUFFER04
011F  7A49               MOV R2,#049H		;X MOVE PARAMETER 73
0121  4026               JC LOOPXEND

0123  940A               SUBB A,#BUFFER05
0125  7A31               MOV R2,#031H		;X MOVE PARAMETER 49
0127  4020               JC LOOPXEND

0129  940A               SUBB A,#BUFFER06
012B  7A20               MOV R2,#020H		;X MOVE PARAMETER 32
012D  401A               JC LOOPXEND

012F  940A               SUBB A,#BUFFER07
0131  7A15               MOV R2,#015H		;X MOVE PARAMETER 21
0133  4014               JC LOOPXEND

0135  940A               SUBB A,#BUFFER08
0137  7A0E               MOV R2,#0EH		;X MOVE PARAMETER 14
0139  400E               JC LOOPXEND

013B  940A               SUBB A,#BUFFER09
013D  7A0A               MOV R2,#0AH		;X MOVE PARAMETER 10
013F  4008               JC LOOPXEND

0141  940A               SUBB A,#BUFFER10
0143  7A06               MOV R2,#06H		;X MOVE PARAMETER 6
0145  4002               JC LOOPXEND

0147  7A05               MOV R2,#05H		;X MOVE PARAMETER 5

0149  00                LOOPXEND: NOP

                          ; Y CHNNEL FREQUENCY PARAMETER


014A  E4                 CLR A
014B  75F080             MOV B,#128
014E  EB                 MOV A,R3
014F  84                 DIV AB
0150  C27D               CLR YDIRECTION
0152  7009               JNZ LOOPY
0154  7480               MOV A,#128   ;A=128
0156  95F0               SUBB A,B
0158  D27D               SETB YDIRECTION
015A  02015F             JMP LOOPY1
015D  E5F0              LOOPY: MOV A,B

015F  C3                LOOPY1: CLR C
0160  940A               SUBB A,#BUFFER00
0162  7BFF               MOV R3,#0FFH		;Y NOT MOVE
0164  403E               JC LOOPYEND

0166  940A               SUBB A,#BUFFER01
0168  7BFA               MOV R3,#0FAH		;Y MOVE PARAMETER 250
016A  4038               JC LOOPYEND

016C  940A               SUBB A,#BUFFER02
016E  7BA6               MOV R3,#0A6H		;Y MOVE PARAMETER 166
0170  4032               JC LOOPYEND

0172  940A               SUBB A,#BUFFER03
0174  7B6F               MOV R3,#06FH		;Y MOVE PARAMETER 111
0176  402C               JC LOOPYEND

0178  940A               SUBB A,#BUFFER04
017A  7B49               MOV R3,#049H		;Y MOVE PARAMETER 73
017C  4026               JC LOOPYEND

017E  940A               SUBB A,#BUFFER05
0180  7B31               MOV R3,#031H		;Y MOVE PARAMETER 49
0182  4020               JC LOOPYEND

0184  940A               SUBB A,#BUFFER06
0186  7B20               MOV R3,#020H		;Y MOVE PARAMETER 32
0188  401A               JC LOOPYEND

018A  940A               SUBB A,#BUFFER07
018C  7B15               MOV R3,#015H		;Y MOVE PARAMETER 21
018E  4014               JC LOOPYEND

0190  940A               SUBB A,#BUFFER08
0192  7B0E               MOV R3,#0EH		;Y MOVE PARAMETER 14
0194  400E               JC LOOPYEND

0196  940A               SUBB A,#BUFFER09
0198  7B0A               MOV R3,#0AH		;Y MOVE PARAMETER 10
019A  4008               JC LOOPYEND

019C  940A               SUBB A,#BUFFER10
019E  7B06               MOV R3,#06H		;Y MOVE PARAMETER 6
01A0  4002               JC LOOPYEND

01A2  7B05               MOV R3,#05H		;Y MOVE PARAMETER 5

01A4                    LOOPYEND:
01A4  758CB1                      MOV TH0,#0B1H             ;TIMER0 定时周期2MS 每秒50次采样
01A7  758AE0                      MOV TL0,#0E0H             ;

01AA  32                          RETI


                         ;CLOCKER CHANGE THE CLOCK LINE AND READ DATA TO B

 Error---syntax error!
01AB  C0FF              CLOCK: PUSH A
01AD  D2B3               SETB P3.3		;DATA OUTPUT
01AF  E5B0               MOV A,P3
01B1  D2B0               SETB P3.0		;CLOCK=1
01B3  F5F0               MOV B,A
 Error---syntax error!
01B5  D0FF               POP A
01B7  C2B0               CLR P3.0		;CLOCK=0
01B9  22                 RET
                        end












⌨️ 快捷键说明

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