《基于單片機(jī)智能遙控小車(chē)的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)智能遙控小車(chē)的設(shè)計(jì)(26頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、編號(hào) 單片機(jī)課程設(shè)計(jì)( 級(jí)) 題 目:基于單片機(jī)智能紅外遙控小車(chē)的設(shè)計(jì)學(xué) 院: 物理與機(jī)電工程學(xué)院 專 業(yè): 電子信息科學(xué)與技術(shù) 作者姓名: 指導(dǎo)教師: 職稱: 副教授 完成日期: 20 年 1 月 6 日二一七 年 一月基于單片機(jī)智能紅外遙控小車(chē)的設(shè)計(jì)摘要本次設(shè)計(jì)的簡(jiǎn)易智能小車(chē),采用STC89C52RC單片機(jī)作為小車(chē)的檢測(cè)和控制核心;采用紅外線遙控遠(yuǎn)程人為控制小車(chē)行駛狀態(tài);采用SM4105W80U3顯示小車(chē)處于自動(dòng)行駛還是遙控行駛;可以實(shí)現(xiàn)小車(chē)的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止運(yùn)動(dòng)。關(guān)鍵詞:STC89C52RC;紅外遙控1 前言本設(shè)計(jì)能實(shí)現(xiàn)對(duì)小車(chē)的運(yùn)動(dòng)狀態(tài)進(jìn)行實(shí)時(shí)控制,控制靈活、可靠,精度高,可
2、滿足對(duì)系統(tǒng)的各項(xiàng)要求。本設(shè)計(jì)采用MCS-51系列中的STC89C52RC單片機(jī)。以STC89C52RC為控制核心,使用紅外遙控對(duì)小車(chē)的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止運(yùn)動(dòng)進(jìn)行實(shí)時(shí)的控制。本次設(shè)計(jì)主要內(nèi)容是基于STC89C52RC設(shè)計(jì)一部智能小車(chē),小車(chē)能夠?qū)崿F(xiàn)自動(dòng)前進(jìn),和紅外遙控的智能小車(chē)控制系統(tǒng),包括了對(duì)驅(qū)動(dòng)電路,紅外通訊等的探索和研究。2 方案設(shè)計(jì)與論證2.1 遙控方案的選擇由于屬于小范圍內(nèi)遙控,小車(chē)在小范圍內(nèi)行駛,為了減少設(shè)計(jì)成本,增加便利性,所以采用常用的家用電視紅外遙控器作為紅外遙控發(fā)射部分,只需在小車(chē)上加裝紅外接收裝置即可。定義遙控器的上一曲鍵為左轉(zhuǎn)鍵,暫停鍵為右轉(zhuǎn)鍵,下一曲鍵為停止鍵,
3、CH健為前進(jìn)鍵,音量增大鍵為后退鍵,實(shí)現(xiàn)小車(chē)行駛的基本控制。紅外遙控系統(tǒng)的組成如圖2.1所示。發(fā)射部分包括鍵盤(pán)矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路。圖2.1 紅外流程圖2.2 遙控對(duì)小車(chē)的控制切換到紅外遙控功能,對(duì)小車(chē)的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止運(yùn)動(dòng)實(shí)現(xiàn)實(shí)時(shí)控制,具體如下所述:(1)前進(jìn)是左右兩個(gè)電機(jī)同時(shí)順時(shí)針旋轉(zhuǎn),實(shí)現(xiàn)小車(chē)的前進(jìn);(2)后退是左右兩個(gè)電機(jī)同時(shí)逆時(shí)針旋轉(zhuǎn),實(shí)現(xiàn)小車(chē)的后退;(3)停止是左右兩個(gè)電機(jī)同時(shí)停止旋轉(zhuǎn),實(shí)現(xiàn)小車(chē)的停止;(4)右轉(zhuǎn)是右電機(jī)逆時(shí)針旋轉(zhuǎn)和左電機(jī)順時(shí)針旋轉(zhuǎn)同時(shí)工作,實(shí)現(xiàn)小車(chē)的右轉(zhuǎn);(5)左轉(zhuǎn)是左電機(jī)逆時(shí)針旋轉(zhuǎn)和右電機(jī)順時(shí)
4、針旋轉(zhuǎn)同時(shí)工作,實(shí)現(xiàn)小車(chē)的左轉(zhuǎn);實(shí)現(xiàn)不同的運(yùn)動(dòng)方式,是通過(guò)PWM信號(hào)對(duì)L293D芯片中的H橋進(jìn)行控制。電橋一端接電源,另一端接了一個(gè)三極管。三極管導(dǎo)通時(shí),電橋通過(guò)三極管接地,電機(jī)電樞中有電流通過(guò);三極管截止時(shí),電橋浮空,電機(jī)電樞中沒(méi)有電流通過(guò)。系統(tǒng)通過(guò)電橋的輸出端為轉(zhuǎn)向電機(jī)供電。通過(guò)對(duì)繼電器開(kāi)閉的控制即可控制電機(jī)的開(kāi)斷和轉(zhuǎn)速方向進(jìn)而達(dá)到控制玩具車(chē)前行與倒車(chē)的目的。2.3 系統(tǒng)原理圖 系統(tǒng)原理圖如圖2.2所示:LED顯示模塊接P1.1-1.7口;紅外遙控接P3.2口;看門(mén)狗定時(shí)器接2.7口:電機(jī)控制接P0.0-0.3口;蜂鳴器接P0.7口;功能切換鍵接P3.4口。起停運(yùn)動(dòng)L293D驅(qū)動(dòng)STC89
5、C52RCLED顯示紅外遙控復(fù)位電路光電隔離圖2.2 系統(tǒng)框圖3硬件設(shè)計(jì)3.1 89C52單片機(jī)硬件結(jié)構(gòu)89C52單片機(jī)是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個(gè)尺寸有限的集成電路芯片上。如果按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器、并行I/O口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器。它們都是通過(guò)片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對(duì)各種功能部件的控制是采用特殊功能寄存器的集中控制方式。3.2最小應(yīng)用系統(tǒng)設(shè)計(jì)3.2.1 最小系統(tǒng)用89C52單片機(jī)進(jìn)行構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可,如
6、圖3.1所示。由于集成度的限制,最小系統(tǒng)只能用作一些最小的控制單元。但也擁有一些有點(diǎn):(1)有可供用戶使用的大量I/O口線。(2)內(nèi)部存儲(chǔ)器容量有限。(3)應(yīng)用系統(tǒng)開(kāi)發(fā)具有特殊性。圖3.1 最小系統(tǒng)電路圖3.2.2 燒寫(xiě)接口電路RST置高電平,然后向單片機(jī)串行發(fā)送編程命令。P1.7(SCK)輸入移位脈沖,P1.6(MISO)串行輸出,P1.5(MOSI)串行輸入。被燒寫(xiě)的單片機(jī)一定是最小系統(tǒng)(單片機(jī)已經(jīng)接好電源,晶振,可以運(yùn)行)。如圖3.2燒寫(xiě)接口電路。圖3.2 燒錄程序電路圖3.2.3PWM脈寬調(diào)速本設(shè)計(jì)調(diào)速采用PWM控制,選用了常用的雙極式H型變換器,它是由4個(gè)三極電力晶體管和四個(gè)續(xù)流二極
7、管組成的橋式電路。圖3.3為雙極式H型可逆PWM變換器的電路原理圖。4個(gè)電力晶體管的基極驅(qū)動(dòng)電壓分為兩組。VT1和VT4同時(shí)導(dǎo)通和關(guān)斷,其驅(qū)動(dòng)電路中Ub1=Ub4;VT2和VT3同時(shí)動(dòng)作,其驅(qū)動(dòng)電壓Ub2=Ub3=-Ub1。雙極式PWM變換器的優(yōu)點(diǎn)如下:(1)電流一定連續(xù);(2)可使電動(dòng)機(jī)在四象限中運(yùn)行;(3)電機(jī)停止時(shí)有微振電流,能消除靜摩擦死區(qū);(4)低速時(shí),每個(gè)晶體管的驅(qū)動(dòng)脈沖仍較寬,有利于保證晶體管可靠導(dǎo)通;(5)低速平穩(wěn)性好,調(diào)速范圍可達(dá)20000左右。圖3.3 PWM驅(qū)動(dòng)電路圖3.2.4 電源的設(shè)計(jì)本設(shè)計(jì)的電源為車(chē)載電源。為保證電源工作可靠,單片機(jī)系統(tǒng)與動(dòng)力伺服系統(tǒng)的電源采用了大功
8、率、大容量的蓄電池;而傳感器的工作電源則采用了小巧輕便的干電池。3.3 紅外線遙控電路方便起見(jiàn),本設(shè)計(jì)直接采用電視遙控器作為紅外遙控的發(fā)射器,只需在小車(chē)上加裝紅外接收裝置即可紅外接收器的電路圖如圖3.4所示:圖3.4 紅外線遙控電路3.4 顯示電路設(shè)計(jì)本設(shè)計(jì)中用一片1位七段數(shù)碼管SM4105W80U3作顯示器,顯示數(shù)字。七段數(shù)碼管SM4105W80U3中的abcdefgdp分別連接在單片機(jī)的P2.1P2.7,分別控制各段碼,與單片機(jī)的連接如圖3.5所示。圖3.5 顯示電路圖4軟件設(shè)計(jì)4.1設(shè)計(jì)流程一個(gè)智能化的系統(tǒng),軟件設(shè)計(jì)必不可少,軟件設(shè)計(jì)是更具系統(tǒng)需求,通過(guò)編程語(yǔ)言控制單片機(jī)的行為,實(shí)現(xiàn)智能
9、控制。模塊化的程序設(shè)計(jì)有以下有點(diǎn):(1) 單個(gè)模塊比起一個(gè)完整的程序易編寫(xiě)及調(diào)試;(2)模塊可以共存,一個(gè)模塊可以被多個(gè)任務(wù)在不同條件下調(diào)用;(3) 模塊程序允許設(shè)計(jì)者分割任務(wù)和利用已有程序,為設(shè)計(jì)者提供方便。本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序中斷子程序顯示子程序算法子程序、遙控子程序構(gòu)成。本次設(shè)計(jì)采用的即是模塊化的軟件編程,各程序功能清晰、明確。軟件流程圖如圖4.1所示:NY結(jié)束自動(dòng)行駛遙控行駛遙控功能選擇開(kāi)始 開(kāi)始圖4.1 流程圖4.2 軟件抗干擾技術(shù)提高小車(chē)智能控制的可靠性,僅靠硬件抗干擾是不夠的,需要進(jìn)一步借助于軟件抗干擾技術(shù)來(lái)克服某些干擾。在單片機(jī)控制系統(tǒng)中,如能正確的采用軟件抗干擾
10、技術(shù),與硬件干擾措施構(gòu)成雙道抗干擾防線,無(wú)疑為了將大大提高控制系統(tǒng)的可靠性。經(jīng)常采用的軟件抗干擾技術(shù)是數(shù)字濾波技術(shù)、指令冗余技術(shù)、軟件陷阱技術(shù)等。4.3程序設(shè)計(jì)軟件設(shè)計(jì)采用模塊化設(shè)計(jì),思路清晰,也便于查找問(wèn)題。紅外遙控鍵位對(duì)應(yīng)子程序流程圖如圖4.2所示開(kāi)始 開(kāi)始采集紅外遙控?cái)?shù)據(jù)NY延時(shí)等待判地址碼是否相同進(jìn)行鍵位對(duì)應(yīng)結(jié)束圖4.2 紅外遙控流程圖5 不足與展望本次設(shè)計(jì)的總體效果不是很好,控制靈敏性較差,尋跡和避障功能沒(méi)有很好的實(shí)現(xiàn)。因此要設(shè)計(jì)具有優(yōu)良的調(diào)速特性,調(diào)速平滑,方便使用,控制精確,轉(zhuǎn)動(dòng)靈敏,可實(shí)現(xiàn)頻繁的無(wú)極快速起動(dòng)、制動(dòng)和轉(zhuǎn)動(dòng),需要滿足生產(chǎn)過(guò)程自動(dòng)化系統(tǒng)各種不同的特殊要求。為此,設(shè)計(jì)制
11、造高性能、高可靠性的智能小車(chē)控制系統(tǒng)有著十分重要的現(xiàn)實(shí)意義。6 設(shè)計(jì)心得經(jīng)過(guò)這次課程設(shè)計(jì)我感受頗多,在正式進(jìn)行設(shè)計(jì)之前,我參考了一些網(wǎng)上的資料,通過(guò)對(duì)這些設(shè)計(jì)方案來(lái)開(kāi)拓自己的思路,最后終于有了自己的思路。此次課程設(shè)計(jì)不僅是對(duì)前面所學(xué)單片機(jī)技術(shù)和運(yùn)動(dòng)控制理論的一種檢驗(yàn),更是對(duì)所學(xué)知識(shí)大融合,站在新的高度看待新的問(wèn)題,而且也是對(duì)自己運(yùn)用所學(xué)知識(shí)的能力的一種提高。通過(guò)這次課程設(shè)計(jì)使我明白了自己原來(lái)知識(shí)還比較欠缺,自己要學(xué)習(xí)的東西還太多。以前老是覺(jué)得自己什么東西都會(huì),什么東西都懂,有點(diǎn)眼高手低。通過(guò)這次課程設(shè)計(jì),我才明白學(xué)習(xí)是一個(gè)長(zhǎng)期積累的過(guò)程。參考文獻(xiàn)1 張毅剛,喜元.原理與應(yīng)用設(shè)計(jì)M. 北京:北京
12、市海淀區(qū)四季青印刷廠,2010.2 張毅剛.新編MCS-51單片機(jī)運(yùn)用設(shè)計(jì)M. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003.3 張義和,敏男,宏昌,長(zhǎng)春.例說(shuō)51單片機(jī)(c語(yǔ)言版)M. 北京:人民郵電出版社,2009.4 馬忠梅 籍順心 張 凱 馬 巖.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)M. 北京:北京航空航天大學(xué),2010.5 Samsung Electronics. S3C44BOX Risc microcontroller ARM instruction sheet .2002.6 郭天祥.51單片機(jī)C語(yǔ)言教程M.子工業(yè)出版社,2005年7月.7 丁元杰.單片微機(jī)原理及應(yīng)用M,械工業(yè)出版社,2005
13、年7月.8 樓然苗,光.單片機(jī)課程設(shè)計(jì)指導(dǎo)M.京: 北京航空航天大學(xué)出版社,2007.附 錄1 實(shí)物圖242 源程序清單#include #include sbit LeftLed=P20; sbit RightLed=P07; sbit FontLled=P17;sbit LeftIR=P35; sbit RightIR=P36; sbit FontIR=P37; sbit M1A=P00; sbit M1B=P01; sbit M2A=P02; sbit M2B=P03; sbit B1=P04; sbit SB1=P06; sbit IRIN=P33; unsigned char cod
14、e LedShowData=0x03,0x9F,0x25,0x0D,0x99, 0x49,0x41,0x1F,0x01,0x19;unsigned char code RecvData=0x19,0x46,0x15,0x43,0x44,0x40,0x0D,0x0E,0x00,0x0F;unsigned char IRCOM7;static unsigned int LedFlash; bit EnableLight=0; #define ShowPort P2 unsigned char temp = 1;void tingzhi() M1A=0; M1B=0; M2A=0; M2B=0;vo
15、id qianjin() M1A=1; M1B=0; M2A=1; M2B=0;void houtui() M1A=0; M1B=1; M2A=0; M2B=1;void zuozhuan() M1A=0; M1B=1; M2A=1; M2B=0;void youzhuan() M1A=1; M1B=0; M2A=0; M2B=1;void Delay1ms(unsigned int i) unsigned char j,k; do j = 10; do k = 50; do _nop_(); while(-k); while(-j); while(-i); void delay_nus(un
16、signed int i) i=i/10; while(-i); void delay_nms(unsigned int n) n=n+1; while(-n) delay_nus(900); void delayms(unsigned char x) unsigned char i; while(x-) for (i = 0; i 3) temp = 1; switch(temp) case 1:ShowPort= LedShowData1;Robot_Traction();EX1 = 0;break;case 2: ShowPort= LedShowData2;Robot_Avoidanc
17、e();EX1 = 0;break;case 3: ShowPort = LedShowData3;EX1 = 1;break; 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;j4;j+) for (k=0;k=30) EX1=1; return; IRCOMj=IRCOMj 1; if (N=8) IRCOMj = IRCOMj | 0x80; N=0; if (IRCOM2!=IRCOM3) EX1=1; return; for(j=0;j10;j+) if(IRCOM2=RecvDataj) ControlCar_yaokong(j); EX1 = 1;