版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)控制技術(shù)課 程 設(shè) 計(jì)單閉環(huán)直流電機(jī)調(diào)速系統(tǒng)1 設(shè)計(jì)目的計(jì)算機(jī)控制技術(shù)課程是集微機(jī)原理、計(jì)算機(jī)技術(shù)、控制理論、電子電路、自動(dòng)控制系統(tǒng)、工業(yè)控制過(guò)程等課程基礎(chǔ)知識(shí)一體的應(yīng)用性課程,具有很強(qiáng)的實(shí)踐性,通過(guò)這次課程設(shè)計(jì)進(jìn)一步加深對(duì)計(jì)算機(jī)控制技術(shù)課程的理解,掌握計(jì)算機(jī)控制系統(tǒng)硬件和軟件的設(shè)計(jì)思路,以及對(duì)相關(guān)課程理論知識(shí)的理解和融會(huì)貫通,提高運(yùn)用已有的專業(yè)理論知識(shí)分析實(shí)際應(yīng)用問(wèn)題的能力和解決實(shí)際問(wèn)題的技能,培養(yǎng)獨(dú)立自主、綜合分析與創(chuàng)新性應(yīng)用的能力。2 設(shè)計(jì)任務(wù)2.1 設(shè)計(jì)題目單閉環(huán)直流電機(jī)調(diào)速系統(tǒng)實(shí)現(xiàn)一個(gè)單閉環(huán)直流電機(jī)調(diào)壓調(diào)速控制,用鍵盤實(shí)現(xiàn)對(duì)直流電機(jī)的起/停、正/反轉(zhuǎn)控制,速度調(diào)節(jié)要求既可用鍵盤
2、數(shù)字量設(shè)定也可用電位器連續(xù)調(diào)節(jié),需要有速度顯示電路。擴(kuò)展要求能夠利用串口通信方式在PC上設(shè)置和顯示速度曲線并且進(jìn)行數(shù)據(jù)保存和查看。2.2 設(shè)計(jì)要求2.2.1 基本設(shè)計(jì)要求(1)根據(jù)系統(tǒng)控制要求設(shè)計(jì)控制整體方案;包括微處理芯片選用,系統(tǒng)構(gòu)成框圖,確定參數(shù)測(cè)范圍等;(2)選用參數(shù)檢測(cè)元件及變送器;系統(tǒng)硬件電路設(shè)計(jì),包括輸入接口電路、邏輯電路、操作鍵盤、輸出電路、顯示電路;(3)建立數(shù)學(xué)模型,確定控制算法;(4)設(shè)計(jì)功率驅(qū)動(dòng)電路;(5)制作電路板,搭建系統(tǒng),調(diào)試。2.2.2 擴(kuò)展設(shè)計(jì)要求(1)在已能正常運(yùn)行的微計(jì)算機(jī)控制系統(tǒng)的基礎(chǔ)上,通過(guò)串口與PC連接;(2)編寫人機(jī)界面控制和顯示程序;編寫微機(jī)通信
3、程序;實(shí)現(xiàn)人機(jī)實(shí)時(shí)交互。3方案比較方案一:采用繼電器對(duì)電動(dòng)機(jī)的開或關(guān)進(jìn)行控制。這個(gè)方案的優(yōu)點(diǎn)是電路較為簡(jiǎn)單,缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢、機(jī)械結(jié)構(gòu)易損壞、壽命較短、可靠性不高。方案二:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動(dòng)機(jī)的分壓,從而達(dá)到調(diào)速的目的。但是電阻網(wǎng)絡(luò)只能實(shí)現(xiàn)有級(jí)調(diào)速,而數(shù)字電阻的元器件價(jià)格比較昂貴。更主要的問(wèn)題在于一般電動(dòng)機(jī)的電阻很小,但電流很大;分壓不僅會(huì)降低效率,而且實(shí)現(xiàn)很困難。方案三:采用由電力電子器件組成的H型PWM電路。用單片機(jī)控制電力電子器件使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電動(dòng)機(jī)轉(zhuǎn)速。這種電路由于工作在電力電子器件的飽和截止模式下,效率非常高;H型電路保證了可以簡(jiǎn)單地實(shí)
4、現(xiàn)轉(zhuǎn)速和方向的控制;電子開關(guān)的速度很快,穩(wěn)定性也極佳,是一種廣泛采用的PWM調(diào)速技術(shù)。兼于方案三調(diào)速特性優(yōu)良、調(diào)整平滑、調(diào)整范圍廣、過(guò)載能力大,因此本設(shè)計(jì)采用方案三。4單閉環(huán)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)4.1單閉環(huán)調(diào)速原理4.1.1 閉環(huán)系統(tǒng)框圖4.1.2 調(diào)速原理直流電機(jī)轉(zhuǎn)速有:常數(shù)Ke Ka不變,Ra比較小。 所以調(diào)節(jié)Ua就能調(diào)節(jié)n。4.2 系統(tǒng)框圖4.3系統(tǒng)基本原理通過(guò)鍵盤按鍵控制電機(jī)的啟停、正反轉(zhuǎn)、加速和減速,單片機(jī)接收鍵盤信號(hào)與反饋信號(hào)進(jìn)行比較處理,也可以通過(guò)電位器調(diào)速,將模擬調(diào)節(jié)量轉(zhuǎn)換為數(shù)字量后送給單片機(jī)處理,電機(jī)的速度由傳感器測(cè)量后回饋給單片機(jī)處理,單片機(jī)接收到各路信號(hào)后控制顯示器顯示特
5、定的內(nèi)容,同時(shí)控制電機(jī)驅(qū)動(dòng)電路工作,從而控制直流電機(jī)的轉(zhuǎn)速。5系統(tǒng)硬件電路設(shè)計(jì)5.1電機(jī)驅(qū)動(dòng)電路電機(jī)驅(qū)動(dòng)電路主要有L298N和四個(gè)二極管組成,其中PWM驅(qū)動(dòng)原理如下 i. Ud是有效值,調(diào)節(jié)占空比就能調(diào)節(jié)Ud進(jìn)而調(diào)節(jié)n.ii. PWM驅(qū)動(dòng)器由L298來(lái)實(shí)現(xiàn)的,L298是SGS公司的產(chǎn)品,比較常見的是15腳Multiwatt封裝的L298N,內(nèi)部同樣包含4通道邏輯驅(qū)動(dòng)電路。可以方便的驅(qū)動(dòng)兩個(gè)直流電機(jī),或一個(gè)兩相步進(jìn)電機(jī)。3iii 如圖4,L298的封裝和功能表。通過(guò)改變C、D的狀態(tài)來(lái)改變電機(jī)的正反轉(zhuǎn)和急停和調(diào)節(jié)占空比進(jìn)而調(diào)速;Ven直接接高電位。是對(duì)C、D分別輸出0和PWM波或者PWM波和0來(lái)進(jìn)
6、行的,初始化的占空比為50%。5.2 測(cè)速電路圖5測(cè)速整形電路測(cè)速電路用自制的光電編碼盤,通過(guò)紅外接收發(fā)射管和施密特觸發(fā)器組成。當(dāng)接收管接收到發(fā)射管發(fā)出的低電平信號(hào),再通過(guò)施密特整形送給單片機(jī)的INT0,進(jìn)而通過(guò)程序進(jìn)行計(jì)算速度。5.3 顯示電路圖6 LCD顯示電路LCD 1602顯示電路用于顯示轉(zhuǎn)速設(shè)定值與當(dāng)前值。5.4 鍵盤圖7鍵盤控制電路0-9按鍵為數(shù)值的設(shè)定,CLR為后退按鍵,ENT為確定鍵,KEY為鍵盤輸入按鍵,REP為電位器調(diào)速按鍵,RUN為運(yùn)行/正轉(zhuǎn)按鍵,F(xiàn)為運(yùn)行/反轉(zhuǎn)按鍵, STOP為停止按鍵。5.5 模擬調(diào)速電路圖8 模擬調(diào)速電路模擬調(diào)速電路由電位器分壓輸出給定電壓,再經(jīng)過(guò)A
7、D轉(zhuǎn)換器ADC0831輸入的單片機(jī)中。5.6 電源電路5圖9 電源電路6V /0.5A的外部輸入電壓Vin經(jīng)過(guò)由MC7805ACK與兩個(gè)由470Pf、一個(gè)100uf的電解電容組成的穩(wěn)壓電路,穩(wěn)壓成5V的電壓,供系統(tǒng)使用。5.7 串口通信電路圖10 串口通信電路主要用來(lái)燒寫程序進(jìn)去單片機(jī)。MAX232將ttl電平轉(zhuǎn)換成可以和電腦串口匹配的電壓。從而與PC機(jī)進(jìn)行通信。6圖11 STC-ISP上圖位stc單片機(jī)專用ISp下載軟件。5.8 晶振和復(fù)位電路圖12 晶振和復(fù)位電路左邊為復(fù)位電路、右邊為12M的晶振電路,這兩塊與單片機(jī)組成最小系統(tǒng)。76 軟件設(shè)計(jì)l 如圖12,主程序是先初始化LCD1602和
8、中斷,然后進(jìn)入轉(zhuǎn)速設(shè)定和調(diào)節(jié)循環(huán)。其中INT0中斷是用來(lái)測(cè)試輔助的,TO和T1配合參數(shù)PWM波和調(diào)節(jié)占空比(其中PWM為一個(gè)8位二進(jìn)制數(shù)0-255),轉(zhuǎn)速的反饋調(diào)節(jié)主要是進(jìn)行優(yōu)化的P調(diào)節(jié)。l 如題13和圖14,是T0和T1的中斷服務(wù)程序,TO設(shè)定256us的循環(huán)和初始化T1,然后對(duì)電機(jī)進(jìn)行正轉(zhuǎn)、反轉(zhuǎn)、停機(jī)(急停)三個(gè)判斷;T1中斷服務(wù)程序只負(fù)責(zé)關(guān)閉T1中斷。l 如圖14,外部中斷INT0處理調(diào)理好的測(cè)試脈沖,中斷服務(wù)程序?qū)γ恳粋€(gè)測(cè)速脈沖對(duì)變量n進(jìn)行加+,返回到主函數(shù)的測(cè)速程序。l PWM的優(yōu)化型P控制算法,對(duì)轉(zhuǎn)速比較盡興分級(jí)調(diào)節(jié),當(dāng)實(shí)際值無(wú)設(shè)定值相差超過(guò)1000rpm時(shí)PWM調(diào)整15,相差超過(guò)
9、500rpm時(shí)調(diào)整10,相差超過(guò)300時(shí)調(diào)整6,相差超過(guò)100時(shí)調(diào)整2,相差小于100時(shí)調(diào)整1。8圖12 主程序程序框圖9107 電路與程序仿真和軟件調(diào)試7.1 Proteus仿真電路可以導(dǎo)入HXE文件,對(duì)編寫好的程序和電路圖進(jìn)行仿真。117.2Keil程序編寫與編譯。128 硬件焊接與調(diào)試8.1 焊接與高度l 單片機(jī)最小系統(tǒng)的焊接,成功后進(jìn)行下一步。l 串口通信電路焊接,焊完進(jìn)行串行通信,通過(guò)與PC機(jī)進(jìn)行通信、刷寫程序進(jìn)入單片機(jī),成功進(jìn)行下一步。l 鍵盤電路與LCD1062顯示電路焊接,程序已經(jīng)寫進(jìn)單片機(jī)里面,可以進(jìn)行參數(shù)設(shè)置來(lái)檢查按鍵與顯示是否正常,成功進(jìn)行下一步。l 模擬調(diào)速電路焊接,焊
10、完進(jìn)行模擬調(diào)速設(shè)置,從顯示器能觀察是否正常。l 電機(jī)驅(qū)動(dòng)電路焊接,焊完進(jìn)行調(diào)試,發(fā)現(xiàn)電機(jī)接上之后系統(tǒng)不穩(wěn)定,經(jīng)分析發(fā)現(xiàn)是電源功率不足,電源是一個(gè)6V0.5A的小型電源,正好驅(qū)動(dòng)芯片L298的電源電路分開供電,用另外的電源給電機(jī)供電,改裝完后系統(tǒng)正常,進(jìn)行下一步。l 測(cè)速電路焊接,連接到單片機(jī)后一切正常。l 整體焊接完成后對(duì)軟件進(jìn)行實(shí)物調(diào)試,通過(guò)不斷的運(yùn)行測(cè)試和重新刷寫程序,主要克服的問(wèn)題有:調(diào)速反應(yīng)遲鈍、速度顯示精度、PWM調(diào)試算法。l 成品系統(tǒng)。138.2 系統(tǒng)參數(shù)與實(shí)驗(yàn)數(shù)據(jù)n 系統(tǒng)的調(diào)試參數(shù):轉(zhuǎn)速測(cè)量誤差范圍:+ 30 rpm所使用電機(jī)PWM調(diào)壓范圍:07.5V所使用電機(jī)PWM穩(wěn)定調(diào)速范圍
11、:正轉(zhuǎn)時(shí)3902460rpm 反轉(zhuǎn)時(shí)3902700rpmn 調(diào)試結(jié)果表格設(shè)定轉(zhuǎn)速420610100012001600180020002400實(shí)際轉(zhuǎn)速42060099012001580180020102400偏差值010100-200100上述調(diào)試結(jié)果表明:實(shí)際轉(zhuǎn)速跟設(shè)定轉(zhuǎn)速的差值不超過(guò)30rpm,效果較好,符合設(shè)計(jì)要求。149 結(jié)論在此次課程設(shè)計(jì)中,設(shè)計(jì)了PWM單閉環(huán)調(diào)速系統(tǒng),它由STC89C52RC單片機(jī)的I/O口輸出PWM信號(hào),直接用TTL電平控制驅(qū)動(dòng)芯片L298實(shí)現(xiàn)對(duì)電動(dòng)機(jī)進(jìn)行調(diào)速,這樣能夠充分發(fā)揮單片機(jī)的效能,對(duì)于簡(jiǎn)易速度控制系統(tǒng)的實(shí)現(xiàn)提供了一種有效的途徑。軟件方面,它采用計(jì)數(shù)法加軟件
12、延時(shí)法進(jìn)行設(shè)計(jì)的思路,為采用純軟件對(duì)電機(jī)速度的平滑調(diào)節(jié)提供了一種不錯(cuò)的解決方案。運(yùn)行實(shí)驗(yàn)表明,系統(tǒng)硬件接口電路簡(jiǎn)單,工作穩(wěn)定可靠,滿足了調(diào)速的功能要求,有很好的可操作性和維護(hù)性,具有較大的理論及實(shí)用價(jià)值。10 心得體會(huì)通過(guò)這次課程設(shè)計(jì),我們?cè)谑斋@知識(shí)的同時(shí),還收獲了閱歷,收獲了成熟。在此過(guò)程中,我們通過(guò)查找大量資料,請(qǐng)教老師,以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在課程設(shè)計(jì)上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。在如今單一的理論學(xué)習(xí)中,很少有機(jī)會(huì)能有實(shí)踐的機(jī)
13、會(huì),但我們可以,而且設(shè)計(jì)也是一個(gè)團(tuán)隊(duì)的任務(wù),一起的工作可以讓我們有說(shuō)有笑,相互幫助,配合默契。我們的工作是一個(gè)團(tuán)隊(duì)的工作,團(tuán)隊(duì)需要個(gè)人,個(gè)人也離不開團(tuán)隊(duì),必須發(fā)揚(yáng)團(tuán)結(jié)協(xié)作的精神。某個(gè)人的離群都可能導(dǎo)致導(dǎo)致整項(xiàng)工作的失敗。課程設(shè)計(jì)中只有一個(gè)人知道原理是遠(yuǎn)遠(yuǎn)不夠的,必須讓每個(gè)人都知道,否則一個(gè)人的錯(cuò)誤,就有可能導(dǎo)致整個(gè)工作失敗。團(tuán)結(jié)協(xié)作是我們實(shí)習(xí)成功的一項(xiàng)非常重要的保證。而這次實(shí)習(xí)也正好鍛煉我們這一點(diǎn),這也是非常寶貴的。對(duì)我們而言,知識(shí)上的收獲重要,精神上的豐收更加可喜。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次實(shí)習(xí)必將成為我人生旅途上一個(gè)非常美好的回憶!11 致謝感謝我們的指導(dǎo)老師,不管在選題階段,還
14、是在設(shè)計(jì)階段,在制作階段,正是她給予我不斷的指導(dǎo)與鼓勵(lì),我們才能順利地完成我的課程設(shè)計(jì),她那種對(duì)待學(xué)生和藹親切,對(duì)待工作一絲不茍的品質(zhì)和精神值得我們每一個(gè)人學(xué)習(xí)。借此,向我們的指導(dǎo)老師畢老師表示衷心的感謝。在此我要感謝我的同學(xué)們,在電路設(shè)計(jì)、程序編寫和焊接過(guò)程遇到困難時(shí),正是由于同學(xué)們的指導(dǎo)我們才能順利地完成本次課程設(shè)計(jì)。1516附錄(一)小組分工情況表17附錄二 總電路圖18附錄(三)元器件清單序 號(hào)名 稱型 號(hào)、規(guī) 格數(shù) 量1單片機(jī)芯片STC12C5A08S212插座DIP4013電解電容10uf54排針2排58位數(shù)據(jù)線26MAX23217插座DIP1638串口1對(duì)9LCDLCD16021
15、10插孔(排孔)2排11電位器10k112功率電阻10歐0.5w113觸電按鍵1814上拉電阻10k1015排阻8位10k216電位器20k117AD芯片ADC0831118插座DIP8119DC電機(jī)RS-365(10w左右)120PWML298121施密特觸發(fā)器74LS14122插座DIP14223紅外對(duì)管2套24二極管1N4007425電解電容1uf526瓷片電容100n1027瓷片電容0.1u528瓷片電容30p529萬(wàn)用版2302位電源插孔及插線231連接用線1捆32發(fā)光二極管1033互鎖開關(guān)3附錄(四)控制程序#include#include #define LCM_Data P0
16、/數(shù)據(jù)接口#define uchar unsigned char#define uint unsigned int uchar code uctech = SSpeed=;uchar code net = RSpeed=;uchar code Data=0,1,2,3,4,5,6,7,8,9; uchar idata plus8=0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03;uchar SSpeed4=0,0,0,0;uchar RSpeed4=0,0,0,0;uchar k; FLAG;uchar PWM=0x7f ; /賦初值uint n=0; num=0
17、; /T0中斷次數(shù)和INT0中斷次數(shù)uint speed; /實(shí)際轉(zhuǎn)速uint SetSpeed; / 數(shù)字和模擬速度設(shè)定值20sbit D=P20;sbit A=P21;sbit Run=P22; sbit Fan=P23; sbit Stop=P24;sbit LCM_E=P25;/定義接口sbit LCM_RW=P26;sbit LCM_RS=P27;sbit IN1=P34; /L298兩驅(qū)動(dòng)端口sbit IN2=P35;sbit SCL2=P37;/連接ADC0831SCL腳sbit SDA2=P36;/連接ADC0831SDA腳sbit CS=P33;void LCM_WriteD
18、ata(uchar WDLCM); /LCD寫數(shù)據(jù)void LCM_WriteCommand(uchar WCLCM,BuysC); /LCD寫命令uchar LCM_ReadData(void); /LCD讀數(shù)據(jù) uchar LCM_ReadStatus(void); /LCD讀狀態(tài)void LCM_Init(void); /LCD初始化void DisplayOneChar(uchar X, uchar Y, uchar DData); /LCD顯示1個(gè)字符void DisplayListChar(uchar X, uchar Y, uchar code *DData); /LCD顯示一串
19、字符void break_Init(void); /定時(shí)器和中斷初始化void delay200us(void); /延時(shí)200usvoid delay400ms(void); /延時(shí)400msvoid delay10ms(void); /延時(shí)10msvoid Getch (void); /鍵值判斷函數(shù)void GetchIt(void); /鍵值獲取函數(shù)void InputSet(void); /鍵盤設(shè)定函數(shù)void motorPWM(void); /PWM調(diào)速void RSpeeddisplay(void); /實(shí)際轉(zhuǎn)速顯示21uchar ad0831read(void);/定義該函數(shù)為讀
20、取ADC0831的數(shù)據(jù)void Vvchange(void); /AD采集與轉(zhuǎn)速轉(zhuǎn)換,同時(shí)顯示電位器設(shè)定轉(zhuǎn)速值void main(void) delay400ms();/啟動(dòng)等待,等LCM講入工作狀態(tài) LCM_Init();/LCM初始化 delay200us();/延時(shí)片刻(可不要) DisplayListChar(1, 0, uctech); DisplayListChar(12,0,RPM); DisplayListChar(1, 1, net); DisplayListChar(12,1,RPM); LCM_WriteCommand(0x0c,1);/ 顯示關(guān)光標(biāo)設(shè)置 指令4:置功能
21、LCM_WriteCommand(0x0c,1);/ 顯示關(guān)光標(biāo)設(shè)置 指令4:置功能 break_Init(); /中斷初始化 while(1) Run=1;Fan=1; D=1; A=1;if(D=0) /按數(shù)字參數(shù)設(shè)定鍵可設(shè)定一次參數(shù),此處是為了節(jié)省CPU工作資源,使CPU運(yùn)行效率更高! InputSet(); LCM_WriteCommand(0x0c,1);/ 顯示關(guān)及光標(biāo)設(shè)置 指令4:置功能n=0;22 if(A=0) /按電位器模擬參數(shù)設(shè)定Vvchange();n=0if(n=745) /每0.2S進(jìn)行一次實(shí)際速度計(jì)算,同時(shí)顯示實(shí)際轉(zhuǎn)速,進(jìn)行一次PWM調(diào)速。speed=30*num
22、; num=0; n=0; RSpeeddisplay(); /顯示實(shí)際轉(zhuǎn)速 motorPWM(); /PWM調(diào)速 /* 鍵盤和轉(zhuǎn)速設(shè)定函數(shù) */void delay10ms(void) /延時(shí)程序 uchar i,j; for(i=20;i0;i-) for(j=248;j0;j-); void Getch () unsigned char X,Y,Z;P1=0xff;P1=0x0f; /先對(duì)P1置數(shù) 行掃描23if(P1!=0x0f) /判斷是否有鍵按下 delay10ms(); /延時(shí),軟件去干擾if(P1!=0x0f) /確認(rèn)按鍵按下X = P1; X=P1; /保存行掃描時(shí)有鍵按下時(shí)
23、狀態(tài)P1=0xf0; /列掃描Y=P1; /保存列掃描時(shí)有鍵按下時(shí)狀態(tài) Z=X|Y; /取出鍵值switch ( Z ) /判斷鍵值(那一個(gè)鍵按下) case 0xee: k=1;FLAG=0;break; /對(duì)鍵值賦值,10代表清零,11代表確認(rèn)case 0xde: k=2;FLAG=0;break; case 0xbe: k=3;FLAG=0;break; case 0xed: k=4;FLAG=0;break; case 0xdd: k=5;FLAG=0;break; case 0xbd: k=6;FLAG=0;break; case 0xeb: k=7;FLAG=0;break; ca
24、se 0xdb: k=8;FLAG=0;break; case 0xbb: k=9;FLAG=0;break; case 0xe7: k=10;FLAG=0;break; case 0xd7: k=0;FLAG=0;break; case 0xb7: k=11;FLAG=0;break; delay400ms(); /延時(shí)防止連擊! 24void GetchIt(void)FLAG=1;while(FLAG) Getch();/鍵盤數(shù)字轉(zhuǎn)速設(shè)定函數(shù)void InputSet(void) /參數(shù)設(shè)定函數(shù) uchar n=0,i=8,m=0,j=8,p; LCM_WriteCommand(0x02
25、,1); /指令2:光標(biāo)返回00H for(p=0;p8;p+) LCM_WriteCommand(0x14,1);/ 右移動(dòng)光標(biāo) 指令5:置功能 LCM_WriteCommand(0x0e,1);/ 顯示開及光標(biāo)設(shè)置 指令4:置功能 GetchIt(); while(k!=11)&(n4) if(k10) SSpeedn=k; DisplayOneChar(i,0,DataSSpeedn); n+; i+; if(n=4) LCM_WriteCommand(0x0c,1);/ 顯示關(guān)及光標(biāo)設(shè)置 指令4:置功能 LCM_WriteCommand(0x10,1);/ 左移動(dòng)光標(biāo) 指令5:置功能
26、LCM_WriteCommand(0x0e,1);/ 顯示開光標(biāo)設(shè)置 指令4:置功能 GetchIt(); 25 else if(k=10) if(i!=8)LCM_WriteCommand(0x10,1);/ 左移動(dòng)光標(biāo) 指令5:置功能 i-;n-; GetchIt(); SetSpeed=1000*SSpeed0+100*SSpeed1+10*SSpeed2+SSpeed3; /* AD采集和轉(zhuǎn)速數(shù)學(xué)模型函數(shù) */ /模擬轉(zhuǎn)速設(shè)定函數(shù)uchar ad0831read(void)/ad0831讀8位AD數(shù)據(jù)uchar i,tmp=0;SDA2=1;CS=0; delay200us();SCL
27、2=0; delay200us();SCL2=1; delay200us();SCL2=0; delay200us();for(i=0;i8;i+)26if(SDA2) tmp+;tmp=1;SCL2=1;delay200us();SCL2=0;delay200us(); CS=1;return tmp;/電位器電壓與轉(zhuǎn)速轉(zhuǎn)換數(shù)學(xué)模型函數(shù)以及顯示函數(shù)void Vvchange(void)uint ASpeed; uchar i,k=8,tmp; tmp=ad0831read(); ASpeed=10*tmp; SSpeed0=ASpeed/1000; SSpeed1=ASpeed%1000/1
28、00; SSpeed2=ASpeed%1000%100/10; SSpeed3=ASpeed%1000%100%10; for(i=0;i4;i+) DisplayOneChar(k,0,DataSSpeedi); k+; delay400ms(); SetSpeed=ASpeed;27/實(shí)際轉(zhuǎn)速顯示函數(shù)void RSpeeddisplay(void)uchar l,u=8; RSpeed0=speed/1000; RSpeed1=speed%1000/100; RSpeed2=speed%1000%100/10; RSpeed3=speed%1000%100%10; for(l=0;lSet
29、Speed)&(PWM1000) PWM=PWM+15; else if(cha500) PWM=PWM+10; else if(cha300) PWM=PWM+6; else if(cha100) PWM=PWM+2; else PWM+; else if(speed0x00) cha=SetSpeed-speed; if(cha1000) PWM=PWM-15; else if(cha500) PWM=PWM-10; else if(cha300) PWM=PWM-6; else if(cha100) PWM=PWM-2; else PWM-; /*/ 定時(shí)器0中斷服務(wù)程序 (頻率)/*/
30、29void timer0() interrupt 1 TR1=0 ; TH0=0xff ; TL0=0x00 ; TH1=PWM ; TR1=1 ; n+;if(Stop!=0) if(Run=0) IN1=1;IN2=0; /啟動(dòng)輸出 else if(Fan=0) IN1=0;IN2=1; else IN1=1;IN2=1;/*/ 定時(shí)器1中斷服務(wù)程序 (脈寬)/*/void timer1() interrupt 3 TR1=0; IN1=1; IN2=1;/結(jié)束輸出void INT_0() interrupt 0 30num+; /* 1602A液晶屏驅(qū)動(dòng)程序* 晶 振 頻 率:12 M
31、hz*/*1602A寫數(shù)據(jù)函數(shù)*/*函數(shù)原型:void LCM_WriteData(uchar WDLCM)/*函數(shù)功能:1602A寫數(shù)據(jù)/*輸入?yún)?shù):要寫入的數(shù)據(jù)/*輸出參數(shù):無(wú)/*調(diào)用模塊:/*/ void LCM_WriteData(uchar WDLCM)LCM_ReadStatus();/檢測(cè)忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0;/若晶振速度太高可以在這后加小的延時(shí)delay200us();LCM_E = 1; /*1602A寫指令函數(shù)*/31/*函數(shù)原型:void LCM_WriteCommand(uchar WCLCM
32、,BuysC)/*函數(shù)功能:1602A寫指令/*輸入?yún)?shù):要寫入的指令/*輸出參數(shù):無(wú)/*調(diào)用模塊:/*/ void LCM_WriteCommand(uchar WCLCM,BuysC)/BuysC為0時(shí)忽略忙檢測(cè)if (BuysC) LCM_ReadStatus();/根據(jù)需要檢測(cè)忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;delay200us();LCM_E = 1; /*1602A讀數(shù)據(jù)函數(shù)*/*函數(shù)原型:uchar LCM_ReadData(void)/*函數(shù)功能:1602A讀數(shù)據(jù)/*輸入?yún)?shù):無(wú)/*輸出參數(shù):1602A返回的數(shù)
33、據(jù)/*調(diào)用模塊:/*/ uchar LCM_ReadData(void)LCM_Data=0xFF;32LCM_RS = 1;LCM_RW = 1;LCM_E = 0;delay200us();LCM_E = 1;return(LCM_Data); /*1602A讀狀態(tài)函數(shù)*/*函數(shù)原型:uchar LCM_ReadData(void)/*函數(shù)功能:1602A讀狀態(tài)/*輸入?yún)?shù):無(wú)/*輸出參數(shù):1602A返回的狀態(tài)/*調(diào)用模塊:/*/ uchar LCM_ReadStatus(void)LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E = 0;delay2
34、00us();LCM_E = 1;while (LCM_Data & 0x80);/檢測(cè)忙信號(hào)return(LCM_Data); /*1602A初始化函數(shù)*/33/*函數(shù)原型:void LCM_Init(void)/*函數(shù)功能:1602A初始化/*輸入?yún)?shù):無(wú)/*輸出參數(shù):無(wú)/*調(diào)用模塊:/*/ void LCM_Init(void)LCM_Data = 0;LCM_WriteCommand(0x38,0);/三次顯示模式設(shè)置,不檢測(cè)忙信號(hào),0x38:指令6置功能,2行,5*7字符delay200us();LCM_WriteCommand(0x38,0);delay200us();LCM_Wr
35、iteCommand(0x38,0);delay200us(); LCM_WriteCommand(0x38,1);/顯示模式設(shè)置,開始要求每次檢測(cè)忙信號(hào)LCM_WriteCommand(0x08,1);/關(guān)閉顯示 指令4:LCM_WriteCommand(0x01,1);/顯示清屏 指令1LCM_WriteCommand(0x06,1);/ 顯示光標(biāo)移動(dòng)設(shè)置 指令3:置輸入模式:地址增量,顯示屏不移動(dòng)LCM_WriteCommand(0x0e,1);/ 顯示開及光標(biāo)設(shè)置 /*1602A按指定位置顯示一個(gè)字符函數(shù)*/*函數(shù)原型:void DisplayOneChar(uchar X, uchar Y, uchar DData)/*函數(shù)功能:1602A按指定位置顯示一個(gè)字符34/*輸入?yún)?shù):X坐標(biāo) Y坐標(biāo) 要顯示的字符/*輸出參數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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中國(guó)熱帶農(nóng)業(yè)科學(xué)院香料飲料研究所第一批公開招聘8人(第1號(hào)海南)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)建筑第二工程局限公司北京分公司招聘10人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)華錄集團(tuán)限公司總部應(yīng)屆高校畢業(yè)生招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)人壽內(nèi)蒙古分公司春季校園招聘114人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中儲(chǔ)糧油脂限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年重慶酉陽(yáng)自治縣教育事業(yè)單位招聘125人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年深圳事業(yè)單位(職員)歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年山東煙臺(tái)市福山區(qū)事業(yè)單位招聘本科及以上學(xué)歷畢業(yè)生入伍15人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川省阿壩州事業(yè)單位招聘433人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上海市陽(yáng)光社區(qū)青少年事務(wù)中心招聘27名青年社工歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 6000噸年氧化羰化制碳酸二甲酯合成工藝設(shè)計(jì)說(shuō)明書
- ASME壓力容器工藝評(píng)定試板取樣尺寸
- 治理超限超載從業(yè)人員學(xué)習(xí)培訓(xùn)資料
- 人教版八年級(jí)上冊(cè) 第十二章12.1 全等三角形復(fù)習(xí)課 教案
- 機(jī)械原理課程設(shè)計(jì)設(shè)計(jì)加熱爐推料機(jī)傳動(dòng)裝置
- 立井井筒裝備方案
- 給我店周邊各企事業(yè)單位領(lǐng)導(dǎo)贈(zèng)送體驗(yàn)券方案的請(qǐng)示
- 世界氣候分布圖(空白輪廓底圖)
- 山東省建設(shè)工程質(zhì)量監(jiān)督檔案樣表
- 天津市工傷職工停工留薪期確定通知書
- 小學(xué)二年級(jí)數(shù)學(xué)期末口試模擬試題
評(píng)論
0/150
提交評(píng)論