論 車 Auto Vehicle 立老 磊 年
老 立老 了 見 老 了不 料 利 了 識 更了 力量! i
車. 車 利 89c51 來 流. 令. 車 8051 類 車利 車 ii
Abstract The goal of this thesis is to design a small auto vehicle by using IC as its control center. Our auto car is designed by 8051 microchip. And 8051 microchip is used to control motor and light sensor. And the microchip is the controller who has completed framework and structure. With entering injunctions, we can finish our order.8051 board integrates all the sensors and actuators. A auto vehicle uses a sensor to retrieve the ground guide line as a navigator trace of the auto vehicle. iii
錄 i ii iii 錄 iv 錄 vi 錄 vii 1 1.1 1 1.2 1 1.3 1 路 2 2.1 路. 2 2.1.1. 2 2.1.2 3 2.1.3 理 4 2.2 路 6 2.2.1 6 2.2.2 7 2.2.3 路 理 8 2.3 C P U 路 12 2.3.1 路 12 2.3.2 8051 12 2.3.3 CPU 路 16 iv
18 3.1 18 3.2 輪 輪 18 3.3 18 流 19 4.1 19 4.2 19 論 20 5.1 20 5.2 20 參 21 錄 車 8051 22 v
錄 2.1 CNY 70 4 2.2 路 5 2.3 路 6 2.4 CPU 14 2.5 CPU 16 vi
錄 2.1 車 見 列 2 2.2 3 2.3 類 7 2.4 15 vii
1.1 異 都 行 更 便利 更 來 來 更 8051 便 8051 來 來行. 車 1.2 利 路 路 8051 來 車 1.3 車 來 路 車 路 路 行 行 路 度 兩 1
路 2.1 路 2.1.1 路 類 索 靈 度 狀 CPU 邏 車 2.1 車 見 列 類 理 了 CCD CCD 理 識 離 類 不 車 2
2.2 類 不易 不 靈 度 不 率 易 不 CCD 精 度 理 2.1.2 CNY70 理 行 3
2.1 CNY70 2.1.3 路 理 路 CNY70 +5V 流 率 亮 CPU hi CPU 路 來 靈 度 狀 4
路 路 2.2 路 5
2.2 路 2.3 路 2.2.1 S3003 精, 車 力., 不,, 2 5, DC AC 兩.2 5 來 度不,2 400, 1000, 200 ~ 50000( ), 來,, AC DC DC AC 了,, AC, 不. 來說 AC DC, DC AC 便. 兩 精度. 精 6
2.2.2,, 2, 力, 路,,,, 狀,,, 連,, 不 OverShot,, 不 AC/DC,, 理 路 路, 2, 力,, 路,, 不, 不,, +/- count,,, 連,,, Overshot,, ( 路 ) 不, 令 ( 路 ) 不 不 量 2.3 類 量 理 連 度量 量 狀 量 洞 離量 OCR POS 7
2.2.3 路 理 力 狀 力 不 車 ( 狀 流 例 力 ) 不 力 若 力 車 精度 精度 度 HYPRID 5 1 0.72 精度 精度 精度 3 ( 0.05 ) 度 度 0.72 度 力 精度 5 8
0.72 (1 500 ) 0.36 (1 1000 ) 精度 3 ( 0.05 ) 不 度累 AC 異 列 : 路 精度 不 累 度 易 路 行 精度 9
路 AC 度 行 來 流 行 AC 度 狀 異 AC 路 來 參數 AC 異 異 狀 來 流 率 度 AC X 行 Y X (END) 便 X 異 異 便 領 領 降 10
AC 領 行 行 AC AC 離 易 度 精度 類 度 11
2.3 CPU 路 2.3.1 路 CPU 路 車 邏 路 CPU 理 車 2.3.2 8051 8051 Intel 來 MCS-51 列 列 (1) 8 CPU (2) 林 數 ( 邏 ) (3)32 讀立 I/O (4) 128 料 RAM (5) 兩 16 / 數 (8052 3 ) (6) UART (7)5 兩 ( / ) (8) (Clock) 率 12MHz (9) 4K(8052 8K) (ROM) 12
(10) 64K (EPROM) (11) 料 64K 料 (RAM) 8051 13
2.4 CPU 14
2.4 LM-H 列 LM-N 列 LM-T 列 LM-U 列 LM-UP1A-043M LM-UP2B-063M LM-UP2B-122M LM-UP3C-165M 10A/A1-S040U525 20A/A1-S040U526 40A/A1-S040U527 40A/A1-S040U528 MR-J2S- 10B/B1-S009U525 20B/B1-S009U526 40A/A1-S009U527 40B/B1-S009U528 量 (kva) 0.3 0.5 0.9 0.9 冷 冷 連 (N) 43 63 122 165 力 (N) 129 189 366 495 度 2.0 力 (N) 0 ( ) (kg) 0.4 0.6 1.1 1.2 量 ( ) (kg) (300mm 1 ) 4.0 (300mm 1 ) 6.0 (300mm 1 ) 9.0 LM-US1A-300 LM-US2B-300 LM-US3C-300 量 量 15 ( IP00) 度 0 ~ 40 ( ) -15 ~ 70 ( ) 度 80%RH ( 露 ) 90%RH ( 露 ) ( ) 量 49m/(s ) 1000m 15
2.3.3 CPU 路 2.5 CPU 路 8051 說 : Vcc 40 +5V Vss 20 P1.0 ~P1.4 (1 ~5) CPU MCS-51 / P1 16
1. 1 狀 P1 狀 2. 1 0 P1 4 LS TTL 3. 8032 8052 P1.0 2 / 數 T2 P1.1 2 / 數 T2EX P2.0 ~P2.7(21~28) CPU 兩 / P2 I/O 流 8 1. 1 P2 2. 1 0 P2 4 LS TTL 3. 8 流 (A8 ~ A15) RST(9) 連 RESET 兩 XTAL1(18) XTAL2(19) 12M 12MHz 來 率 CPU 令 路 17
3.1 車 列 量 輪 輪 路 零 3.2 輪 輪 輪 車 裡 輪 離 車 來量 離 輪 輪 輪 輪 輪 兩 輪連 離 略 兩輪 離 1/2 離 輪 易 輪 不 易 3.3 車 不 車 18
流 4.1 車 來 4.2 了 離 靈 度不 車 更 離 19
論 5.1 車 不 力 路 CPU 路 路 什 路 路 離 精 率 路 CPU 路 20
參 [1] ( 精 ) 1977 [2] 1977 [3] 益 1981 [4] 李 林 1982 [5] 林 8051 益 1983 [6] 8051 1999 21
錄 車 TIMETEMP0 EQU 30H TIMETEMP1 EQU 31H RUN_FLAG REG 32H.0 GOFORWARD EQU 3 GOBACK EQU 25 MOTOR1 REG P2.2 MOTOR2 REG P2.1 ORG 00H JMP START ORG 0BH JMP TIMER0_INT START: CLR RUN_FLAG CLR MOTOR1 CLR MOTOR2 CALL INIT_TIMER MAIN: CALL BOTTOM_CHECK CALL AUTO_RUN JMP MAIN BOTTOM_CHECK: JB P2.0,EXIT_BOTTOM_CHECK MOV R5,#2 CALL DELAY JB P2.0,EXIT_BOTTOM_CHECK SETB RUN_FLAG EXIT_BOTTOM_CHECK: JNB P2.0,EXIT_BOTTOM_CHECK RET 22
AUTO_RUN: JNB RUN_FLAG,JMP_POINT MOV A,P1 ANL A,#00011111B CJNE A,#0,CHECK1 MOV R5,#200 ALL DELAY WAIT_LOOP: MOV R0,#1 CALL MOTORGOF MOV A,P1 ANL A,#00011111B CJNE A,#0,WAIT_LOOP2 JMP WAIT_LOOP WAIT_LOOP2: MOV R0,#1 CALL MOTORGOF JNB P1.0,CHECK2 JNB P1.4,CHECK2 JMP EXIT_AUTO_MODE WAIT_LOOP3: JMP EXIT_AUTO_MODE CHECK1: JNB P1.0,CHECK2 JNB P1.1,CHECK2 JNB P1.2,CHECK2 JNB P1.3,CHECK2 JNB P1.4,CHECK2 MOV R0,#1 CALL MOTORGOF; JMP_POINT: JMP EXIT_AUTO_MODE CHECK2: JB P1.0,CHECK6 MOV R0,#4 CALL MOTORGOF CHECK2_LOOP: 23
MOV R0,#1 CALL MOTORGOL JNB P1.2,EXIT_AUTO_MODE JMP CHECK2_LOOP CHECK6: JB P1.4,CHECK7 MOV R0,#4 CALL MOTORGOF CHECK6_LOOP: MOV R0,#1 CALL MOTORGOR JNB P1.2,EXIT_AUTO_MODE JMP CHECK6_LOOP CHECK7: JB P1.2,CHECK3 MOV R0,#1 CALL MOTORGOF RET CHECK3: JB P1.1,CHECK4 CKECK3_LOOP: MOV R5,#5 CALL DELAY MOV R0,#1 CALL MOTORGOL JNB P1.3,EXIT_AUTO_MODE JNB P1.2,EXIT_AUTO_MODE JNB P1.0,EXIT_AUTO_MODE JNB P1.4,EXIT_AUTO_MODE JMP CKECK3_LOOP CHECK4: JB P1.3,EXIT_AUTO_MODE CKECK4_LOOP: MOV R5,#5 CALL DELAY MOV R0,#1 CALL MOTORGOR JNB P1.1,EXIT_AUTO_MODE 24
JNB P1.2,EXIT_AUTO_MODE JNB P1.0,EXIT_AUTO_MODE JNB P1.4,EXIT_AUTO_MODE JMP CKECK4_LOOP EXIT_AUTO_MODE: RET TIMER0_INT: PUSH A PUSH PSW CALL SHOW_LED POP PSW POP A RETI SHOW_LED: MOV P0,P1 RET MOTORGOF: SETB MOTOR1 SETB MOTOR2 MOV R5,#GOFORWARD CALL S_DELAY CLR MOTOR2 MOV R5,#(GOBACK-GOFORWARD) CALL S_DELAY CLR MOTOR1 MOV R5,#(200-GOBACK) CALL S_DELAY DJNZ R0,MOTORGOF RET MOTORGOB:; SETB MOTOR1 SETB MOTOR2 MOV R5,#GOFORWARD CALL S_DELAY 25
CLR MOTOR1 MOV R5,#(GOBACK-GOFORWARD) CALL S_DELAY CLR MOTOR2 MOV R5,#(200-GOBACK) CALL S_DELAY DJNZ R0,MOTORGOB RET MOTORGOL: SETB MOTOR1 SETB MOTOR2 MOV R5,#GOBACK CALL S_DELAY CLR MOTOR1 CLR MOTOR2 MOV R5,#(200-GOBACK) CALL S_DELAY DJNZ R0,MOTORGOL RET MOTORGOR: SETB MOTOR1 SETB MOTOR2 MOV R5,#GOFORWARD CALL S_DELAY CLR MOTOR1 CLR MOTOR2 MOV R5,#(200-GOFORWARD) CALL S_DELAY DJNZ R0,MOTORGOR RET INIT_TIMER: MOV TMOD,#11H SETB ET0 SETB TR0 SETB EA 26
RET DELAY: MOV TIMETEMP0,#20 DEL1: MOV TIMETEMP1,#249 DEL2: DJNZ TIMETEMP1,DEL2 DJNZ TIMETEMP0,DEL1 DJNZ R5,DELAY RET S_DELAY: MOV TIMETEMP0,#50 DJNZ TIMETEMP0,$ DJNZ R5,S_DELAY RET 27