智能尋跡小車設(shè)計
《智能尋跡小車設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《智能尋跡小車設(shè)計(44頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、目錄 簡介—— ————————————————————————— 1 實驗一 程序狀態(tài)指示燈演示 ———————————————— 3 實驗二 流水燈演示————————————————————— 5 實驗三 數(shù)碼管演示————————————————————— 8 實驗四 數(shù)碼管及跑馬燈演示————————————————— 10 實驗五 按鍵中斷查詢演示—————————————————— 13 實驗六 話筒聲音識別演示—————————————————— 15 實驗七 光敏電阻與蜂鳴器演示———————————————— 17 實驗八 紅外反射與直流電機(jī)驅(qū)動演示———
2、—————————— 19 實驗九 紅外遙控器解碼程序演示——————————————— 23 實驗十 串口通信程序演示—————————————————— 28 30 實驗十一 綜合功能演示 簡介 單片機(jī)益智系列 ——智能尋跡機(jī)器人是由益芯科技有限公司為科教方便 而研發(fā)設(shè)計。 根據(jù)現(xiàn)代學(xué)校對嵌入式系統(tǒng)開發(fā)的需求。 依據(jù)提高學(xué)生實際動手 操作能力和思考能力, 以 加強(qiáng)學(xué)生對現(xiàn)實生活中嵌入式系統(tǒng)的應(yīng)用為參照。智 能尋跡機(jī)器人全新的設(shè)計模式,良好的電路設(shè)計, 一體化的機(jī)電組合,智趣的 系統(tǒng)開發(fā),更是成為加強(qiáng)學(xué)生學(xué)習(xí)興趣的總動源。 智能尋跡機(jī)器人采用現(xiàn)在較為流行的 8 位單片機(jī)作為系
3、統(tǒng)大腦。以 8051 系列家族中的 AT89S51/AT89S52 為主芯片。 40 腳的 DIP 封裝使它擁有 32 個完 全 IO(GPIO —通用輸 入輸出 ) 端口, 通過對這些端口加以信號輸入電路,控制 電路, 執(zhí)行電路共同完成尋跡機(jī)器人。 P0.0, P0.1 ,P0.2 ,P0.3 分別通過 LG9110 電機(jī)驅(qū)動來驅(qū)動電機(jī) 1 和電機(jī) 2 。由電機(jī)的正轉(zhuǎn)與反轉(zhuǎn)來完成機(jī)器人的前進(jìn), 后退,左轉(zhuǎn),右轉(zhuǎn),遇 障礙物繞行, 避懸崖等基本動作。 在機(jī)器人前進(jìn)時如果 前方有障礙物, 由紅外發(fā)射管發(fā)射的紅外信號被 反射給紅外接收管, 紅外接管 將此信號經(jīng)過 P3.7 傳送入 AT89S5
4、2 中,主芯片通過內(nèi)部的代碼進(jìn)行機(jī)器 人的 繞障礙物操作, 同時主芯片將 P3.7 的信號狀態(tài)通過 P2.5 的 LED 指示燈顯示出 來。機(jī)器人行走 時會通過 P3.5 與 P3.6 的紅外接收探頭來進(jìn)行檢測。 當(dāng)走到懸 崖處時, P3.5 或 P3.6 將收到一個電 平信號, 此電平信號將通過相應(yīng)端口傳送 入主芯片中, 主芯片通過內(nèi)部代碼完成機(jī)器人的避懸崖操作。 同時 P3.5 與 P3.6 的信號狀態(tài)將通過 P2.6/P2.7 顯示出來。在機(jī)器人的左轉(zhuǎn),右轉(zhuǎn),后退的過程, 可以通過觀看以 P2.0/P0.7 為指示燈的運行狀態(tài)。 P0.4 為機(jī)器人的聲控檢測端 口,在運行為前進(jìn)狀態(tài)時,
5、 可以能過聲 控(如拍手聲 )來控制它的運行與停止。 P0.6 為機(jī)器人的聲音輸出端。在機(jī)器人遇到障礙物時。進(jìn)行繞障礙物與避懸 時可以通過此端口控制蜂鳴器發(fā)出報警聲。當(dāng)為白天或黑夜時可以通過 P0.5 端口中的光敏電阻來進(jìn)行判 斷,以方便完成機(jī)器人夜間自動照明等功能。兩個按鍵以查詢 /中斷兩種不同的方式來展現(xiàn)按鍵操作。你 可以按下S1鍵來進(jìn)行機(jī) 器的停止。 再按下S2鍵來進(jìn)行機(jī)器人的運行。 這個按鍵的信息分別被 P3.2, P3.4 接收到。IR1為紅外遙控接收器,這就為機(jī)器人進(jìn)行遠(yuǎn)程遙控創(chuàng)造了可能。 這個紅外遙控接收頭接收 到紅外信號時將信號經(jīng)過 P3.3送入到主芯片,主芯片 對
6、其進(jìn)行解密后以不同的方式對機(jī)器人進(jìn)行控 制。同時將用戶的按鍵信息通過 P2端口上LED數(shù)碼管顯示出來。 P3.0、P3.I中COM端口的加入,讓你完全可 以用電腦對其進(jìn)行控制。你可以通過對串口發(fā)送數(shù)據(jù),數(shù)據(jù)會被顯示到 LED 數(shù)碼管中,并讓機(jī)器人執(zhí)行相應(yīng)的功能。電腦的串口軟件要求波特率為 9600。8位數(shù)據(jù)位,這時你就 可以快樂的用電腦來對它進(jìn)行你的完全控制了。 EXKJ-ZN02功能的組合多樣,使得學(xué)生可以充分發(fā)揮自主能力,制作出 不同的機(jī)器人。它為學(xué)校進(jìn)行機(jī)器人競賽和畢業(yè)項目設(shè)計建立了實物平臺,是 學(xué)校教師授課變得更輕松有趣。同時也能改變學(xué)生學(xué)習(xí)模式和激發(fā)學(xué)習(xí)興趣。 更是
7、作為驗證學(xué)生學(xué)習(xí)效果的有力工具。良好的電路板設(shè)計,讓學(xué)生制作變得 方便容易,其大大提高了學(xué)生的制作成功率。提高了學(xué)生對電子電路的興趣, 更是教學(xué)過程中不可或缺的教具。 實驗一程序狀態(tài)指示燈演示 實驗簡介: 本程序重點演示了一個最簡程序的基本結(jié)構(gòu), 它從順序、判斷、循環(huán)的形式表現(xiàn)程序的基 本 結(jié)構(gòu),此程序通過閃燈不斷的閃動, 及閃燈閃動的快慢來表示程序不不同工作狀態(tài)。 它也是 常 數(shù)字設(shè)備中進(jìn)行狀態(tài)表示的方法之一(例:網(wǎng)卡)。 實驗原理圖: VCC R151QK C7 30pF Tl- C8 30pF z IMO XT A LI KTAL2 C6 10 lF
8、 POjOWDO P0.1WD1 P02WD2 P0.3i^D3 m4^D4 RO^^DS P0.6?D€ P0 7WD7 R25 560 □1 02 03 04 D5 06 D7 DB RST 或許P PSEN 亂E網(wǎng)郭 P30RiD P3.1/TKD P3 ;TO0 P3.3W1 F3 沖口'Q P3.5/T1 町.因只 P3 7TO P1.3CD(0 P1.4CEX1 P1.5iCEX2 P1.6CEX3 Pt7C?EX4 P2.0.M VSS P22A10 P2 3^11 P2 4.A12 P2 5A13 PZB.AU
9、 P2.7M15 ■- AT-8S551 AT89S52 AJ69C51AIB9C52 三、實現(xiàn)代碼: LED EQU P1 MCUDATA EQU 30H DLYCOUNT EQU 40H DLY1 EQU 41H DLY2 EQU 42H ORG 0000H MOV LED,#0FFH MOV MCUDATA,#0 LOOP:INC MCUDATA MOV A,MCUDATA CLR C SUBB A,#15 JC LOP1 MOV A,MCUDATA CLR C SUBB A,#30 JC LOP2 MOV A,MCUDATA CLR C SUBB A,
10、#60 JC LOP3 MOV MCUDATA,#0 MOV LED,#0FFH SJMP LOOP LOP1:MOV A,LED CPL A MOV LED,A MOV DLYCOUNT,#25 LCALL DELAY SJMP LOOP LOP2:MOV A,LED CPL A MOV LED,A MOV DLYCOUNT,#10 LCALL DELAY SJMP LOOP LOP3:MOV A,LED CPL A MOV LED,A MOV DLYCOUNT,#5 LCALL DELAY SJMP LOOP DELAY: MOV DLY1,#100 DLYLOP2:M
11、OV DLY2,#10 DJNZ DLY2,$ DJNZ DLY1,DLYLOP2 DJNZ DLYCOUNT,DELAY RET END 四、運行效果: 程序運行效果為:開機(jī)后程序以慢速閃動,一段時間后速度開始加快,再等待時間,閃燈 的速度達(dá)到最快,之后一段時間后,閃動將回到開始狀態(tài)。 實驗二 流水燈演示 實驗簡介: 本程序全面的表現(xiàn)了子程序的用法, 它從對幾個子程序的操作, 顯示不同的流燈技術(shù),流 水 燈的不同需要不同的表現(xiàn)的形式, 而這里主要介紹了移位操作和內(nèi)部數(shù)據(jù)存儲及讀入操作。 延 時函數(shù)采用可重入標(biāo)志,可進(jìn)行函數(shù)的遞歸調(diào)用。 實驗原理圖: 0 01 D2
12、03 O U±ci _FIOlF XT豪 LI XT厲 12 RST EA-^P FSEn ALE.TOR; P3 P31/TkD P3 sTntd P3.3WT1 pa^/ro P3 5/T1 FiewvR P3 JTIb vcc IPO DADO POHiftOI P0.2MI2 PO.3^D3 HH 典 CM P0.5^D5 P0.6iAD6 P0 7^07 PU/T2EX Pl-2£Ci C7MpF HF z5^-r百 -?,-■'■ CS30[f E 畧!.L 二 RW仃劉用「 1R19 5B0 L J56D L 」更二 D
13、5 D6 D1 P1.4.CEX1 P1 5^DC2 P20MS P2 1A9 P22A10 P21A11 P2 4*12 P2 5A13 P2&A14 P2TA15 ■ZTbrl 三、 實現(xiàn)代碼: LED EQU P1 DLY1 EQU 41H DLY2 EQU 42H DLY3 EQU 43H ORG 0000H MOV LED,#0FFH LOOP:LCALL RTOL LCALL LTOR LCALL BTOM LCALL MTOB SJMP LOOP LTOR:MOV R0,#9 MOV LED,#0FFH LOP1:LCALL DELAY
14、MOV A,LED CLR C RLC A MOV LED,A DJNZ R0,LOP1 RET RTOL:MOV R0,#9 MOV LED,#0FFH LOP2:LCALL DELAY MOV A,LED CLR C RRC A MOV LED,A DJNZ R0,LOP2 RET BTOM: MOV R0,#5 MOV LED,#0FFH MOV DPTR,#bm CLR A LOPBM:LCALL DELAY LCALL DELAY PUSH ACC MOVC A,@A+DPTR MOV LED,A POP ACC INC A DJNZ R0,
15、LOPBM RET MTOB: MOV R0,#5 MOV LED,#0FFH MOV DPTR,#mb CLR A LOPMB:LCALL DELAY LCALL DELAY PUSH ACC MOVC A,@A+DPTR MOV LED,A POP ACC INC A djnz R0,LOPMB RET DELAY:MOV DLY1,#5 DLOP2:MOV DLY2,#100 DLOP3:MOV DLY3,#100 DJNZ DLY3,$ DJNZ DLY2,DLOP3 DJNZ DLY1,DLOP2 RET bm: DB 7eH,3cH,18
16、H,00H mb: DB 0e7H,0c3H,81H,00H END 四、 運行效果: 程序運行效果為:開機(jī)后,指示燈向從左向右依次點亮,從右向左依次點亮,由兩邊向中 間依次點亮,由中間向兩邊依次點亮。 實驗簡介: 實驗三數(shù)碼管演示 本程序通過對端口的置數(shù)操作, 展示了數(shù)碼管的應(yīng)用技術(shù),數(shù)碼管是將發(fā)光二極管通過一 定的形式封裝在一個數(shù)字的外殼中,可以通過不同的點亮方式來顯不同的數(shù)字符號。 實驗原理圖: 07 30 pF XTAL1 XTAL2 _±LC1 ■^10uF RST PSEN ALE,F(xiàn)R
17、OG PlOtixD P3 1/TnD P3 27HT0 P3 37rrri P3.4/T0 pawn P3 6WR PJ7JRD V5S VCC p&a^DO PD 1JAD1 P0 2AD2 PD 3JAD3 PO 4AD4 P05AD5 PO悶M PO 7^07 PI 0/T2 P1.1ff2EX P 1.2EG< PI 3tEX0 P1.4CEX1 PI 5CEX2 Pl 6CEXJ P1.7CEX4 P2.0ftB P2lft9 P2 2A10 P2 3A1 11 P2 4A12 PZ5A13 P26A14 P27A15 21苕2T24君<27
18、一2B "W U U "W "W "W W A 丄 9 AT8 9S 517ATfl9 S52/AT B9 CS VA1B9C 62 實現(xiàn)代碼: DLY1 EQU 41H DLY2 EQU 42H DLY3 EQU 43H ORG 0000H MOV P2,#0FFH MOV DPTR,#SM LOOP:MOV R0,#10 CLR A LOP: PUSH ACC LCALL DELAY MOVC A,@A+DPTR MOV P2,A POP ACC INC A DJNZ R0,LOP SJMP LOOP SM: DB 9fH,25H,0dH,99H,49H,
19、41H,1fH,01H,19H,03H DELAY:MOV DLY1,#30 DLOP2:MOV DLY2,#100 DLOP3:MOV DLY3,#100 DJNZ DLY3,$ DJNZ DLY2,DLOP3 DJNZ DLY1,DLOP2 RET END 四、 運行效果: 程序運行效果為 : 程序下載后 ,數(shù)碼管將從 1-9 依次顯示 , 最后將顯示數(shù)字 0. 實驗簡介: 本程序主要是將數(shù)碼管及跑馬燈放在一起顯示,它主要說明了,如何將在單系中運行多個 看似并行運行的子系統(tǒng)?本程序在此將跑馬燈子程序放入到一個頭文件中, 對于一個大的工程 這 樣將有益于程序文件的管理。
20、 實驗原理圖: 1 IC C7 30|^ TF CB30pF R1-10K VCC XTAL1 P0.DAOC PO 1J?KD1 XTAL2 PO 2 WD2 R$T EW*yPP P0 3.WD3- PO 4AD4- P0.S.AD5 PQ扈心 PQ 7AD7 P10.T2 - PSEn Pl.rTJEX- P12£Ch PZ.O^mD P1.3CEXC' P1.4CEX1- P1.5CEX2^ pi 1 /n(D P1.6CE^3 P3.2TFJY0 P17CEX4 P3.3JIW1 P3.47TO P201A& P
21、35/T1 PZ1IA^9 P3 S^WIt P2.2A10 P3/TO PZ3A11 VSS P2.耐仔 P2.7A1S k廣 VI -囚cF32T^"2r?r2B IIH^P X > ■ R21 560 1R22 口^23 門只25 LJs&O U560 U 560 □ 1 02 D3 D4 □& 06 D7 DO gsw gm R7 E^nini RT2 r^n Ri7rbg4 BT1 三、 實現(xiàn)代碼: LED EQU P1 MCUDATA EQU 30H DLY1 EQU 41H DLY2 EQU 42H DLY3 EQU
22、 43H ORG 0000H MOV LED,#0FFH MOV MCUDATA,#0 LOOP:LCALL RTOL LCALL LTOR LCALL BTOM LCALL MTOB SJMP LOOP LTOR:MOV R0,#9 MOV LED,#0FFH LOP1:LCALL DELAY MOV A,LED CLR C RLC A MOV LED,A DJNZ R0,LOP1 RET RTOL:MOV R0,#9 MOV LED,#0FFH LOP2:LCALL DELAY MOV A,LED CLR C RRC A MOV LED,A DJNZ
23、R0,LOP2 RET BTOM: MOV R0,#5 MOV LED,#0FFH MOV DPTR,#bm CLR A LOPBM:LCALL DELAY LCALL DELAY PUSH ACC MOVC A,@A+DPTR MOV LED,A POP ACC INC A djnz R0,LOPBM RET MTOB: MOV R0,#5 MOV LED,#0FFH MOV DPTR,#mb CLR A LOPMB:LCALL DELAY LCALL DELAY PUSH ACC MOVC A,@A+DPTR MOV LED,A POP ACC INC A
24、DJNZ R0,LOPMB RET DELAY:PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#SM MOV A,MCUDATA XRL A,#11 JNZ GOON CLR A MOV MCUDATA,A GOON: MOV DLY1,#5 DLOP2:MOV DLY2,#100 DLOP3:MOV DLY3,#100 DJNZ DLY3,$ DJNZ DLY2,DLOP3 DJNZ DLY1,DLOP2 MOV A,MCUDATA MOVC A,@A+DPTR MOV P2,A INC MCUDATA POP DPL POP
25、DPH POP ACC RET BM: DB 7EH,3CH,18H,00H MB: DB 0E7H,0C3H,81H,00H SM: DB 9FH,25H,0DH,99H,49H,41H,1FH,01H,19H,03H END 四、 運行效果: 本程序運行效果: 本程序運行后, 可以看到跑馬燈按, 從左到右, 從右到左, 從兩邊到中 間, 從中間到兩邊將依次運行。并且在運行過程中,可以看到數(shù)碼管依次從 1-9-0 的順序顯示 數(shù) 字符號。 實驗簡介: 本程序通過兩個按鍵對數(shù)碼管進(jìn)行操作, 分別向用戶演示了查詢與中斷的操作方式, 中中 斷應(yīng)用了對按鍵進(jìn)行查詢的方法來判斷按
26、鍵的鍵值, 查詢按鍵方法中則采用了鍵盤延遲的方法 消來除按鍵重復(fù)輸入。 實驗原理圖: IC1 VGC 40 C610J C730pF R1510K XT A LI XTAL2 PO.OAM PO血1 P0 2/AD2 PG3MD3 PO 4AW PO 5剛5 P0.6,ftD6 PO 7^AD7 RST EA/^PP PS^N ■ME PROG P10J2 P1.1 "2EX P13QEX0 Pl.A^EXI P3 )忘Q P3.1/Tj(D P3.2lf4T0 P3$7r7ti P34/F0 P3 5/T1 P3.^WR P3.7TO P1.6CEX
27、3 Pl MEXd VSS P2D昭 P2 J IM P22/A1O P2 3A11 PZ4A12 P25AQ P26A14 P2 7^A15 7 R ?^霾35一備<1廠^|=廠町出2-23F疔薯 zJyJ-'l-J'-^y *-lI^『<-Atl活才-^-1,31,*霍」 3 H r r r fab?7b.ii=b” KM 實現(xiàn)代碼 S1 BIT P3.2 S2 BIT P3.4 MCUDATA EQU 30H DLY1 EQU 41H DLY2 EQU 42H ORG 0000H SJMP START ORG 0003H SJMP S1DO ST
28、ART:NOP SETB S1 SETB S2 SETB EA SETB EX0 SETB IT0 MOV MCUDATA,#0 MOV DPTR,#SM MOV A,MCUDATA MOVC A,@A+DPTR MOV P2,A LOOP:JB S2,$ LCALL DLYKEY JB S2,LOOP INC MCUDATA MOV A,MCUDATA XRL A,#10 JNZ GOON1 MOV MCUDATA,#0 GOON1:MOV A,MCUDATA MOVC A,@A+DPTR MOV P2,A SJMP LOOP S1DO:JNB S1,$ DEC MC
29、UDATA MOV A,MCUDATA XRL A,#0FFH JNZ GOON2 MOV MCUDATA,#9 GOON2:MOV A,MCUDATA MOVC A,@A+DPTR MOV P2,A RETI DLYKEY: MOV DLY1,#250 DLYLOP2:MOV DLY2,#250 DJNZ DLY2,$ DJNZ DLY1,DLYLOP2 RET SM: DB 9FH,25H,0DH,99H,49H,41H,1FH,01H,19H,03H END 四、 運行效果: 程序運行效果:開機(jī)后數(shù)碼管顯示數(shù)字 "1" ,當(dāng)按 S1 不放時,數(shù)碼管數(shù)字不
30、變, , 松開 S1 按 鍵,數(shù)碼 減 1 ;按 S2 鍵不放時,數(shù)碼管數(shù)字會自動加 1 。并且數(shù)字遵守從 0-9 循環(huán)操作 實驗六話筒聲音識別演示 實驗簡介: 本程序主要通過話筒對聲音信號進(jìn)行識別, 由于本電路有效的去除雜波, 所以僅能對響較 度 大的聲音進(jìn)行識別(例:拍手聲)。像正常的說話聲對本電路慮除,不會產(chǎn)生信息的輸入。話 筒識另啲加入,為我們建立了聲控平臺。 實驗原理圖: C7XpF VCC L±C1 —hi
31、olf csaopF 厲 二 _ll_J CGIOuF R151DK 11917- XTAL1 XTAL2 PO O ADO P0JAD1 PO2/AD2 PO.3AD3 PO.4 AD4 PC.5W5 PO.6,1ftD6 PO.7-AD7 40亙36歹適35< u "Jr EKug 4M Rlh nur K 67 RI4 nJ —ml V3 Xj80S 尸 nu RST 胡'VPP PSEN ALE .PROG P1O/T2 P1.4CEX1 P3 O^xD P3 1/TxD P351RT0 P3.3INT1 P3.4/T0
32、 P3.5/T1 P3 6^VR P3.7W P16/CEX3 VSS PZOfM P2lfl\9 P2.21M0 P2 3ft11 P2.4 A12 P2fiA13 P2.61M4 PZ7 A15 -1IX7X ii R14 5.1K C510 J S60 D C2 R3 15CX XZ V3 8590 三、 實現(xiàn)代碼: LEFTLED BIT P2.0 RIGHTLED BIT P0.7 B1 BIT P0.4 DLY1 EQU 41H DLY2 EQU 42H ORG 0000H CLR LEFTLED CLR RIGHTLED LO
33、OP:JB B1,$ LCALL DLYKEY JB B1,LOOP CPL LEFTLED CPL RIGHTLED SJMP LOOP DLYKEY: MOV DLY1,#2 DLYLOP2:MOV DLY2,#5 DJNZ DLY2,$ DJNZ DLY1,DLYLOP2 RET END 四、 運行效果: 程序運行效果:本程序開機(jī)后,前方兩側(cè)的指示燈點亮,拍一下手后,前方指示燈關(guān)閉再。 一次進(jìn)行拍手,指示燈又一次被點亮。 實驗簡介: 本程序講述了光敏電阻的使用方法。 當(dāng)處于光暗時,光敏電阻導(dǎo)通,將信號傳入到單片機(jī), 單 片機(jī)將控制蜂鳴器按一定的頻率響亮,
34、并且前方的指示燈也開始閃閃亮。 通過對光敏電阻號信 的接收,從而實現(xiàn)了夜間自動照明的功能。 實驗原理圖: 30 ca Eesor lBJ R1510K CGlOuF ±C1 1-10 uF VCC? XTAL1 PO O/ADO - PO 1AD1 卜 XTAL2 P0.2/AD2 - P0 3/AD3 - P0.4JAD4 - P0 5/AD5 - P0 6W6 - P0.7Z^D7 ? RST 百可vpp PtO^T2 - 戸SEN purax- alefriSg P1.2ECH P3.Q?xD P13CEX0- P1
35、.4CEX1 Pt5CEX2- P3.1 /TkD PI 6CEX3- 巴.CNYO P1.7CEX4 - P3.3TFTT1 P3.4/T0 P2.0JA8- P3.5/T1 P2 1 血9 - P3.6^l? P2.2A10- P3.7l?b P23A11 ? VSS P24jA12^ 陀如3「 P2.6*A14- P2.7iA15- 40 .21 IC1 AT6 対 51 AT89 S5? ■ AT89 C5 1/ A 7B9C 5 2 尊宜20 XOL nu nr R15 nu rnu^ PRL1 1nT B s 盯
36、 R s 三、 實現(xiàn)代碼: LEFTLED BIT P2.0 RIGHTLED BIT P0.7 RL1 BIT P0.5 SB1 BIT P0.6 DLY1 EQU 41H DLY2 EQU 42H ORG 0000H LOOP:JB RL1,GOTO SETB SB1 SETB LEFTLED SETB RIGHTLED SJMP LOOP GOTO:LCALL DELAY CPL SB1 CPL LEFTLED CPL RIGHTLED SJMP LOOP DELAY: MOV DLY1,#250 DLYLOP2:MOV DLY2,#250
37、DJNZ DLY2,$ DJNZ DLY1,DLYLOP2 RET END 四、 運行效果: 程序運行效果:打開電源開關(guān),如果本機(jī)在有光照的情況下,將無任何的反應(yīng),這時將子機(jī) 移動到較黑暗的地方,將會看到前方指示燈閃亮和蜂鳴器響亮。 實驗簡介: 本程序通過前端,底端的紅外發(fā)射頭和接收頭來判斷小車的運行軌跡,當(dāng)前與底端發(fā)生信 號輸入時,信號將被單片機(jī)接收,單片機(jī)來控制機(jī)器按照寫好的程序開始運行。 同時為達(dá)到好 效果,加入聲音識別與蜂鳴器輸入輸出設(shè)備。 ?使得此機(jī)器人的運動變得更加有趣。 實驗原理圖: ce胡聲 MCC ■ -rrALi □a貼曲no - PO 1
38、期 1 - XTAL2 悶2「 PQ - PO 5JAU5 - - TOT?>7 - -RST -Dvwp P1.O/T2 - 1 PSEN PI 1T2EX- -ale TOTO P1.2ECI- ? P3IXR 掃 Pl.lCEKt - P1 SJCE? ? P11/TjCJ P1&CEX3 PH27RT: P1 7JCEX4 piiinti ? P14JT<1 P2.0 AB - P15/T1 P2.1 AS- “ P3-6^k PZZ^I D? +門沁 P13*11 -vss Pz4iA12- P2 5A1J-
39、 P2 0AT4 3K '-r :C iIcjkhi r II C31D4 三、實現(xiàn)代碼: RUNFLAG BIT OOH; // ENABLELIGHT BIT 01H; // 定義運行標(biāo)志位 定義指示燈使能位 ;*********** 完成基本數(shù)據(jù)變量定義 S1STATE BIT P1.0; S2STATE BIT P1.1; B1STATE BIT P1.2; IRSTATE BIT P1.3; RUNSTOPSTATE BIT P1.4; FONTIRSTATE BIT P1.5; LEFTIRSTATE BIT P1.6;
40、RIGHTIRSTATE BIT P1.7; 完成狀態(tài)指示燈定義 // // 完成按鍵端口的定義 **************/ // // // // // // // // ? ************* *************/ S1 BIT P3.2; S2 BIT P3.4; ? ************* *************/ LEFTLED BIT P2.0; RIGHTLED BIT P0.7; ;************* 完成前方指示燈端口定義 *********/ LEFTIR BIT P3.5; // RIGHTIR
41、 BIT P3.6; // FONTIR BIT P3.7; // ;************* 完成紅外探頭端口定義 ***********/ M1A BIT P0.0; // M1B BIT P0.1; // M2A BIT P0.2; // M2B BIT P0.3; // ;************* 完成電機(jī)端口定義 ***************/ B1 BIT P0.4; // RL1 BIT P0.5; // SB1 BIT P0.6; // 完成話筒 , 光敏電阻 ,蜂鳴器 .端口定義 **/ ? ********* // // 定義S1狀態(tài)標(biāo)志位
42、 定義S2狀態(tài)標(biāo)志位 定義B1狀態(tài)標(biāo)志位 定義IR狀態(tài)標(biāo)志位 定義運行停止標(biāo)志位 定義FONTIF狀態(tài)標(biāo)志位 定義LEFTIR狀態(tài)標(biāo)志位 定義RIGHTIRSTAT狀態(tài)標(biāo)志位 定義S1按鍵端口 定義S2按鍵端口 定義前方左側(cè)指示燈端口 定義前方右側(cè)指示燈端口 定義前方左側(cè)紅外探頭 定義前主右側(cè)紅外探頭 定義正前方紅外探頭 定義電機(jī) 1 正向端口 定義電機(jī) 1 反向端口 定義電機(jī) 2正向端口 定義電機(jī) 2反向端口 定義話筒傳感器端口 定義光敏電阻端口 定義蜂鳴端口 IR1 BIT P3.3; // ;********* 完成紅外接收端口的定義 ***********
43、**/ SHOWSM EQU P2 定義紅外接收端口 DLY1 EQU 41H DLY2 EQU 42H DLY3 EQU 43H ORG 0000H SJMP START ORG 0003H LJMP S1ZD ORG 000BH RETI START: MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH SETB EA SETB EX0
44、 SETB IT0 SETB ES 同意開啟外部中斷 1 設(shè)定外部中斷 1為低邊緣觸發(fā)類型 總中斷開啟 SETB EX1; // SETB IT1; // SETB ET0; SETB EA; // MOV DPTR,#SMDATA MOV A,#01H MOVC A,@A+DPTR MOV SHOWSM,A LOOP:LCALL CARGO JNB FONTIR,CARDO JB LEFTIR,CARDO JB RIGHTIR,CARDO JB B1,LOOP
45、 LCALL CARSTOP JB B1,$ SJMP LOOP CARDO:MOV A,#02 MOVC A,@A+DPTR MOV SHOWSM,A LCALL CARBACK MOV R1,#8 LOP1: LCALL DELAY CPL SB1 DJNZ R1,LOP1 MOV A,#03 MOVC A,@A+DPTR MOV SHOWSM,A LCALL CARLEFT MOV R1,#8 LOP2: LCALL DELAY CPL SB1 DJNZ R1,LOP2 SETB SB1 MOV A,#01 MOVC A,@A+DPTR MOV SH
46、OWSM,A LJMP LOOP S1ZD:LCALL CARSTOP JB S2,$ RETI CARGO:SETB M1A; SETB M2A; // // 將電機(jī) 1正向端口置高 將電機(jī) 2正向端口置高 CLR M1B CLR M2B SETB RUNFLAG MOV A,#01H MOVC A,@A+DPTR MOV SHOWSM,A; // CLR RIGHTLED; // CLR LEFTLED; // RET CARBACK:SETB M1B; // SETB M2B; // CLR M1A CLR M2A 數(shù)碼管顯示
47、前進(jìn)狀態(tài) 將前方右側(cè)指示燈置低 ( 亮 ) 將前方左側(cè)指示燈置低 ( 亮 ) 將電機(jī) 1反向端口置高 將電機(jī) 2反向端口置高 MOV A,#02H MOVC A,@A+DPTR MOV SHOWSM,A; // // 數(shù)碼管顯示后退狀態(tài) SETB RIGHTLED; // SETB LEFTLED; // RET CARLEFT:SETB M1B; // SETB M2A; // CLR M1A CLR M2B MOV A,#03H 數(shù)碼管顯示前進(jìn)狀態(tài) 將前方右側(cè)指示燈置高 ( 滅) 將前方左側(cè)指示燈置高 ( 滅) 將電機(jī) 1反向端口置高 將電機(jī) 2反向端
48、口置高 MOVC A,@A+DPTR MOV SHOWSM,A; // // 數(shù)碼管顯示后退狀態(tài) CLR RIGHTLED; // SETB LEFTLED; // RET CARRIGHT:SETB M1A; // SETB M2B; // CLR M2A CLR M1B MOV A,#04H 數(shù)碼管顯示前進(jìn)狀態(tài) ; 將前方右側(cè)指示燈置低 ( 亮) 將前方左側(cè)指示燈置高 ( 滅) 將電機(jī) 1反向端口置高 將電機(jī) 2反向端口置高 MOVC A,@A+DPTR MOV SHOWSM,A; // // 數(shù)碼管顯示后退狀態(tài) SETB RIGHTLED; //
49、CLR LEFTLED; // RET CARSTOP:CLR M1A CLR M2A CLR M1B CLR M2B CLR RUNFLAG MOV A,#00H MOVC A,@A+DPTR MOV SHOWSM,A; // // 數(shù)碼管顯示后退狀態(tài) SETB RIGHTLED; // SETB LEFTLED; // RET 數(shù)碼管顯示前進(jìn)狀態(tài) ; 將前方右側(cè)指示燈置高 ( 滅) 將前方左側(cè)指示燈置低 ( 亮) 數(shù)碼管顯示前進(jìn)狀態(tài) ; 將前方右側(cè)指示燈置高 ( 滅) 將前方左側(cè)指示燈置高 ( 滅) DELAY: MOV DLY1,#10 DLYLOP
50、2:MOV DLY2,#100 DLYLOP3:MOV DLY3,#100 DJNZ DLY3,$ DJNZ DLY2,DLYLOP3 DJNZ DLY1,DLYLOP2 RET SMDATA: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,19H;//0,1,2,3,4,5,6,7,8,9 END 四、運行效果: 程序效果: 打開本機(jī)電源開關(guān), 機(jī)器人開始向前運行(這要看當(dāng)時的條件),在運動的過程中, 如果前方有障礙物,機(jī)器人則開始向后后退一段時間后,向左運動,在向左運行一段時間 后。 再開始向前運行。在整個調(diào)向的過程中, 蜂鳴器閃響。并且在
51、機(jī)器人前進(jìn)的過程中,你可 以通 過拍手來控制機(jī)器人的停止和運行。 實驗九紅外遙控器解碼程序演示 實驗簡介: 本程序主要將現(xiàn)在比較常用 M50462遙控器進(jìn)行解碼, 將解碼后的數(shù)據(jù)通過 P2端口的數(shù)碼 管顯示出來,為了更好的看到運行過程, 特加了三個指示燈用來指示當(dāng)前運行狀態(tài)。 P10閃亮, 表示程序正在運行;P11閃亮,表示接收到數(shù)據(jù);P12閃亮,表示觸發(fā)內(nèi)部的定時器操作; P13 閃亮,表示正確接收完一個數(shù)據(jù)。 實驗原理圖: C7 3CpF T— cejocf HF R1510K 二 sis VCC XT A LI XTAL2 PO O.AIDO
52、PO1ii!AO1 PG 3 AO 3 RST EAr^P FSEn P3iQ眉邁 P3 1fTiO F3 zTnTO P3 37RT11 P14/T0 P3 5/T1 P3CAV? pa依b PO.6^O6 PO7iAO7 P2JA11 P2 5A13 R2&A14 VSS P27A15 臨的ff'34尋廠 P1.O7T2 P1 1/T2EX Pl-2€Ci P1 3£EX0 P1.5X:EX2 P20MS P2 1A9 P22A10 :E'S-T:CJL>:f>:< 罠臨fh訶「 R1& JS60 1 S60 DI OS
53、DO cw
込
R13
R12
Bftti
iirrti
_ BT1
三、 實現(xiàn)代碼:
#include
54、1F,0X01,0X19};//0,1,2,3,4,5,6,7,8,9 UCHAR CODE RECVDATA[]={0X07,0X0A,0X1B,0X1F,0X0C,0X0D,0X0E,0X00,0X0F,0X19}; UCHAR IRCOM[7]; STATIC UNSIGNED INT LEDFLASH; // UNSIGNED CHAR RUNFLAG=0; BIT ENABLELIGHT=0; /*********** 完成基本數(shù)據(jù)變量定義 SBIT S1STATE=PU0; SBIT S2STATE=P1A1; SBIT B1STATE=P1A2; SBIT
55、IRSTATE=P1A3; SBIT RUNSTOPSTATE=P1A4; SBIT FONTIRSTATE=P1A5; SBIT LEFTIRSTATE=P1A6; SBIT RIGHTIRSTATE=P1A7; /************* 完成狀態(tài)指示燈定義 SBIT S1=P3A2; SBIT S2=P3A4; /************* 完成按鍵端口的定義 SBIT LEFTLED=P2A0; SBIT RIGHTLED=P0A7; /************* 完成前方指示燈端口定義 SBIT LEFTIR=P3A5; // // // ******
56、********/ // // // // // // // // *************/ // // *************/ // // *********/ SBIT RIGHTIR=P3A6; // SBIT FONTIR=P3A7; // /************* 完成紅外探頭端口定義 ***********/ SBIT M1A=P0A0; // SBIT M1B=P0A1; // SBIT M2A=P0A2; // SBIT M2B=P0A3; // /************* 完成電機(jī)端口定義 ************
57、***/ SBIT B1=P0A4; // SBIT RL1=P0A5; // SBIT SB1=P0A6; // /********* 完成話筒 , 光敏電阻 , 蜂鳴器 . 端口定義 **/ SBIT IRIN=P3A3; // /********* 完成紅外接收端口的定義 *************/ #DEFINE SHOWPORT P2 // 定義閃動頻率計數(shù)變量 定義運行標(biāo)志位 定義指示燈使能位 定義S1狀態(tài)標(biāo)志位 定義S2犬態(tài)標(biāo)志位 定義B1狀態(tài)標(biāo)志位 定義IR狀態(tài)標(biāo)志位 定義運行停止標(biāo)志位 定義FONTIF狀態(tài)標(biāo)志位 定義LEFTIR狀態(tài)標(biāo)志位 定
58、義RIGHTIRSTAT狀態(tài)標(biāo)志位 定義S1按鍵端口 定義S2按鍵端口 定義前方左側(cè)指示燈端口 定義前方右側(cè)指示燈端口 定義前方左側(cè)紅外探頭 定義前主右側(cè)紅外探頭 定義正前方紅外探頭 定義電機(jī) 1 正向端口 定義電機(jī) 1 反向端口 定義電機(jī) 2正向端口 定義電機(jī) 2反向端口 定義話筒傳感器端口 定義光敏電阻端口 定義蜂鳴端口 定義紅外接收端口 定義數(shù)碼管顯示端口 EXTERN VOID CONTROLCAR(UCHAR CARTYPE); // 聲明小車控制子程序 VOID DELAYMS(UNSIGNED CHAR X) //0.14MS 延時程序
59、 { UNSIGNED CHAR I; WHILE(X--) { FOR (I = 0; I<13; I++) {} } } // // //14MS 定義臨時變量 延時時間循環(huán) 延時 VOID DELAY() // { UINT DELAYTIME=30000; // WHIL
60、E(DELAYTIME--); // RETURN; // } 定義延時子程序 定義延時時間變量 開始進(jìn)行延時循環(huán) 子程序返回 VOID IR_IN() INTERRUPT 2 USING 0 // { UNSIGNED CHAR J,K,N=0; // EX1 = 0; // DELAYMS(15); // IF (IRIN==1) // { EX1 =1; // RETURN; // } WHILE (!IRIN) // 信號。 { DELAYMS(1); // } FOR (J=0;J<4;J++) // { FOR (K=0;K<8;K
61、++) // { WHILE (IRIN) // 電平信號。 { DELAYMS(1); // } WHILE (!IRIN) // { DELAYMS(1); // } WHILE (IRIN) // { DELAYMS(1); // N++; // IF (N>=30) // { 定義INT2外部中斷函數(shù) 定義臨時接收變量 關(guān)閉外部中斷 , 防止再有信號到達(dá) 延時時間,進(jìn)行紅外消抖 判斷紅外信號是否消失 外部中斷開 返回 等IR變?yōu)楦唠娖?,跳過9MS勺前導(dǎo)低電平 延時等待 采集紅外遙控器數(shù)據(jù) 分次采集 8位數(shù)據(jù) 等IR變?yōu)榈碗娖剑^4.5MS的
62、前導(dǎo)高 延時等待 等 IR 變?yōu)楦唠娖? 延時等待 計算IR高電平時長 延時等待 計數(shù)器加加 判斷計數(shù)器累加值 EX1=1; // 打開外部中斷功能 RETURN; // 返回 } } IRCOM[J]=IRCOM[J] >> 1; // IF (N>=8) // { IRCOM[J] = IRCOM[J] | 0X80; // } N=0; // } } IF (IRCOM[2]!=~IRCOM[3]) // { EX1=1; // RETURN; // } FOR(J=0;J<10;J++) // { IF(IRCOM[2]==R
63、ECVDATA[J]) // { P2=LEDSHOWDATA[J]; // } } EX1 = 1; // } VOID MAIN(VOID) // { BIT EXEFLAG=0; // LEDFLASH=3000; // EX1=1; // IT1=1; // EA=1; // SHOWPORT=LEDSHOWDATA[0]; WHILE(1) // { DELAY(); // RUNSTOPSTATE=~RUNSTOPSTATE; 進(jìn)行數(shù)據(jù)位移操作并自動補(bǔ)零 判斷數(shù)據(jù)長度 數(shù)據(jù)最高位補(bǔ) 1 清零位數(shù)計錄器 判斷地址碼是否相同 打開外部中斷
64、 返回 循環(huán)進(jìn)行鍵碼解析 進(jìn)行鍵位對應(yīng) 數(shù)碼管顯示相應(yīng)數(shù)碼 外部中斷開 主程序入口 定義可執(zhí)行位變量 對閃燈數(shù)據(jù)進(jìn)行初始化 同意開啟外部中斷 1 設(shè)定外部中斷 1為低邊緣觸發(fā)類型 總中斷開啟 // 數(shù)碼管顯示數(shù)字 0 程序主循環(huán) 延時 // 運行指示燈狀態(tài)轉(zhuǎn)變 } } 四、 運行效果: 程序運行效果: 打開本機(jī)電源開關(guān),可以看到 P10不停的閃動,按下遙控器的數(shù)字鍵, 數(shù)碼管則顯示相應(yīng)的數(shù)字鍵 (1-9)??梢钥吹絇11、P12在顯示后呈亮狀態(tài),則可以接收下一 個 數(shù)據(jù),在上面過程中可以看到 P13閃亮了一下,表明上次正確接收到數(shù)據(jù)。 實驗十串口通
65、信程序演示 實驗簡介: 本程序通過數(shù)碼管,LED指示燈的閃亮來表示當(dāng)前串口通信的結(jié)果,串口通信使單片機(jī)與 電腦之間通信的橋梁,通過對它的學(xué)習(xí),可以很好的用電腦來進(jìn)行單片機(jī)的控制, 及對單片機(jī) 數(shù) 據(jù)的采集。因此串口通信被廣泛的用于工業(yè)控制中。 實驗原理圖: cajOuF -XTAU i XTA.L2 Ih- ft P3.0 Rtf) 叫 i lk El F3.2W5 pijWi 4 Tfl -P^&.T1 -PlfiWt Pi7^5b ilGi FD.aADO PO 1IILD1 PD.2.UkD2 PCL3AO3 PD.4AD4 PC5JADS PQoAD
66、e PO.FAD? 旦<:31騙專薯一 1 vss Plfliirj FHCEM1 P15CEX2 F1TCEX4 — I BTi R'SlOK P13CEX0 WDAfl 曲⑷ P22M10 P23W11 FZ4A12 F? 5?13 P2SA14 三、 實現(xiàn)代碼: 四、 運行效果: 程序運行效果:打開本機(jī)電源開關(guān)后,可以看到P1端LED指示燈在不停的閃耀,我們使 用 “串口調(diào)試助手” 或其它軟件向單片機(jī)發(fā)送數(shù)據(jù), 可以看到相應(yīng)的數(shù)據(jù)顯示在數(shù)碼管上, 并 且 發(fā)送的數(shù)據(jù)又返回到電腦中。 (只顯示0-9數(shù)字) 實驗十一綜合功能演示 一、 實驗簡介: 本程序通過將以前所編寫的分立程序通過有機(jī)結(jié)合,編制成一個大的應(yīng)用系統(tǒng)。小車在完 成自動防 撞,防懸崖等動作外,還可以通過紅外遙控器進(jìn)行遠(yuǎn)程遙控。 如果你對電腦編程很有 趣興的話,當(dāng)然也 可以通過電腦對串口進(jìn)行編程。 以方便通過電腦來進(jìn)行對小車控制。 在正常 的運特過程中,還可以通過 聲控(拍手聲)來對小車進(jìn)行控制,每一種控制小車都會完成相應(yīng)的 功能。為了更清晰的看到小車運行 過程狀態(tài),特將
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024《增值稅法》全文學(xué)習(xí)解讀(規(guī)范增值稅的征收和繳納保護(hù)納稅人的合法權(quán)益)
- 2024《文物保護(hù)法》全文解讀學(xué)習(xí)(加強(qiáng)對文物的保護(hù)促進(jìn)科學(xué)研究工作)
- 銷售技巧培訓(xùn)課件:接近客戶的套路總結(jié)
- 20種成交的銷售話術(shù)和技巧
- 銷售技巧:接近客戶的8種套路
- 銷售套路總結(jié)
- 房產(chǎn)銷售中的常見問題及解決方法
- 銷售技巧:值得默念的成交話術(shù)
- 銷售資料:讓人舒服的35種說話方式
- 汽車銷售績效管理規(guī)范
- 銷售技巧培訓(xùn)課件:絕對成交的銷售話術(shù)
- 頂尖銷售技巧總結(jié)
- 銷售技巧:電話營銷十大定律
- 銷售逼單最好的二十三種技巧
- 銷售最常遇到的10大麻煩