標(biāo)題:
自動(dòng)入庫小車設(shè)計(jì) 報(bào)告+程序
[打印本頁]
作者:
德瑪西亞1234
時(shí)間:
2016-5-13 18:37
標(biāo)題:
自動(dòng)入庫小車設(shè)計(jì) 報(bào)告+程序
一個(gè)很好的自動(dòng)入庫小車設(shè)計(jì)資料
0.png
(74.65 KB, 下載次數(shù): 99)
下載附件
2016-5-16 00:59 上傳
自動(dòng)入庫小車設(shè)計(jì).zip
(172.7 KB, 下載次數(shù): 18)
2016-5-13 18:37 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
ZUOLUN BIT P1.4 ;
YOULUN BIT P1.5;
ZUOLUN_DIR BIT P1.6;
YOULUN_DIR BIT P1.7;
ZUO_CHEWEI BIT P1.0;車尾傳感器信號(hào)輸入端,高電平有效
YOU_CHEWEI BIT P1.1;
YUYIN_CLK EQU P1.2;
ZUOQIAN_CHUANGANQI EQU P1.3
IRCOM EQU 20H ;20H-23H IR使用
JISHUQI_MIAOGEWEI EQU 45H;定60MS的倍數(shù)
JISHUQI_MIAOSHIWEI EQU 46H ;此地址里放的是秒數(shù);
RUKU_TIME EQU 47H;
TINGCHE_TIME EQU 48H;
CHUKU_TIME EQU 49H;
IRIN bit P3.6 ;遙控信號(hào)輸入端
FC_MARK equ P3.7; 檢測(cè)返程標(biāo)志
ZHUANWAN_OK EQU P3.0
MANSU4_MARK EQU P3.1;
CHANGSU_MARK EQU P2.0;
MANSU3_MARK EQU P2.1
;--------------------------
org 0000h;
sjmp start;
org 0003h;
ljmp ZUOLUN_ZHUAN;P3.2_zuolun zhong duan ru kou
org 000bh;
LJMP JIANCE_TIEPIAN ;dian shi qi dang zhongduan yong ,jian ce tie pian
org 0013h;
ljmp YOULUN_ZHUAN;P3.3_youlun zhongduan ru kou
ORG 001BH;
LJMP TIMER_1;全程實(shí)現(xiàn)定時(shí)
;--------------------------
org 0030h; 程序開始執(zhí)行,初始化
;---------------------------
start:mov SP,#60h;
mov P1,#00h;
mov p0,#0FFh;接語音芯片,先不說話
SETB YUYIN_CLK
MOV P3,#0FFH;
MOV TMOD,#15h ;定時(shí)器0計(jì)數(shù)檢測(cè)鐵片,定時(shí)器1工作定時(shí)狀態(tài)
MOV TH0,#0FFH;
MOV TL0,#0FFH;
mov th1,#4Ch;定時(shí)50MS,方式1
mov tl1,#00h
mov IP,#02h;現(xiàn)在定時(shí)器0,檢測(cè)鐵片中斷級(jí)別最高
mov TCON,#00h ;低電平觸發(fā),TIEPIAN,JIANCHE XIAN
mov IE,#0FH ; 開兩個(gè)外中斷及兩個(gè)定時(shí)器中斷,關(guān)總中斷
clr FC_MARK ;此條程序是想用P2。0,返程標(biāo)志檢測(cè),換速度
CLR ZHUANWAN_OK
CLR ZUO_CHEWEI;初始化停車信號(hào)位
CLR YOU_CHEWEI;
CLR MANSU4_MARK
CLR CHANGSU_MARK
CLR MANSU3_MARK
MOV JISHUQI_MIAOGEWEI,#00H; 清時(shí)間值
MOV JISHUQI_MIAOSHIWEI,#00H;
MOV RUKU_TIME,#00H;
MOV TINGCHE_TIME,#00H;
MOV CHUKU_TIME,#00H;
;------------------------------------
QIDONG: MOV A,#00H
MOV R0,#20H
LOOP0: MOV @R0,A ;20H-24H清零
INC R0
CJNE R0,#25H,LOOP0
SETB IRIN
MOV 22H,#0FFH
LOOP1: CALL IR_IN
MOV A,22H;
CJNE A,#0FFH,LOOP3;
SJMP LOOP1
LOOP3: CJNE A,#01,LOOP1;
SJMP MAIN1;
;---------------------------------------------------
; IR 譯碼子程序
;引導(dǎo)碼9MS低電平,4.375MS高電平,
;8窄8寬固定碼(0.5MS/0.6MS;1.5MS/0.6MS)
;8位數(shù)據(jù)碼;8位數(shù)據(jù)反碼,(0.5MS/0.6MS;1.5MS/0.6MS)
;---------------------------------------------------
IR_IN:
MOV R0,#IRCOM
I1: JNB IRIN,I2 ;等待 IR 信號(hào)出現(xiàn)
JMP I1
I2: MOV R4,#20
I20: CALL DEL
DJNZ R4,I20
JB IRIN,I1 ;確認(rèn)IR信號(hào)出現(xiàn)
I21: JB IRIN,I3 ;等 IR 變?yōu)楦唠娖?br />
CALL DEL
JMP I21
I3: MOV R3,#0 ;8位數(shù)清為0
LL: JNB IRIN,I4 ;等 IR 變?yōu)榈碗娖?br />
CALL DEL
JMP LL
I4: JB IRIN,I5 ;等 IR 變?yōu)楦唠娖?br />
CALL DEL
JMP I4
I5: MOV R2,#0 ;0.14ms 計(jì)數(shù)
L1: CALL DEL
JB IRIN, N1 ;等 IR 變?yōu)楦唠娖?br />
;IR=0,檢查R2中的計(jì)數(shù)值
MOV A,#8 ;0.14MS*8=1.12ms;A>8,是高電平;A<8,低電平
CLR C
SUBB A,R2 ;判斷高低位
;IF C=0 BIT=0
MOV A,@R0
RRC A
MOV @R0,A ;處理完一位
INC R3
CJNE R3,#8,LL ;需處理完8位
MOV R3,#0
INC R0 ;調(diào)整接收數(shù)據(jù)存儲(chǔ)地址,20H-23H,22H里放的數(shù)據(jù);
CJNE R0,#24H,LL ;收集到4字節(jié)了?不等就是沒接收完;相等就接收完了;
N1: INC R2
CJNE R2,#30,L1 ;0.14ms 計(jì)數(shù)過長則時(shí)間到自動(dòng)離開
RET
;---------------------------------------------------------------
; DELAY R5*0.14MS
DEL:
MOV R5,#1 ;IR解碼使用
DEL0: MOV R6,#2
DEL1: MOV R7,#32
DEL2: DJNZ R7,DEL2
DJNZ R6,DEL1
DJNZ R5,DEL0
RET
DELAY1: ;延時(shí)5MS
MOV R6,#25
DL2: MOV R7,#100
DJNZ R7,$
DJNZ R6,DL2
RET
;***************************************
; 主程序
;***************************************
MAIN1: MOV P0,#00010011B;準(zhǔn)備就緒
CALL YUYIN_MAICONG;
MOV R6,#250;
YAN_YUYIN:MOV R5,#250
DJNZ R5,$;
DJNZ R6,YAN_YUYIN
;--------------------------------------
SETB EA;
setb tr1;
setb tr0;
MAIN:JB ZHUANWAN_OK,FANCHENG;判斷轉(zhuǎn)彎是否成功,成功條入滿速返回
JB FC_MARK,TING_60S ;全速前進(jìn)程序
SETB ZUOLUN;
SETB YOULUN;
SJMP MAIN
;-------------------------------------停車60秒程序
TING_60S:SETB EA;
SETB TR1
WAIT_ZHUANWAN:MOV A,JISHUQI_MIAOSHIWEI;
CJNE A,#8,WAIT_ZHUANWAN;先暫時(shí)讓車停六十秒
MOV JISHUQI_MIAOSHIWEI,#00H;再次清零,以便計(jì)返程時(shí)間
MOV JISHUQI_MIAOGEWEI,#00H;
ZHUANWAN1: mov p0,#00111111b; 播放轉(zhuǎn)彎語音
lcall YUYIN_MAICONG
ZHUANWAN:SETB ZUOLUN_DIR;
CLR YOULUN_DIR ;
SETB ZUOLUN;
SETB YOULUN;
call YANSHI_CHANG;
JB P3.3,CHU_ZHUANWAN
CLR ZUOLUN;
CLR YOULUN;
CALL YANSHI_DUAN;
JNB P3.3,ZHUANWAN
CHU_ZHUANWAN:
CLR ZUOLUN;
CLR YOULUN;
CLR ZUOLUN_DIR
CLR YOULUN_DIR;
SETB ZHUANWAN_OK;轉(zhuǎn)彎成功標(biāo)志
SETB EX1;
SETB EX0;
SETB EA
SJMP MAIN
;------------------------------------慢速返回程序
FANCHENG:JNB ZUO_CHEWEI,mansu4;
JNB YOU_CHEWEI,mansu4;
clr ea;兩個(gè)尾燈都檢測(cè)到黑線時(shí)就關(guān)中斷,以后就靠尾燈來檢測(cè)方向及停止
SJMP TINGCHE;
mansu4:MOV A,JISHUQI_MIAOSHIWEI;
CLR CY
CJNE A,#3,BIJIAO
SJMP MANSU
BIJIAO:JC MANSU;
SJMP ZHENGCHANGSUDU
;-----------------------------------------返回時(shí)慢速4秒
MANSU:SETB ZUOLUN; 剛充完電時(shí),200/80都向外沖
SETB YOULUN;
MOV R4,#240;
DJNZ R4,$;
CLR ZUOLUN;
CLR YOULUN;
MOV R4,#90;
DJNZ R4,$;
SJMP FANCHENG
;---------------------------返回時(shí)加速程序
ZHENGCHANGSUDU:CLR CY
MOV A,JISHUQI_MIAOSHIWEI;
CJNE A,#11,BIJIAO1
SJMP TINGCHE_JIANSU
BIJIAO1:JC ZHENGCHANSU;
SJMP TINGCHE_JIANSU
ZHENGCHANSU:SETB ZUOLUN;
SETB YOULUN;
lcall dl_50us
SJMP FANCHENG
;-------------------------------------
TINGCHE_JIANSU:
SETB ZUOLUN; 剛充完電時(shí),200/80都向外沖
SETB YOULUN;
MOV R4,#200;
DJNZ R4,$;
CLR ZUOLUN;
CLR YOULUN;
MOV R4,#112;
DJNZ R4,$;
SJMP FANCHENG
;----------------------------------跑完全程,停車
TINGCHE:;jb ZUO_CHEWEI,TINGCHE;
TINGCHE1:;JB YOU_CHEWEI,TINGCHE1
clr ZUOLUN_DIR
CLR YOULUN_DIR;
PANTING:mov a,p1;
anl a,#03h;
cjne a,#11h,pan_tingche1;
SETB ZUOLUN;
SETB YOULUN;
LCALL TEDUAN_DELAY0;
CLR ZUOLUN;
CLR ZUOLUN;
LCALL TEDUAN_DELAY1
SJMP PANTING
pan_tingche1:cjne a,#01h,pan_tingche2;
SETB ZUOLUN;
clr YOULUN;
LCALL TEDUAN_DELAY0;
CLR ZUOLUN;
CLR ZUOLUN;
LCALL TEDUAN_DELAY1
SJMP PANTING
pan_tingche2:cjne a,#10h,cheditingche
clr ZUOLUN;
SETB YOULUN;
LCALL TEDUAN_DELAY0;
CLR ZUOLUN;
CLR ZUOLUN;
LCALL TEDUAN_DELAY1
SJMP PANTING
;CLR EA
;mov r6,#15;
;djnz r6,$
cheditingche:MOV R7,#6
XIANGQIAN_TIAO:SETB ZUOLUN;
SETB YOULUN;
MOV R6,#20
MOV R5,#5;
CLR ZUOLUN;
CLR YOULUN;
MOV R6,#20;
MOV R5,#2
SM:DJNZ R5,$;
DJNZ R6,SM;
DJNZ R7,XIANGQIAN_TIAO
CLR ZUOLUN;
CLR YOULUN;
CLR ZUOLUN;
CLR YOULUN;
;lcall yuyin;調(diào)全程跑完語音
mov p0,#01011111b;
lcall YUYIN_MAICONG
;LCALL DISPLAY;停車,顯示全程信息
SJMP $
;-------------------------------停車時(shí)用特短延時(shí)
TEDUAN_DELAY0:MOV R4,#50
DJNZ R4,$
RET;
TEDUAN_DELAY1:MOV R4,#5;
DJNZ R4,$;
RET;
;-------------------------------- 左輪調(diào)整程序
ZUOLUN_ZHUAN:PUSH A;
PUSH PSW;
NOP
NOP
NOP
NOP
NOP
NOP
jNb YOULUN,XIANGQIANPAO
; MOV P1,#00H;兩個(gè)輪全停止轉(zhuǎn)動(dòng)
nop;
nop;
nop;
nop;
SETB YOULUN;左輪轉(zhuǎn)-調(diào)整車位置 FAN LE ,GAI LE ?
CLR ZUOLUN
LCALL DUAN_DELAY;
; MOV P1,#00H;
SJMP TIAOCHU
XIANGQIANPAO:SETB ZUOLUN;
SETB YOULUN;
TIAOCHU:POP PSW;
POP A;
RETI;
;----------------------------------- 右輪調(diào)整
YOULUN_ZHUAN:PUSH A;
PUSH PSW;
NOP
NOP
NOP
NOP
NOP
NOP
JNB ZUOLUN,XIANGQIANPAO1
;MOV P1,#00H;兩個(gè)輪全停止轉(zhuǎn)動(dòng)
nop;
nop;
nop;
nop;
SETB ZUOLUN;右輪轉(zhuǎn)-調(diào)整車位置 FAN LE GAI LE ?
CLR YOULUN
LCALL DUAN_DELAY;
;MOV P1,#00H;
SJMP TIAOCHU1
XIANGQIANPAO1:SETB ZUOLUN;
SETB YOULUN;
TIAOCHU1:POP PSW;
POP A;
RETI;
;-------------------------------------- 車位置調(diào)整短暫延時(shí)
DUAN_DELAY:MOV R5,#30;
DL1:MOV R6,#40;
DL3:DJNZ R6,DL3;
DJNZ R5,DL1;
RET;
;-----------------------------------定時(shí)器1定時(shí)
TIMER_1:CLR EA;
PUSH A;
PUSH PSW;
mov th1,#4Ch;定時(shí)60MS,方式1
mov tl1,#00h
MOV A,JISHUQI_MIAOGEWEI;
CJNE A,#20,JIAYI
MOV JISHUQI_MIAOGEWEI,#00H;
INC JISHUQI_MIAOSHIWEI;
SJMP CHU_TIME
JIAYI:INC JISHUQI_MIAOGEWEI;
CHU_TIME:SETB EA;
POP PSW;
POP A
RETI
;--------------------------------------- 檢測(cè)鐵片程序
JIANCE_TIEPIAN:CLR EA;
clr ZUOLUN;
CLR YOULUN
CLR EX0;停止檢測(cè)黑線
CLR EX1;
CLR ET0;禁止定時(shí)器0中斷,即停止檢測(cè)鐵片
CLR TR0;
CLR TR1;
SETB FC_MARK
;--------------------播放入庫語音
mov p0,#00101111b;
lcall YUYIN_MAICONG
;----------------------------
MOV RUKU_TIME,JISHUQI_MIAOSHIWEI;讀取入庫時(shí)間
MOV JISHUQI_MIAOSHIWEI,#00H;把計(jì)數(shù)秒值清零
CLR ZUOLUN;
CLR YOULUN
RETI;
;---------------------------------------轉(zhuǎn)彎時(shí)調(diào)PWM用延時(shí)
YANSHI_DUAN:MOV R3,#25;
YANSHIDUAN:DJNZ R3,YANSHIDUAN;
RET
YANSHI_CHANG:MOV R3,#180
YANSHICHANG:DJNZ R3,YANSHICHANG;
RET;
;--------------------------------------
dl_50us:mov r3,#25
djnz r3,$;
ret
;----------------------------------------語音脈沖信號(hào)
YUYIN_MAICONG:clr YUYIN_CLK
;LCALL YANSHI_CHANG;
nop
nop
nop
nop
nop
NOP
NOP
setb YUYIN_CLK;
RET
;----------------------------
END
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1