?? main.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 + -