久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機遙控車的proteus仿真及源碼
[打印本頁]
作者:
51hei小林
時間:
2016-9-28 13:44
標題:
單片機遙控車的proteus仿真及源碼
0.png
(51.62 KB, 下載次數: 50)
下載附件
2016-9-28 13:42 上傳
所有資料下載:
遙控車雙機通信仿真.rar
(27.62 KB, 下載次數: 50)
2016-9-28 13:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
下面對本工廠做一些簡單的介紹,希望大家指導:
從U1發送數據到U2,U2收到后按要求處理數據,返回多個數值,并執行相應動作
現在下行命令數據沒問題,U2的動作也對
可是U2返回的數據串總是不對
通信方式為:
1、先下行(U1至U2),再上行
上行數據構成(0F0H+數據1+數據2+0FFH)
2、由U2中斷引起上行數據發送
上行數據構成(0F7H+數據A+數據L+數據R+0FFH)
U1收到數據根據接收到的第一個數據判斷為哪種類型,執行相應的顯示
其中如果發送0F0H數據段過程中遇到需要0F7H數據傳輸,后者優先發送,整體數據發送完成后繼續0F0H數據
U1接收數據結束后,經過數字處理
將數據A修改到第5行
將數據L修改到第6行
將數據R修改到第7行
經過位跳轉
將數據1、2中的信息修改到第1、2、3行
第0行無變化
下面是我的測試電路,及程序,希望大家能夠給予幫助,謝謝
0.png
(286.35 KB, 下載次數: 72)
下載附件
2016-9-28 13:38 上傳
;***************************************************************************************************
C_FLAG DATA 20H
W BIT 00H
UP BIT 01H
DOWN BIT 02H
LEFT BIT 03H
RIGH BIT 04H
UT BIT 05H
FB BIT 06H
GO_STO BIT 07H
R_FLAG DATA 21H
MAX BIT 08H
MIN BIT 09H
SPUP BIT 0AH
SPDOW BIT 0BH
COMD DATA 22H
SPC BIT 13H
STC BIT 12H
CSP BIT 11H
CHF BIT 10H
C_CLKH DATA 23H
C_CLKL DATA 24H
SPEDL DATA 25H
SPEDR DATA 26H
COUNT DATA 27H
TX_CT DATA 28H
TX_DT DATA 29H
MAXSP SET 255
NORSP SET 1275
MINSP SET 3825
GATE EQU P3.4
SFB EQU P1.0
SSP0 EQU P1.1
SSP1 EQU P1.2
SSP2 EQU P1.3
CLK EQU P1.4
;====================================================================================================
;主程序區
;----------------------------------------------------------------------------------------------------
;復位矢量和中斷矢量的設置
ORG 0000H
JMP MAIN
ORG 0003H
JMP EXT0
ORG 000BH
JMP T0_ISR
ORG 0023H
JMP UART1
;主程序入口和主程序開始存儲之處
MAIN: MOV SP,#2FH ;初始化堆棧
MOV IE,#00010011B ;設置中斷使能,EA、T2、ES、T1、I1、T0、I0
MOV IP,#00000001B ;中斷優先
MOV TCON,#00000001B ;中斷觸發形態,1為下降沿需軟件復位
;初始化串行通信
MOV TMOD,#21H ;T1工作在MODE2,T0工作在MODE1
MOV SCON,#50H ;UART工作在MODE1
MOV TH1,#0F3H ;波特率2400
SETB TR1 ;啟動T1
MOV IE,#10010011B ;中斷使能開啟
;初始化8253
MOV P1,#0FFH
MOV DPTR,#13FFH
MOV A,#00010100B ;設置8253計數器00控制字,2模式7FH初值(分頻器)
MOVX @DPTR,A
MOV DPTR,#10FFH
MOV A,#01111111B ;低八位為7FH
MOVX @DPTR,A
MOV DPTR,#13FFH
MOV A,#01010110B ;設置8253計數器01控制字,2模式0FFH初值(計數器)
MOVX @DPTR,A
MOV DPTR,#11FFH
MOV A,#11111111B ;低八位為FFH
MOVX @DPTR,A
MOV DPTR,#13FFH
MOV A,#10010110B ;設置8253計數器02控制字,2模式0FFH初值(計數器)
MOVX @DPTR,A
MOV DPTR,#12FFH
MOV A,#11111111B ;低八位為FFH
MOVX @DPTR,A
;設置狀態為原地等待
WAIT0: MOV C_FLAG,#0
SETB W
MOV R_FLAG,#0
CLR CLK
CLR TR0
MOV TL0,#0EH
MOV C_CLKL,#0EH
MOV TH0,#0F1H
MOV C_CLKH,#0F1H
MOV COUNT,#15
MOV TX_CT,#4
MOV A,TX_DT
JZ C_OUT1
LJMP WAIT1
C_OUT1: MOV SBUF,#0F7H
DEC TX_CT
WAIT1: JB UP,STA_P
LJMP WAIT1
STA_P: SETB TR0
WAIT2: JB DOWN,WAIT3
LJMP WAIT2
WAIT3: JB MIN,WAIT0
LJMP WAIT3
; JMP [ DISCUZ_CODE_40 ]nbsp; ;暫停,進入空閑狀態
;------------------------------------------------------------------------------------------------------
EXT0:
CLR GATE
PUSH ACC
MOV DPTR,#11FFH
MOVX A,@DPTR
MOV R2,A
MOV DPTR,#12FFH
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#13FFH
MOV A,#01010110B ;設置8253計數器01控制字,2模式0FFH初值(計數器)
MOVX @DPTR,A
MOV DPTR,#11FFH
MOV A,#10101111B ;低八位為AFH
MOVX @DPTR,A
MOV DPTR,#13FFH
MOV A,#10010110B ;設置8253計數器02控制字,2模式0FFH初值(計數器)
MOVX @DPTR,A
MOV DPTR,#12FFH
MOV A,#10111111B ;低八位為BFH
MOVX @DPTR,A
SETB GATE
MOV A,#0AFH
CLR C
SUBB A,R2
MOV SPEDL,A
MOV A,#0BFH
CLR C
SUBB A,R3
MOV SPEDR,A
MOV TX_DT,#5
MOV SBUF,#0F0H
DEC TX_DT
POP ACC
RETI
T0_ISR: PUSH ACC
MOV TL0,C_CLKL
MOV TH0,C_CLKH
CPL CLK
JNB UP,DOWS
MOV A,COUNT
CJNE A,#5,SSP
CLR UP
SETB W
CLR SPUP
LJMP C_OUT
SSP: SETB SPUP
LJMP S_ACT
DOWS: JNB DOWN,SP_UP
SETB SPDOW
LJMP S_ACT
SP_UP: JNB SPUP,SP_DOW
LJMP S_ACT
SP_DOW: JNB SPDOW,RELD
LJMP S_ACT
RELD: POP ACC
RETI
UART1: PUSH ACC
JB RI,CH_C
CLR TI
MOV A,TX_DT
CJNE A,#0,T_DA ;測速數據是否傳輸結束,否則繼續傳輸測速數據
MOV A,TX_CT
CJNE A,#4,NCSA ;判斷返回狀態是否發送過開始信號
MOV SBUF,#0F7H
DEC TX_CT
POP ACC
RETI
NCSA: CJNE A,#3,NCD1 ;判斷返回狀態是否發送過第一組信息
MOV SBUF,C_FLAG
DEC TX_CT
POP ACC
RETI
NCD1: CJNE A,#2,NCD2 ;判斷返回狀態是否發送過第二組信息
MOV SBUF,R_FLAG
DEC TX_CT
POP ACC
RETI
NCD2: CJNE A,#1,NED ;判斷返回狀態是否發送過結束信號
MOV SBUF,#0FFH
DEC TX_CT
POP ACC
RETI
T_DA: CJNE A,#5,NDST ;判斷傳輸數據是否發送過開始信號
MOV SBUF,#0F0H
DEC TX_DT
POP ACC
RETI
NDST: CJNE A,#4,NDSA ;判斷傳輸數據是否發送過加速度空信號
MOV SBUF,#089H
DEC TX_DT
POP ACC
RETI
NDSA: CJNE A,#3,NDSL ;判斷傳輸數據是否發送過第一組信息
MOV SBUF,SPEDL
DEC TX_DT
POP ACC
RETI
NDSL: CJNE A,#2,NDSR ;判斷傳輸數據是否發送過第二組信息
MOV SBUF,SPEDR
DEC TX_DT
POP ACC
RETI
NDSR: CJNE A,#1,NED ;判斷傳輸數據是否發送過結束信號
MOV SBUF,#0FFH
DEC TX_DT
NED: POP ACC
RETI
CH_C: CLR RI
MOV COMD,SBUF ;存儲指令
MOV A,COMD
JB GO_STO,N_GO ;判斷是否為運動狀態,是則跳過啟動指令
;啟動停車判斷程序段
CJNE A,#0CH,N_GO ;判斷啟動指令
ANL C_FLAG,#11000000B ;設置啟動狀態
SETB UP
SETB GO_STO
SETB MIN
SETB TR0
LJMP T_ACT
;LJMP ACT ;啟動起步程序
N_GO: CJNE A,#08H,N_STO ;判斷停車指令
ANL C_FLAG,#11000000B ;設置停車狀態
SETB DOWN
LJMP T_ACT
;LJMP ACT ;啟動停車程序
;方向判斷及修改程序段
N_STO: CJNE A,#07H,N_FB ;判斷反向指令
CPL FB ;修改方向
CPL SFB ;修改方向控制管腳
LJMP R_ACT ;跳至狀態返回程序
;速度修改判斷程序段
N_FB: CJNE A,#05H,N_FA ;判斷是否為加速指令
SETB SPUP ;設置加速狀態
LJMP S_ACT ;跳至速度修改程序
N_FA: CJNE A,#04H,N_SL ;判斷是否為減速指令
SETB SPDOW ;設置減速狀態
LJMP S_ACT ;跳至速度修改程序
;轉向判斷程序段
N_SL: CJNE A,#03H,N_TL ;判斷是否為左轉指令
JNB LEFT,CHRL ;判斷是否處于左轉狀態
JB UT,NCHL ;判斷是否為左急轉,是則無修改
SETB UT ;修改為左急轉
NCHL: LJMP T_ACT ;跳至轉向修改
CHRL: JNB RIGH,CHL ;判斷是否為右轉狀態,不是則修改為左轉狀態
JNB UT,CHSTL ;判斷是否為右急轉,是則改為右轉狀態
CLR UT
LJMP T_ACT
CHSTL: CLR RIGH ;不是則改為直行狀態
LJMP T_ACT
CHL: SETB LEFT
LJMP T_ACT
N_TL: CJNE A,#01H,T_ACT ;判斷是否為右轉指令
JNB RIGH,CHLR
JB UT,NCHR
SETB UT
NCHR: LJMP T_ACT
CHLR: JNB LEFT,CHR
JNB UT,CHSTR
CLR UT
LJMP T_ACT
CHSTR: CLR LEFT
LJMP T_ACT
CHR: SETB RIGH
LJMP T_ACT
;速度修改程序
S_ACT: JBC SPUP,C_FA ;判斷是否為加速
JBC SPDOW,C_SL ;判斷是否為減速
POP ACC
RETI ;均不是,指令有誤,中斷結束
C_FA: JB MAX,R_ACT ;判斷是否為已為最大速度,是則跳過速度調整
DEC COUNT ;不是則速度降一級
DJNZ COUNT,S_FA ;判斷是否已達到最大速度,是則設置最大速度狀態
SETB MAX
CLR MIN
S_FA: INC COUNT
LCALL C_SP ;執行速度修改程序(修改計數器初值)
POP ACC
RETI
C_SL: JB MIN,R_ACT ;判斷是否為已為最小速度,是則跳過速度調整
INC COUNT ;不是則速度升一級
MOV A,COUNT
CJNE A,#0FH,S_SL ;判斷是否已達到最小速度,是則設置最小速度狀態
SETB MIN
CLR MAX
S_SL: LCALL C_SP ;執行速度修改程序(修改計數器初值)
POP ACC
RETI
;轉向修改程序
T_ACT: JB LEFT,TL_ACT ;判斷是否為左轉
JB RIGH,TR_ACT ;判斷是否為右轉
ANL P1,#11110001B ;修改為直行
LJMP R_ACT
TL_ACT: MOV A,P1 ;讀取現有狀態
ANL A,#11110001B ;清除
ADD A,#00000010B ;設為左轉
JNB UT,T_OUT ;判斷是否為急轉,不是則跳至狀態輸出
LJMP TU_ACT ;跳至急轉設置
TR_ACT: MOV A,P1
ANL A,#11110001B
ADD A,#00000100B ;設為右轉
JNB UT,T_OUT
TU_ACT: ADD A,#00001000B ;設為急轉
T_OUT: MOV P1,A ;輸出狀態
R_ACT: MOV TX_CT,#4
MOV A,TX_DT
JZ C_OUT
POP ACC
RETI
C_OUT: MOV SBUF,#0F7H
DEC TX_CT
POP ACC
RETI
C_SP: MOV A,COUNT
MOV B,#0FFH
MUL AB
PUSH ACC
MOV A,#0FFH
CLR C
SUBB A,B
MOV C_CLKH,A
POP B
MOV A,#0FFH
CLR C
SUBB A,B
MOV C_CLKL,A
RET
END
復制代碼
;***************************************************************************************************
C_FLAG DATA 20H
W BIT 00H
UP BIT 01H
DOWN BIT 02H
LEFT BIT 03H
RIGH BIT 04H
UT BIT 05H
FB BIT 06H
GO_STO BIT 07H
R_FLAG DATA 21H
MAX BIT 08H
MIN BIT 09H
SPUP BIT 0AH
SPDOW BIT 0BH
TX_FLAG DATA 22H
LD_R BIT 10H ;串行數據類型,返回信號
LD_D BIT 11H ;串行數據類型,行駛數據
LD_BUF0 DATA 23H
LD_BUF1 DATA 24H
LD_BUF2 DATA 25H
A_BUF DATA 26H
S_BUF DATA 27H
SPEDL DATA 28H
SPEDR DATA 29H
SPEDA DATA 2AH
;LCD部分控制位及變量
TCD BIT P2.0
TWR BIT P2.1
TRD BIT P2.2
P_X EQU 42H ;0=<X=<15
P_Y EQU 43H ;0=<Y=<7
CHAR EQU 44H ;'0'=10H
END_C EQU 45H ;STR.END
;====================================================================================================
;主程序區
;----------------------------------------------------------------------------------------------------
;復位矢量和中斷矢量的設置
ORG 0000H
JMP MAIN
ORG 0003H
JMP EXT0
ORG 000BH
JMP T0_ISR
ORG 0023H
JMP UART1
ORG 0030H
;主程序入口和主程序開始存儲之處
MAIN: MOV SP,#6FH ;初始化堆棧
;MOV IE,#00010011B ;設置中斷使能,EA、T2、ES、T1、I1、T0、I0
MOV IE,#00000011B
MOV IP,#00000001B ;中斷優先
MOV TCON,#00000001B ;中斷觸發形態,1為下降沿需軟件復位
;初始化串行通信
MOV TMOD,#21H ;T1工作在MODE2,T0工作在MODE1
MOV SCON,#50H ;UART工作在MODE1
MOV TH1,#0F3H ;波特率2400
SETB TR1 ;啟動T1
;MOV IE,#10010011B ;中斷使能開啟
MOV IE,#10000011B
MOV R1,#LD_BUF0
;初始化LCD
LCALL LCDINT
LCALL CLEAR ;CLEAR RAM
MOV P_X,#0 ;在位置00處顯示TEMP字符串
MOV P_Y,#0
MOV DPTR,#TEMP
MOV END_C,#3FH
LCALL PWSTR
MOV DPTR,#W_S
LCALL SH_10
MOV DPTR,#STR_S
LCALL SH_20
MOV DPTR,#GO_S
LCALL SH_28
MOV P_X,#0 ;在位置50處顯示A_STR字符串
MOV P_Y,#5
MOV DPTR,#A_STR
MOV END_C,#3FH
LCALL PWSTR
MOV P_X,#0 ;在位置60處顯示L_STR字符串
MOV P_Y,#6
MOV DPTR,#L_STR
MOV END_C,#3FH
LCALL PWSTR
MOV P_X,#0 ;在位置70處顯示R_STR字符串
MOV P_Y,#7
MOV DPTR,#R_STR
MOV END_C,#3FH
LCALL PWSTR
MOV P_X,#0 ;在位置40處顯示'
字符
MOV P_Y,#4
MOV CHAR,#04H
LCALL PWCH
JMP $
CH_P: MOV A,P_Y ;位置修改
MOV B,#10H
MUL AB
ADD A,P_X
MOV R2,A
MOV R3,#0
MOV R4,#24H
LCALL PWD2
RET
PWCH: LCALL CH_P ;在指定位置顯示字符
MOV R4,#0C0H
MOV R3,CHAR
LCALL PWD1
RET
PWD2: MOV A,R2
LCALL PWD
PWD1: MOV A,R3
LCALL PWD
PWC: MOV A,R4
SJMP PW
PWD: CLR TCD
PW: CLR TWR
MOV P0,A
SETB TWR
SETB TCD
RET
PR: CLR TCD
ORL P0,#0FFH
CLR TRD
MOV A,P0
MOV P0,#0FFH
RET
CLEAR: MOV R2,#00H ;clear ram
MOV R3,#00H
MOV R4,#24H
LCALL PWD2
MOV R4,#0B0H
LCALL PWC
MOV R2,#1FH
CLEAR1: MOV R3,#0FFH
CLEAR2: MOV A,#00H
LCALL PWD
DJNZ R3,CLEAR2
DJNZ R2,CLEAR1
MOV R4,#0B2H
LCALL PWC
RET
PWSTR: LCALL CH_P ;在指定位置為起始顯示字符串
MOV R4,#0B0H
LCALL PWC
PWSTR1: MOV A,#0 ;依次顯示字符串內字符
MOVC A,@A+DPTR
CJNE A,END_C,PWSTR2
MOV R4,#0B2H
LCALL PWC
RET
PWSTR2: INC DPTR
LCALL PWD
LJMP PWSTR1
LCDINT: MOV R2,#00H
MOV R3,#00H
MOV R4,#40H
LCALL PWD2
MOV R2,#10H
MOV R3,#00H
MOV R4,#41H
LCALL PWD2
;MOV R2,#00H
;MOV R3,#08H
;MOV R4,#42H
;LCALL PWD2
;MOV R2,#20H
;MOV R3,#00H
;MOV R4,#43H
;LCALL PWD2
MOV R4,#0A7H
LCALL PWC
MOV R4,#80H
LCALL PWC
MOV R4,#94H
LCALL PWC
RET
SH_10: MOV P_X,#0 ;在位置10處顯示字符串
MOV P_Y,#1
MOV END_C,#3FH
LCALL PWSTR
RET
SH_18: MOV P_X,#8 ;在位置18處顯示字符串
MOV P_Y,#1
MOV END_C,#3FH
LCALL PWSTR
RET
SH_20: MOV P_X,#0 ;在位置20處顯示字符串
MOV P_Y,#2
MOV END_C,#3FH
LCALL PWSTR
RET
SH_28: MOV P_X,#8 ;在位置28處顯示字符串
MOV P_Y,#2
MOV END_C,#3FH
LCALL PWSTR
RET
SH_30: MOV P_X,#0 ;在位置30處顯示字符串
MOV P_Y,#3
MOV END_C,#3FH
LCALL PWSTR
RET
DELAY: MOV R7,#0FFH
D1: NOP
D2: DJNZ R7,D1
RET
DELAY1: MOV R4,#0FFH
LOP3: LCALL DELAY
DJNZ R4,LOP3
RET
;------------------------------------------------------------------------------------------------------
T0_ISR:
RETI
EXT0: PUSH ACC
MOV A,P1
SUBB A,#0F0H
CJNE A,#0,N_STA ;啟動
JNB GO_STO,S_COM
POP ACC
RETI
S_COM: MOV C_FLAG,#0
SETB UP
SETB GO_STO
;MOV P_X,#0
;MOV P_Y,#1
;MOV DPTR,#STA_S
MOV SBUF,#0CH
;LCALL SH_10
POP ACC
RETI
N_STA: JNB GO_STO,N_COM
CJNE A,#2,N_STO ;停止
MOV C_FLAG,#0
SETB DOWN
CLR GO_STO
;MOV P_X,#0
;MOV P_Y,#1
;MOV DPTR,#STO_S
MOV SBUF,#08H
;LCALL SH_10
POP ACC
RETI
N_STO: CJNE A,#4,N_TL ;左轉
;MOV C_FLAG,#0
;SETB LEFT
;MOV P_X,#0
;MOV P_Y,#2
;MOV DPTR,#TL_S
MOV SBUF,#03H
;LCALL SH_20
POP ACC
RETI
N_TL: CJNE A,#6,N_TR ;右轉
;MOV C_FLAG,#0
;SETB RIGH
;MOV P_X,#0
;MOV P_Y,#2
;MOV DPTR,#TR_S
MOV SBUF,#01H
;LCALL SH_20
POP ACC
RETI
N_TR: CJNE A,#5,N_FB ;正反
CPL FB
;MOV P_X,#8
;MOV P_Y,#2
JB FB,TBACK
;MOV DPTR,#GO_S
MOV SBUF,#07H
;LCALL SH_28
POP ACC
RETI
TBACK: ;MOV DPTR,#BA_S
MOV SBUF,#07H
;LCALL SH_28
POP ACC
RETI
N_FB: CJNE A,#1,N_UP ;加速
;CLR SPDOW
;SETB SPUP
;MOV P_X,#8
;MOV P_Y,#1
;MOV DPTR,#FA_S
MOV SBUF,#05H
POP ACC
RETI
N_UP: CJNE A,#9,N_COM ;減速
;SETB SPDOW
;CLR SPUP
;MOV P_X,#8
;MOV P_Y,#1
;MOV DPTR,#SL_S
MOV SBUF,#04H
N_COM: POP ACC
RETI
UART1: PUSH ACC
JB RI,UR
CLR TI
POP ACC
RETI
UR: CLR RI
MOV @R1,SBUF ;把數據存入緩沖區
MOV R0,#TX_FLAG ;讀入收信狀態
CJNE @R0,#0,N_D ;不是接收數據狀態,跳至接收數據類型判斷
INC R1 ;指向下一緩存單元
LJMP BACK
N_D: CJNE @R1,#0F7H,N_R ;判斷是否為狀態返回
MOV @R1,#0 ;緩存單元清除指令數據
SETB LD_R
LJMP BACK
N_R: CJNE @R1,#0F0H,N_C ;判斷是否為數據上傳
MOV @R1,#0
SETB LD_D
LJMP BACK
N_C: CJNE @R1,#0FFH,BACK ;判斷是否為傳輸結束信號
MOV @R1,#0
JBC LD_D,CHDA ;優先判斷數據上傳
JBC LD_R,CHPP ;再判斷狀態返回
BACK: POP ACC
RETI
CHPP: LJMP CHP
CHDA: MOV A,R1 ;指向加速度數據
CLR C
SUBB A,#3
MOV R1,A
MOV A,@R1
MOV SPEDA,A ;存入加速度數據
MOV P_Y,#5 ;修改顯示起始位置
MOV P_X,#2
CJNE A,#81H,CHD1 ;判斷與0加速度大小關系
LJMP A_P ;加速度為0,正數
CHD1: JNC A_P ;判斷是否大于0,C=1,小于零
A_N: MOV B,A ;小于零
MOV A,#081H ;負數變正數,并將0對應81H
CLR C
SUBB A,B
PUSH ACC
MOV CHAR,#0DH ;顯示負號
LJMP SHP
A_P: MOV B,#081H ;將0對應81H
CLR C
SUBB A,B
PUSH ACC
MOV CHAR,#00H ;顯示' '作為正號
SHP: LCALL PWCH
MOV R0,#3
POP ACC
MOV P_X,6
CLR C
RLC A
CHD2: MOV B,#0AH ;邊處理變顯示加速度
DIV AB
PUSH ACC
MOV A,B
ADD A,#10H
MOV CHAR,A
DJNZ R0,CHD3
DEC P_X
LCALL PWCH
LJMP CHSL
CHD3: LCALL PWCH
POP ACC
DEC P_X
LJMP CHD2
CHSL: INC R1
MOV A,@R1
MOV SPEDL,A
MOV P_Y,#6
LCALL CHS
CHSR: INC R1
MOV A,@R1
MOV SPEDR,A
MOV P_Y,#7
LCALL CHS
CHS: MOV R0,#3 ;處理完成后統一顯示轉速
DO: MOV B,#0AH
DIV AB
PUSH B
DJNZ R0,DO
MOV P_X,#3
MOV R0,#3
SH: DJNZ R0,SH1
INC P_X
SH1: POP ACC
ADD A,#10H
MOV CHAR,A
LCALL PWCH
INC P_X
INC R0
DJNZ R0,SH
MOV A,R1
CLR C
SUBB A,#2
MOV R1,A
POP ACC
RETI
CHP: MOV A,R1
CLR C
SUBB A,#2
MOV R1,A
MOV C_FLAG,@R1
INC R1
MOV R_FLAG,@R1
JB W,P_W
JNB UP,P_STO
MOV DPTR,#STA_S
LCALL SH_10
LJMP P_UT
P_STO: JNB DOWN,P_ERR
MOV DPTR,#STO_S
LCALL SH_10
LJMP P_UT
P_ERR: MOV R1,#LD_BUF0
POP ACC
RETI
P_W: JB GO_STO,P_RU
MOV DPTR,#W_S
LCALL SH_10
LJMP P_UT
P_RU: MOV DPTR,#RUN_S
LCALL SH_10
P_UT: JNB UT,P_NUT
MOV DPTR,#UT_S
LCALL SH_18
LJMP P_T
P_NUT: MOV DPTR,#EM_S
LCALL SH_18
P_T: JNB LEFT,P_NL
MOV DPTR,#TL_S
LCALL SH_20
LJMP P_FB
P_NL: JNB RIGH,P_NR
MOV DPTR,#TR_S
LCALL SH_20
LJMP P_FB
P_NR: MOV DPTR,#STR_S
LCALL SH_20
P_FB: JB FB,P_BA
MOV DPTR,#GO_S
LCALL SH_28
LJMP P_MAX
P_BA: MOV DPTR,#BA_S
LCALL SH_28
P_MAX: JNB MAX,P_MIN
MOV DPTR,#MAX_S
LCALL SH_30
P_MIN: JNB MIN,P_NOR
MOV DPTR,#MIN_S
LCALL SH_30
P_NOR: MOV DPTR,#NOR_S
LCALL SH_30
DEC R1
POP ACC
RETI
TAB:
;-- 字符串: 'a: 0.00 G_' --
A_STR: DB 41H,1AH,00H,10H,0EH,10H,10H,00H,27H,3FH
;-- 字符串: 'sl:00.0 cm/s_' --
L_STR: DB 53H,4CH,1AH,10H,10H,0EH,10H,00H,43H,4DH,0FH,53H,3FH
;-- 字符串: 'sr:00.0 cm/s_' --
R_STR: DB 53H,52H,1AH,10H,10H,0EH,10H,00H,43H,4DH,0FH,53H,3FH
;-- 字符串: 'TEMP:_' --
TEMP: DB 34H,25H,2DH,30H,1AH,3FH
;-- 字符串: 'WAIT _' --
W_S: DB 37H,21H,29H,34H,00H,3FH
;-- 字符串: 'START_' --
STA_S: DB 33H,34H,21H,32H,34H,3FH
;-- 字符串: 'STOP _' --
STO_S: DB 33H,34H,2FH,30H,00H,3FH
;-- 字符串: 'FAST_' --
FA_S: DB 26H,21H,33H,34H,3FH
;-- 字符串: 'SLOW_' --
SL_S: DB 33H,2CH,2FH,37H,3FH
;-- 字符串: 'STRICK_' --
STR_S: DB 33H,34H,32H,29H,23H,2BH,3FH
;-- 字符串: 'TURN L_' --
TL_S: DB 34H,35H,32H,2EH,00H,2CH,3FH
;-- 字符串: 'TURN R_' --
TR_S: DB 34H,35H,32H,2EH,00H,32H,3FH
;-- 字符串: 'U-TURN_' --
UT_S: DB 35H,0DH,34H,35H,32H,2EH,3FH
;-- 字符串: ' _' --
EM_S: DB 00H,00H,00H,00H,00H,00H,3FH
;-- 字符串: 'GO _' --
GO_S: DB 27H,2FH,00H,00H,3FH
;-- 字符串: 'BACK_' --
BA_S: DB 22H,21H,23H,2BH,3FH
;-- 字符串: 'MAX SPEED_' --
MAX_S: DB 2DH,21H,38H,00H,33H,30H,25H,25H,24H,3FH
;-- 字符串: 'MIN SPEED_' --
MIN_S: DB 2DH,29H,2EH,00H,33H,30H,25H,25H,24H,3FH
;-- 字符串: 'NOR SPEED_' --
NOR_S: DB 2EH,2FH,32H,00H,33H,30H,25H,25H,24H,3FH
;-- 字符串: 'RUN _' --
RUN_S: DB 32H,35H,2EH,00H,00H,3FH
END
復制代碼
作者:
lightsailing
時間:
2017-6-24 22:51
很好啊!
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲免费视频一区
|
h视频免费在线观看
|
超碰免费97
|
久久精品视频一区二区
|
色视频www在线播放国产人成
|
成人一级黄色片
|
日韩一区二区中文字幕
|
18视频在线观看男男
|
av久久
|
天天综合色
|
日韩高清中文字幕
|
久久综合一区
|
精品久久一区二区三区
|
99一区二区三区
|
一区二区视频网站
|
国产精品久久久久久久免费看
|
国产精品一区二区在线免费观看
|
国产精品久久久精品
|
视频一区二区三区在线观看
|
二色av
|
免费看黄色aaaaaa 片
|
精品一区在线
|
男人的天堂久久
|
av网站在线免费观看
|
av观看网站
|
黄色大片在线免费观看
|
91在线亚洲
|
欧美性生交
|
懂色av一区二区三区
|
国产91丝袜在线播放
|
欧美亚洲在线
|
亚洲不卡
|
青青草免费在线观看
|
中文字幕免费观看视频
|
日本www色
|
av永久免费
|
亚洲欧美国产高清va在线播放
|
欧美一级黄色录像
|
国产资源视频
|
在线不卡av
|
欧美福利在线
|