




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
./信息工程學(xué)院CDIO指導(dǎo)老師:申小頌組員:建、白蘭、曉曦、勛、湯泉、馬娜、艷鵬20.摘要本題設(shè)計(jì)一個(gè)智能滅火小車,以宏晶公司生產(chǎn)的STC12C5A60S2芯片為核心,輔助必要的外圍電路〔包括舵機(jī)控制、電機(jī)控制、紅外接收、驅(qū)動(dòng),利用C語言編程,實(shí)現(xiàn)了智能車自動(dòng)尋找火源〔以下簡稱自動(dòng)模式以及由遙控方式尋找火源〔以下簡稱遙控模式兩種滅火模式,在自動(dòng)模式下,小車能夠自己尋找火源并主動(dòng)向火源靠近;在遙控模式下,小車能由遙控者控制尋找火源并進(jìn)行滅火。關(guān)鍵詞:滅火STC12C5A.目錄1系統(tǒng)方案11.1電源模塊11.2舵機(jī)驅(qū)動(dòng)模塊11.3電機(jī)驅(qū)動(dòng)的論證與選擇11.3主控芯片的論證與選擇21.4火源尋找模塊的論證與選擇31.5遙控模塊的論證與選擇32系統(tǒng)理論分析與計(jì)算32.1電機(jī)控制電路的分析32.1.1電機(jī)驅(qū)動(dòng)控制的分析3脈沖寬度的分析42.2舵機(jī)原理的分析42.2.1舵機(jī)轉(zhuǎn)動(dòng)角度原理42.3紅外編碼原理的分析52.3.1編碼原理53電路與程序設(shè)計(jì)63.1電路的設(shè)計(jì)6系統(tǒng)總體框圖6單片機(jī)系統(tǒng)框圖與電路原理圖6電機(jī)驅(qū)動(dòng)系統(tǒng)框圖與電路原理圖7紅外接收原理圖8電源93.2程序的設(shè)計(jì)9程序功能描述與設(shè)計(jì)思路9程序流程圖9附錄1:系統(tǒng)電路原理圖13.智能滅火機(jī)器人1系統(tǒng)方案本系統(tǒng)主要由電源模塊、電機(jī)驅(qū)動(dòng)模塊、舵機(jī)驅(qū)動(dòng)模塊、火源尋找模塊、遙控模塊、主控芯片組成,下面分別論證這幾個(gè)模塊的選擇。1.1電源模塊方案一:采用1117穩(wěn)壓芯片將電池7.8V電壓穩(wěn)到5V供給單片機(jī)、紅外及舵機(jī)。此方案設(shè)計(jì)簡單,成本低。但是1117芯片最大承受電流不到1A,不能穩(wěn)定供給給紅外及舵機(jī)。方案二:采用2596芯片制作的開關(guān)電源為整個(gè)系統(tǒng)供電,2596芯片最大輸出電流達(dá)3A,可以供給整個(gè)系統(tǒng)足夠電流。但是此電路結(jié)構(gòu)復(fù)雜,成本高。且用一個(gè)電源芯片會(huì)造成相互影響。特別是舵機(jī)、電機(jī)轉(zhuǎn)動(dòng)可能導(dǎo)致對(duì)單片機(jī)供電不穩(wěn)定。方案三:采用雙電源供電,利用1117芯片只跟單片機(jī)供電。電機(jī)模塊、舵機(jī)模塊以及紅外模塊通過7805線性電源芯片為其供電。此方案電路結(jié)構(gòu)簡單,成本適中,并且減小了各個(gè)模塊間的相互影響,增強(qiáng)系統(tǒng)穩(wěn)定性。綜上所述,分析各個(gè)方案有確定及實(shí)際應(yīng)用情況,我們選擇方案三作為電源模塊方案。1.2舵機(jī)驅(qū)動(dòng)模塊舵機(jī)轉(zhuǎn)動(dòng)自身會(huì)產(chǎn)生微弱電流,反饋給電源模塊造成電壓不穩(wěn)定。所以不能與單片機(jī)用同一個(gè)電源芯片,我們?cè)陔娫茨K選擇時(shí)選擇雙電源供電,解決了這一問題。舵機(jī)直接由7805線性電源芯片供電。1.3電機(jī)驅(qū)動(dòng)的論證與選擇方案一:采用L298N驅(qū)動(dòng)直流電動(dòng)機(jī),該芯片是利用TTL電平進(jìn)行控制,對(duì)電機(jī)的操作方便,通過改變芯片控制端的輸入電平,即可以對(duì)電機(jī)進(jìn)行正反轉(zhuǎn)操作,很方便單片機(jī)的操作,亦能滿足直流減速電機(jī)的要求。采用L298N少占用的空間且不容易產(chǎn)生信號(hào)干擾<電機(jī)驅(qū)動(dòng)如圖1.3所示>。圖1.3電機(jī)驅(qū)動(dòng)電路方案二:采用分立元件組成的平衡式驅(qū)動(dòng)電路,這種電路可以由單片機(jī)直接對(duì)其進(jìn)行操作,但由于分立元件占用的空間比較大,容易產(chǎn)生信號(hào)干擾,且還要配上兩個(gè)繼電器,考慮到小車運(yùn)轉(zhuǎn)穩(wěn)定性問題,此方案不夠理想。綜合考慮采用方案一:采用L298N驅(qū)動(dòng)直流電動(dòng)機(jī)。1.3主控芯片的論證與選擇方案一:采用Atmel公司的AT89c52RC單片機(jī)作為系統(tǒng)的控制器。單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活,可用軟件較簡單的實(shí)現(xiàn)各種算術(shù)和邏輯控制,并且由于其成本低,體積小和功耗低等優(yōu)點(diǎn),使其在各個(gè)領(lǐng)域應(yīng)用廣泛;另外,由于本設(shè)計(jì)中會(huì)用到較多的算術(shù)運(yùn)算,所以對(duì)本系統(tǒng)來說非常適合利用單片機(jī)作為控制器。方案二:采用Atmel公司的STC12C5A60S2單片機(jī)作為系統(tǒng)的控制器。綜合考慮,本系統(tǒng)所需處理的信息量比較大,并且要用到AD采集模塊,所以采用方案二作為本系統(tǒng)控制芯片。1.4火源尋找模塊的論證與選擇方案一:采用溫度傳感器作為火源尋找模塊的主要傳感器,利用火源外圍溫度比常溫高這一特點(diǎn)尋找火源。此方案雖然易于理解但是溫度傳感器穩(wěn)定性差,在不同室溫下門限值要求不同,適應(yīng)性差。并且火源外圍溫度變化圍窄,不適合遠(yuǎn)距離尋找火源。方案二:采用紅外接收頭作為火源尋找模塊的主要傳感器,利用接收紅外光的不同尋找火源,經(jīng)試驗(yàn),紅外接收頭在對(duì)準(zhǔn)火源時(shí)電阻變化很大,很利于信號(hào)采集。而且電路結(jié)構(gòu)簡單,編程容易。缺點(diǎn)在于適應(yīng)性差,等熱光源對(duì)其影響較大。綜合考慮所有因素,我們選擇方案二作為火源尋找模塊的方案。1.5遙控模塊的論證與選擇 方案一:采用24L01無線射頻收發(fā)芯片作為遙控模塊主芯片,此芯片有效距離長并且外界對(duì)其干擾小。但是成本高,需要兩塊芯片作為發(fā)送和接受,并且電路復(fù)雜,編程困難。不容易調(diào)試,出問題不易找出問題所在。 方案二:利用紅外編碼遙控,此方案結(jié)構(gòu)簡單,只需一個(gè)普通紅外遙控器及0038接收頭就能實(shí)現(xiàn)遙控,成本低,編程容易,調(diào)試方便。缺點(diǎn)在于外界影響比較大。 綜合考慮兩種方案的優(yōu)缺點(diǎn)以及實(shí)際情況,我們選擇方案二作為最終方案。2系統(tǒng)理論分析與計(jì)算2.1電機(jī)控制電路的分析電機(jī)驅(qū)動(dòng)控制的分析L298N是SGS公司的產(chǎn)品,部含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相電機(jī)專用驅(qū)動(dòng)器,即含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可以驅(qū)動(dòng)46V、2A一下的電機(jī)。表1LIN1IN2ENA電機(jī)狀態(tài)XX0停止101順時(shí)針011逆時(shí)針000停止110停止脈沖寬度的分析脈沖寬度調(diào)制〔PWM是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。通過高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼。PWM信號(hào)仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有<ON>,要么完全無<OFF>。電壓或電流源是以一種通<ON>或斷<OFF>的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開的時(shí)候。只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼。2.2舵機(jī)原理的分析舵機(jī)轉(zhuǎn)動(dòng)角度原理控制電路板接受來自信號(hào)線的控制信號(hào)〔具體信號(hào)待會(huì)再講,控制電機(jī)轉(zhuǎn)動(dòng),電機(jī)帶動(dòng)一系列齒輪組,減速后傳動(dòng)至輸出舵盤。舵機(jī)的輸出軸和位置反饋電位計(jì)是相連的,舵盤轉(zhuǎn)動(dòng)的同時(shí),帶動(dòng)位置反饋電位計(jì),電位計(jì)將輸出一個(gè)電壓信號(hào)到控制電路板,進(jìn)行反饋,然后控制電路板根據(jù)所在位置決定電機(jī)的轉(zhuǎn)動(dòng)方向和速度,從而達(dá)到目標(biāo)停止。舵機(jī)的基本結(jié)構(gòu)是這樣,但實(shí)現(xiàn)起來有很多種。例如電機(jī)就有有刷和無刷之分,齒輪有塑料和金屬之分,輸出軸有滑動(dòng)和滾動(dòng)之分,殼體有塑料和鋁合金之分,速度有快速和慢速之分,體積有大中小三種之分等等,組合不同,價(jià)格也千差萬別。例如,其中小舵機(jī)一般稱作微舵,同種材料的條件下是中型的一倍多,金屬齒輪是塑料齒輪的一倍多。需要根據(jù)需要選用不同類型。舵機(jī)的輸入線共有三條,紅色中間,是電源線,一邊黑色的是地線,這輛根線給舵機(jī)提供最基本的能源保證,主要是電機(jī)的轉(zhuǎn)動(dòng)消耗。電源有兩種規(guī)格,一是4.8V,一是6.0V,分別對(duì)應(yīng)不同的轉(zhuǎn)矩標(biāo)準(zhǔn),即輸出力矩不同,6.0V對(duì)應(yīng)的要大一些,具體看應(yīng)用條件;另外一根線是控制信號(hào)線,Futaba的一般為白色,JR的一般為桔黃色。另外要注意一點(diǎn),SANWA的某些型號(hào)的舵機(jī)引線電源線在邊上而不是中間,需要辨認(rèn)。但記住紅色為電源,黑色為地線,一般不會(huì)搞錯(cuò)。舵機(jī)的控制信號(hào)為周期是20ms的脈寬調(diào)制〔PWM信號(hào),其中脈沖寬度從0.5ms-2.5ms,相對(duì)應(yīng)舵盤的位置為0-180度,呈線性變化。也就是說,給它提供一定的脈寬,它的輸出軸就會(huì)保持在一個(gè)相對(duì)應(yīng)的角度上,無論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個(gè)另外寬度的脈沖信號(hào),它才會(huì)改變輸出角度到新的對(duì)應(yīng)的位置上。舵機(jī)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期20ms,寬度1.5ms的基準(zhǔn)信號(hào),有一個(gè)比較器,將外加信號(hào)與基準(zhǔn)信號(hào)相比較,判斷出方向和大小,從而產(chǎn)生電機(jī)的轉(zhuǎn)動(dòng)信號(hào)。由此可見,舵機(jī)是一種位置伺服的驅(qū)動(dòng)器,轉(zhuǎn)動(dòng)圍不能超過180度,適用于那些需要角度不斷變化并可以保持的驅(qū)動(dòng)當(dāng)中。2.3紅外編碼原理的分析2.3.1編碼原理WD6122所發(fā)射的一幀碼含有一個(gè)引導(dǎo)碼,16位的用戶編碼和8位的鍵數(shù)據(jù)碼、鍵數(shù)據(jù)碼的反碼也同時(shí)被傳送。碼型結(jié)構(gòu)如下:引導(dǎo)碼由一個(gè)9ms的載波波形和4.5ms的關(guān)斷時(shí)間構(gòu)成,它作為隨后發(fā)射的碼的引導(dǎo),這樣當(dāng)接收系統(tǒng)是由微處理器構(gòu)成的時(shí)候,能更有效地處理碼的接收與檢測(cè)及其它各項(xiàng)控制之間的時(shí)序關(guān)系。編碼采用脈沖位置調(diào)制方式〔PPM。利用脈沖之間的時(shí)間間隔來區(qū)分"0”和"1”。每次83電路與程序設(shè)計(jì)3.1電路的設(shè)計(jì)系統(tǒng)總體框圖系統(tǒng)總體框圖如圖所示主系統(tǒng)板主系統(tǒng)板紅外接收遙控接收舵機(jī)驅(qū)動(dòng)電機(jī)驅(qū)動(dòng)遙控板系統(tǒng)總體框圖單片機(jī)系統(tǒng)框圖與電路原理圖1、單片機(jī)最小系統(tǒng)框圖單片機(jī)最小系統(tǒng)采用宏晶公司的STC12C5A60S2單片機(jī),核心板采用5V輸入,采用12M有源晶振。核心板13只I/O口引出,便于與外圍器件的連接及系統(tǒng)擴(kuò)展。單片機(jī)最小系統(tǒng)框圖如圖圖1:單片機(jī)系統(tǒng)原理圖電機(jī)驅(qū)動(dòng)系統(tǒng)框圖與電路原理圖
L298N部包含4信道邏輯驅(qū)動(dòng)電路,是一種二相和四相步進(jìn)電機(jī)的專用驅(qū)動(dòng)器,可同時(shí)驅(qū)動(dòng)2個(gè)二相或1個(gè)四相步進(jìn)電機(jī),含二個(gè)H-Bridge的高電壓、大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)。TL邏輯準(zhǔn)位信號(hào),可驅(qū)動(dòng)46V、2A以下的步進(jìn)電機(jī),且可以直接透過電源來調(diào)節(jié)輸出電壓從而控制電機(jī)轉(zhuǎn)速。原理圖如圖2所示。圖2:電機(jī)驅(qū)動(dòng)原理圖紅外接收原理圖本系統(tǒng)一共設(shè)置了2個(gè)紅外接收頭,左右各一個(gè)用于火源尋找。圖3:紅外接收原理圖電源1117電源:7805電源:3.2程序的設(shè)計(jì)程序功能描述與設(shè)計(jì)思路1、程序功能描述程序包括舵機(jī)角度控制,電機(jī)轉(zhuǎn)速控制,紅外解碼,紅外接收等功能模塊。實(shí)現(xiàn)兩種尋火模式。在遙控模式下,紅外接收模塊停止工作,機(jī)器人只由遙控者控制前往火源出進(jìn)行滅火。在自動(dòng)模式下,機(jī)器人自主尋找火源,自主前往火源處,此時(shí)遙控者隨時(shí)可以中斷自動(dòng)模式改為遙控模式。程序流程圖1、主程序流程圖啟動(dòng)啟動(dòng)初始化遙控模式自動(dòng)模式模式選擇遙控器控制小車滅火紅外接收模塊控制小車停止.附錄1:系統(tǒng)電路原理圖系統(tǒng)電路PCB紅外接模塊PCB驅(qū)動(dòng)模塊PCB附件二:程序代碼.#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsfrP1ASF=0X9D;//P1口選擇功能寄存器sfrADC_CONTR=0XBC;//ADC控制寄存器sfrADC_RES=0XBD;//ADC轉(zhuǎn)換結(jié)果寄存器高sfrADC_RESL=0XBE;//ADC轉(zhuǎn)換結(jié)果寄存器低sfrAUXR1=0XA2;//ADC轉(zhuǎn)換結(jié)果調(diào)整位sfrCMOD=0xD9;//PCA工作模式寄存器sfrCCON=0xD8;//PCA控制寄存器//sfrCR=CCON^6;sfrCCAPM0=0xDA; //PCA0比較捕獲寄存器sfrCCAPM1=0xDB;//PCA1比較捕獲寄存器sfrCL=0xE9;//PCA的十六位計(jì)數(shù)器低八位CLsfrCH=0xF9; //PCA的十六位計(jì)數(shù)器高八位CHsfrCCAP0L=0xEA; //PCA捕捉比較寄存器sfrCCAP1L=0xEB;sfrCCAP0H=0xFA;sfrCCAP1H=0xFb;sfrPCA_PWM0=0xF2;//PCA模塊PWM寄存器sfrPCA_PWM1=0xF3;//PCA模塊PWM寄存器ucharLCD_ID_1[16]={"miehuoxiaoche"};ucharLCD_ID_2[16]={"IRCODE:--H"};uintADC_Result[3]; //AD轉(zhuǎn)換結(jié)果存儲(chǔ)ucharCYCLE; //定義周期ucharPWM_ON=0; //定義低電平時(shí)間ucharIRCOM[7];ucharkeys=0xff,x;intmie=0;voidPWM_Init<void>;voidADC_init0<void>; //P1.0口AD轉(zhuǎn)換初始化voidADC_init1<void>;//P1.1口AD轉(zhuǎn)換初始化voidADC_init2<void>; //P1.2口AD轉(zhuǎn)換初始化voidDelay<uintx>;//延時(shí)函數(shù)voiddelay<ucharx>;//x*0.14MSvoiddelay1<intms>;voidDelay<uintz>;//延時(shí)函數(shù)voiddang<>;sbitdj1in1=P1^3; //電機(jī)接口1IN1sbitdj1in2=P1^4; //電機(jī)接口1IN2sbitpz1=P3^2; //碰撞開關(guān)接口1sbitpz2=P3^4; //碰撞開關(guān)接口2sbitIRIN=P3^3;//紅外接收器數(shù)據(jù)線sbitPWM=P3^6; //定義舵機(jī)的控制端口sbitfeng=P2^0;sbitE=P2^7; //1602使能引腳sbitRW=P2^6; //1602讀寫引腳sbitRS=P2^5; //1602數(shù)據(jù)/命令選擇引腳sbitring=P2^4;voidqian<>;voidhou<>;voidzuo<>;voidyou<>;voidstop<>;voidzidong<>;voidmiehuokai<>;voidmiehuoguan<>;/*********************************************************************名稱:delay<>*功能:延時(shí),延時(shí)時(shí)間大概為140US。*輸入:無*輸出:無***********************************************************************/voidDelay2<>{ inti,j; for<i=0;i<=10;i++> for<j=0;j<=2;j++>;}/*********************************************************************名稱:enable<uchardel>*功能:1602命令函數(shù)*輸入:輸入的命令值*輸出:無***********************************************************************/voidenable<uchardel>{ P0=del; RS=0; RW=0; E=0; Delay2<>; E=1; Delay2<>;}/*********************************************************************名稱:write<uchardel>*功能:1602寫數(shù)據(jù)函數(shù)*輸入:需要寫入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidwrite<uchardel>{ P0=del; RS=1; RW=0; E=0; Delay2<>; E=1; Delay2<>;}/*********************************************************************名稱:L1602_init<>*功能:1602初始化,請(qǐng)參考1602的資料*輸入:無*輸出:無***********************************************************************/voidL1602_init<void>{ enable<0x01>; enable<0x38>; enable<0x0c>; enable<0x06>; enable<0xd0>;}/*********************************************************************名稱:L1602_char<ucharhang,ucharlie,charsign>*功能:改變液晶中某位的值,如果要讓第一行,第五個(gè)字符顯示"b",調(diào)用該函數(shù)如下 L1602_char<1,5,'b'>*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidL1602_char<ucharhang,ucharlie,charsign>{ uchara; if<hang==1>a=0x80; if<hang==2>a=0xc0; a=a+lie-1; enable<a>; write<sign>;}/*********************************************************************名稱:L1602_string<ucharhang,ucharlie,uchar*p>*功能:改變液晶中某位的值,如果要讓第一行,第五個(gè)字符開始顯示"abcdef",調(diào)用該函數(shù)如下 L1602_string<1,5,"abcdef;">*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidL1602_string<ucharhang,ucharlie,uchar*p>{ uchara; if<hang==1>a=0x80; if<hang==2>a=0xc0; a=a+lie-1; enable<a>; while<1> { if<*p=='\0'>break; write<*p>; p++; }}voidTime0<void>{ TMOD|=0x01; //定時(shí)器設(shè)置1msin12Mcrystal TH0=<65536-250>/256; TL0=<65536-250>%256;//定時(shí)0.25mS //打開中斷 TR0=1; //定時(shí)器打開}voidTime1<void>{ TMOD|=0x01; //定時(shí)器設(shè)置1msin12Mcrystal TH0=<65536-250>/256; TL0=<65536-250>%256;//定時(shí)0.25mS //打開中斷 TR0=1; //定時(shí)器打開}/*******************************************************************/main<>{ Time0<>;IE=0x86;//允許總中斷中斷,使能INT1外部中斷TCON=0x10;//觸發(fā)方式為脈沖負(fù)邊沿觸發(fā) CYCLE=81; PWM=0;IRIN=1;//I/O口初始化 feng=0;delay1<10>;//延時(shí)L1602_init<>;//初始化LCD L1602_string<1,1,LCD_ID_1>; L1602_string<2,1,LCD_ID_2>; PWM_Init<>;while<1>{ switch<keys> { case 0x45: zidong<>;break; case 0x40: qian<>;break; case 0x19: hou<>;break; case 0x07: zuo<>;break; case 0x09: you<>;break; case 0x15: stop<>;break; case 0x47: miehuokai<>;break; case 0x43: miehuoguan<>;break; case 0x0C: x=0X60;break; case 0x18: x=0X50;break; case 0x5E: x=0X40;break; default:break; }}}//endmain/**********************************************************/voidIR_IN<>interrupt2using0{unsignedcharj,k,N=0;EX1=0; delay<15>; if<IRIN==1>{EX1=1; return; }//確認(rèn)IR信號(hào)出現(xiàn)while<!IRIN>//等IR變?yōu)楦唠娖?跳過9ms的前導(dǎo)低電平信號(hào)。{delay<1>;}for<j=0;j<4;j++>//收集四組數(shù)據(jù){for<k=0;k<8;k++>//每組數(shù)據(jù)有8位{while<IRIN>//等IR變?yōu)榈碗娖?跳過4.5ms的前導(dǎo)高電平信號(hào)。{delay<1>;}while<!IRIN>//等IR變?yōu)楦唠娖絳delay<1>;}while<IRIN>//計(jì)算IR高電平時(shí)長{delay<1>;N++;if<N>=30> {EX1=1; return;}//0.14ms計(jì)數(shù)過長自動(dòng)離開。}//高電平計(jì)數(shù)完畢IRCOM[j]=IRCOM[j]>>1;//數(shù)據(jù)最高位補(bǔ)"0if<N>=8>{IRCOM[j]=IRCOM[j]|0x80;}//數(shù)據(jù)最高位補(bǔ)"1N=0;}//endfork}//endforjkeys=IRCOM[2];if<IRCOM[2]!=~IRCOM[3]>{EX1=1;return;}IRCOM[5]=IRCOM[2]&0x0F;//取鍵碼的低四位IRCOM[6]=IRCOM[2]>>4;//右移4次,高四位變?yōu)榈退奈籭f<IRCOM[5]>9>{IRCOM[5]=IRCOM[5]+0x37;}else IRCOM[5]=IRCOM[5]+0x30;if<IRCOM[6]>9>{IRCOM[6]=IRCOM[6]+0x37;}else IRCOM[6]=IRCOM[6]+0x30;//////////////////////////L1602_char<2,10,IRCOM[5]>;L1602_char<2,9,IRCOM[6]>;//beep<>;EX1=1;}voidtim<void>interrupt1using1{ staticunsignedcharcount; TH0=<65536-250>/256; TL0=<65536-250>%256;//定時(shí)1mS if<count==PWM_ON> { PWM=1; //直流電機(jī)轉(zhuǎn) } count++; if<count==CYCLE> { count=0; if<PWM_ON!=0>//如果左右時(shí)間是0保持原來狀態(tài) { PWM=0;//直流電機(jī)不轉(zhuǎn) } }}/**********************************************************/voiddelay<unsignedcharx>//x*0.14MS{unsignedchari,j;while<x-->{for<j=0;j<12;j++>{for<i=0;i<13;i++>{}}}}/**********************************************************/voiddelay1<intms>{unsignedchary;while<ms-->{for<y=0;y<250;y++>{_nop_<>;_nop_<>;_nop_<>;_nop_<>;}}}voidqian<>{ PWM_ON=73;CCAP0H=CCAP0L=x; CCAP1H=CCAP1L=0xff;}voidhou<>{ CCAP1H=CCAP1L=x; CCAP0H=CCAP0L=0xff;}voidyou<>{ PWM_ON=71;}voidzuo<>{ PWM_ON=75;}voidstop<>{ CCAP0H=CCAP0L=0xff; CCAP1H=CCAP0L=0xff;}voidzidong<>{ CCAP0H=CCAP1L=0x50; CCAP1H=CCAP1L=0xff; ADC_init0<>; _nop_<>; _nop_<>; ADC_init1<>; _nop_<>; _nop_<>; ADC_init2<>; _nop_<>; _nop_<>; CCAP0H=CCAP0L=0x50; CCAP1H=CCAP1L=0xff; if<ADC_Result[0]>ADC_Result[1]+50> { PWM_ON=75; ring=0; } elseif<ADC_Result[1]>ADC_Result[0]+50> { PWM_ON=71; ring=0; } else { PWM_ON=73; } /*if<<ADC_Result[2]>ADC_Result[1]>&&<ADC_Result[2]>ADC_Result[0]>> { PWM_ON=71; }*/}voidPWM_Init<void> //PWM初始化程序{ CCON=0; CL=0; CH=0; CMOD=0x02; //計(jì)數(shù)模式、計(jì)數(shù)時(shí)鐘選擇 CCAP0H=CCAP0L=0Xff; CCAPM0=0x42; //使能PCA模塊工作在PWM模塊 CCAP1H=CCAP1L=0Xff; //PCA_PWM1=0x03; CCAPM1=0x42; //使能PCA模塊工作在PWM模塊 CCON=0X40;} /**************P1.0口AD初始化程序***********************************/voidADC_init0<void> //AD轉(zhuǎn)換初始化{ uintADC_Result1,ADC_Result2,a; ADC_RES=0; ADC_RESL=0; for<a=0;a<20;a++>; P1ASF=0X07;//X選擇P1.0作為ADC轉(zhuǎn)換輸入通道 ADC_CONTR=0X80; //打開ADC轉(zhuǎn)換電源 _nop_<>; _nop_<>; AUXR1=0X04; //將高兩位存放在寄存器ADC_RES,低八位存放在寄存器ADC_RESL中 ADC_CONTR|=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025實(shí)踐中如何啟動(dòng)法律程序確認(rèn)合同終止工程
- 年度工作回顧與展望-4
- 2025標(biāo)準(zhǔn)版汽車抵押借款合同
- 鏟車維修臨時(shí)合同范本
- 高一語文新學(xué)案:第二單元孔雀東南飛
- 2025智能辦公軟件銷售合同
- 2025建筑施工合同范本(試行)
- 2024年徐州市教育局直屬學(xué)校招聘真題
- 2024年寧波大學(xué)招聘真題
- 2024年隴南市國控資本投資管理集團(tuán)有限公司招聘筆試真題
- 軟件詳細(xì)設(shè)計(jì)說明書(例)
- 三星堆文化遺跡中國風(fēng)動(dòng)態(tài)PPT
- DB44-T 2283-2021水利工程生態(tài)設(shè)計(jì)導(dǎo)則1-(高清現(xiàn)行)
- XX縣城區(qū)新建公廁、生活垃圾中轉(zhuǎn)站項(xiàng)目實(shí)施方案可行性研究報(bào)告
- 哈薩克斯坦鐵路車站代碼
- 利潤分配專項(xiàng)審計(jì)
- 螺紋的標(biāo)注-PPT課件
- 勇者斗惡龍之怪獸仙境圖表資料合集(合成表技能)
- 履帶式液壓挖掘機(jī)挖掘機(jī)構(gòu)設(shè)計(jì)
- 原材料進(jìn)廠檢驗(yàn)管理制度及檢驗(yàn)規(guī)程
- 川崎病診治指南最新ppt課件
評(píng)論
0/150
提交評(píng)論