




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2015年全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽風(fēng)力擺控制系統(tǒng)(B題)2015年8月15日摘 要 風(fēng)力擺控制系統(tǒng)是一電機(jī)驅(qū)動(dòng)測(cè)控系統(tǒng),本系統(tǒng)以STC89C52單片機(jī)為控制核心,由軸流風(fēng)機(jī)進(jìn)行驅(qū)動(dòng),MPU6050三維角度傳感器進(jìn)行檢測(cè),應(yīng)用PID控制算法,軸流風(fēng)機(jī)調(diào)速使擺臂在一定角度范圍內(nèi)做自由擺及圓周運(yùn)動(dòng),同時(shí)可以通過(guò)顯示模塊顯示風(fēng)力擺所處狀態(tài)的各種參數(shù)。本系統(tǒng)結(jié)構(gòu)簡(jiǎn)潔分明,達(dá)到了賽題所要求的基本功能。關(guān)鍵詞:風(fēng)力擺;STC89C52;軸流風(fēng)機(jī);PID;目 錄一、 系統(tǒng)方案論證與選擇11.系統(tǒng)方案12.方案比較與論證1(1)控制模塊的選擇與論證1(2)電機(jī)驅(qū)動(dòng)模塊的論證與選擇1(3)角度檢測(cè)模塊的論證與選擇1
2、(4)顯示方案的論證與選擇2二、系統(tǒng)理論分析與計(jì)算21.機(jī)械結(jié)構(gòu)的設(shè)計(jì)22.風(fēng)力擺狀態(tài)的檢測(cè)與計(jì)算23.風(fēng)力擺運(yùn)動(dòng)狀態(tài)的分析34. 驅(qū)動(dòng)與控制算法3(1)電機(jī)驅(qū)動(dòng)3(2)控制算法3三、電路及程序設(shè)計(jì)41.電路設(shè)計(jì)4(1)風(fēng)機(jī)驅(qū)動(dòng)電路設(shè)計(jì)4(2)顯示模塊52.程序設(shè)計(jì)5四、測(cè)試結(jié)果與分析61.測(cè)試儀器62.測(cè)試方案與結(jié)果6(1)風(fēng)力擺做自由擺動(dòng)的測(cè)試6(2)風(fēng)力擺做幅度可控?cái)[動(dòng)的測(cè)試7(3)靜止?fàn)顟B(tài)恢復(fù)測(cè)試73.測(cè)試結(jié)果分析7五、總結(jié)7參考文獻(xiàn)9附錄A 主要元器件清單10附錄B 電路原理圖11附錄C 源程序12一、 系統(tǒng)方案論證與選擇1.系統(tǒng)方案本系統(tǒng)主要由單片機(jī)控制模塊、電機(jī)驅(qū)動(dòng)模塊、角度檢測(cè)
3、模塊、電源模塊組成,鍵盤(pán)模塊,顯示模塊組成。2.方案比較與論證(1)控制模塊的選擇與論證方案一:采用MSP430單片機(jī)MSP430系列單片機(jī)采用精簡(jiǎn)指令集結(jié)構(gòu),具有豐富的尋址方式,以及強(qiáng)大的處理能力并且具有超低的功耗。在運(yùn)算速度方面,能在 8MHz 晶體的驅(qū)動(dòng)下,實(shí)現(xiàn) 125ns 的指令周期。但是所占的指令空間較大,資料也比較少。方案二:采用STC89C51單片機(jī)STC89C51單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活 、 自由度大,可用軟件編程實(shí)現(xiàn)各種算法和邏輯控制 。由于其功耗低、體積小、技術(shù) 成熟和成本低等優(yōu)點(diǎn),各個(gè)領(lǐng)域應(yīng)用廣泛。并且由于芯片引腳少,在硬件很容易實(shí)現(xiàn)。綜合上述兩種方案,方案二較
4、為簡(jiǎn)單,可以滿足設(shè)計(jì)要求。(2)電機(jī)驅(qū)動(dòng)模塊的論證與選擇方案一:采用自搭接的H橋電路選用大功率達(dá)林頓管或場(chǎng)效應(yīng)管自制H橋電路,電路原理簡(jiǎn)單,具有高效,低功率等特點(diǎn),但是性能不夠穩(wěn)定,電路調(diào)試復(fù)雜方案二:采用L298N電機(jī)驅(qū)動(dòng)模塊L298N是一款單片集成的高電壓、高電流、雙路全橋式電機(jī)驅(qū)動(dòng)。最高工作電壓可達(dá)46v,內(nèi)含兩個(gè)H橋的高電壓大電流全橋式驅(qū)動(dòng)器,采用標(biāo)準(zhǔn)邏輯電平信號(hào)控制。電子開(kāi)關(guān)的速度很快,穩(wěn)定性也極強(qiáng)。綜合考慮,我們選擇方案二。(3)角度檢測(cè)模塊的論證與選擇方案一:采用MPU6050芯片MPU6050集成了3軸MEMS陀螺儀,3軸MEMS加速度計(jì),以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器DMP,
5、可用I2C接口連接一個(gè)第三方的數(shù)字傳感器。并且容易上手。方案二:采用WDS35D芯片WDS35D傳感器其測(cè)量范圍為0360,輸出電壓范圍與輸入電壓有關(guān),輸出精度為1mv,測(cè)量精度為0.1度,線性度好,長(zhǎng)期穩(wěn)定行好,靈敏度高,可實(shí)現(xiàn)對(duì)角位移的精確測(cè)量。結(jié)合我們自身綜合考慮,我們選擇方案一。(4)顯示方案的論證與選擇方案一:采用LED數(shù)碼管顯示LED顯示具有硬件電路結(jié)構(gòu)簡(jiǎn)單、調(diào)試方便、軟件容易實(shí)現(xiàn)等優(yōu)點(diǎn),但是數(shù)碼管只能顯示簡(jiǎn)單的數(shù)字,顯示信息量少,不能夠滿足此本設(shè)計(jì)的要求。方案二:采用1602字符液晶LCD液晶顯示具有功耗低、顯示內(nèi)容豐富、清晰、且顯示信息量大等優(yōu)點(diǎn)而得到廣泛應(yīng)用。綜合以上兩種方案
6、選擇,本設(shè)計(jì)選擇方案二。二、系統(tǒng)理論分析與計(jì)算1.機(jī)械結(jié)構(gòu)的設(shè)計(jì) 風(fēng)力擺支架采用木條自行搭建,整體高100cm,臂桿長(zhǎng)50cm,擺桿采用長(zhǎng)65cm的碳維纖管,并通過(guò)萬(wàn)向節(jié)固定在臂桿上一端。擺桿下端懸掛二個(gè)直流風(fēng)機(jī),并在其下端安裝一個(gè)向下的激光筆。碳維纖管具有強(qiáng)度高,質(zhì)量輕,低密度等優(yōu)點(diǎn),廣泛應(yīng)用于航模,轉(zhuǎn)軸等機(jī)械設(shè)備。符合本設(shè)計(jì)的要求。風(fēng)力擺整體結(jié)構(gòu)如圖2.1所示。擺桿臂桿軸流風(fēng)機(jī)圖2.1 風(fēng)力擺結(jié)構(gòu)示意圖2.風(fēng)力擺狀態(tài)的檢測(cè)與計(jì)算采用高精度的角度傳感器MPU6050不斷采集風(fēng)力擺姿態(tài)角數(shù)據(jù)。MPU6050集成了3軸MEMS陀螺儀,3軸MEMS加速器,以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器DMP。MP
7、U6050和所有設(shè)備寄存器之間的通信采用400KHz的I2C接口。實(shí)現(xiàn)高速通信。內(nèi)置的可編程卡爾曼濾波器,采用最優(yōu)化自回歸數(shù)據(jù)處理算法精確測(cè)量風(fēng)力擺當(dāng)前姿態(tài)角。MPU6050對(duì)陀螺儀和加速計(jì)分別用了三個(gè)16位的ADC,將其測(cè)量的模擬量轉(zhuǎn)化為可輸出的數(shù)字量,通過(guò)DMP處理器讀取測(cè)量數(shù)據(jù)然后通過(guò)串口輸出。3.風(fēng)力擺運(yùn)動(dòng)狀態(tài)的分析風(fēng)力擺采用4個(gè)36W的直流風(fēng)機(jī)為動(dòng)力驅(qū)動(dòng)系統(tǒng),角度檢測(cè)模塊采集風(fēng)力擺姿態(tài)角。然后將采集到的信息傳送到單片機(jī),單片機(jī)處理姿態(tài)角信息調(diào)節(jié)輸出PWM的占空比,進(jìn)而控制四個(gè)電機(jī)的工作狀態(tài),從而實(shí)現(xiàn)對(duì)風(fēng)力擺的控制。4. 驅(qū)動(dòng)與控制算法(1)電機(jī)驅(qū)動(dòng)對(duì)于普通的直流電機(jī),其控制方法比較簡(jiǎn)
8、單,只需給電機(jī)的兩根控制線加適當(dāng)?shù)碾妷杭纯墒闺姍C(jī)轉(zhuǎn)動(dòng)起來(lái),電壓越高則電機(jī)轉(zhuǎn)速越高。對(duì)于直流電機(jī)的速度調(diào)節(jié),可以采用改變電壓的方法,也可采用PWM調(diào)速方法。PWM調(diào)速就是使加在直流電機(jī)兩端的電壓為方波形式,加在電機(jī)兩端的電壓就在VLoad和0V之間不停的跳變,對(duì)應(yīng)的電機(jī)電壓波形如圖 2.4.1所示:T1UoThOV圖2.2 PWM調(diào)速原理圖此時(shí)加在電機(jī)兩端的平均電壓Uo=Th/(Th+Tl)*VLoad,可以通過(guò)調(diào)整PWM的占空比來(lái)改變Th和Tl的比值。這樣就可以通過(guò)PWM調(diào)節(jié)加在電機(jī)兩端的平均電壓,從而改變電機(jī)的轉(zhuǎn)速。(2)控制算法風(fēng)力擺的運(yùn)動(dòng)是連續(xù)運(yùn)動(dòng),擺桿的變化也是連續(xù)的漸變過(guò)程,因此我們
9、采用PID控制算法。對(duì)直流電機(jī)為執(zhí)行器件的系統(tǒng)中,基本采用增量試PID算法進(jìn)行控制。數(shù)字PID控制算法是以模擬PID調(diào)節(jié)器控制為基礎(chǔ)的,由于單片機(jī)是一種采樣控制,只能根據(jù)采樣時(shí)刻的偏差計(jì)算控制量。但是如果采樣周期T取得足夠小,采樣數(shù)值計(jì)算方法逼近可相當(dāng)準(zhǔn)確,被控過(guò)程與連續(xù)控制十分接近。離散化后的PID算式為:式中:K:比例系數(shù),:偏差為零時(shí)的控制作用,:積分時(shí)間,:微分時(shí)間,T:采樣時(shí)間,以上公式稱為位置式算法。有它可推出增量式算法:式中各系數(shù)由反復(fù)實(shí)踐后確定,實(shí)驗(yàn)證明,這種控制方式可以加快系統(tǒng)階躍響應(yīng)、減小超調(diào)量,并具有較高的精度。三、電路及程序設(shè)計(jì)1.電路設(shè)計(jì)整個(gè)系統(tǒng)分為系統(tǒng)模塊、編碼器模
10、塊、電機(jī)驅(qū)動(dòng)模塊、電機(jī)模塊、電源模塊、鍵盤(pán)模塊、顯示模塊。各模塊的系統(tǒng)框圖如圖3.1所示。角度檢測(cè)模塊鍵盤(pán)模塊風(fēng)機(jī)模塊顯示模塊電源模塊控制模塊控制模塊圖 3.1 系統(tǒng)框圖(1)風(fēng)機(jī)驅(qū)動(dòng)電路設(shè)計(jì)L298N是ST公司生產(chǎn)的一種高電壓,大電流電機(jī)驅(qū)動(dòng)芯片。該芯片最高工作電壓課高達(dá)45V,輸出電流大,瞬間峰值電流可達(dá)到3A,持續(xù)工作電流為2A,額定功率25W。內(nèi)含兩個(gè)H橋的高電壓大電流全橋式驅(qū)動(dòng)器。其電路圖如圖3.1.1.所示。圖3.1.1. 電機(jī)驅(qū)動(dòng)模塊(2)顯示模塊圖3.12 LCD液晶顯示模塊2.程序設(shè)計(jì)本系統(tǒng)的軟件部分主要有角度測(cè)量模塊、驅(qū)動(dòng)PWM模塊、PID控制模塊函數(shù)組成,當(dāng)單片機(jī)上電后,
11、進(jìn)入初始化界面,根據(jù)不同的按鍵,單片機(jī)進(jìn)入不同的工作方式,按照不同的要求工作。角度檢測(cè)傳感器檢測(cè)風(fēng)力擺的姿態(tài),輸出電壓信號(hào),進(jìn)而對(duì)直流風(fēng)機(jī)控制,使風(fēng)力擺做不同的擺動(dòng)。流程框圖如圖3.2所示。結(jié)束開(kāi)始初始化調(diào)用鍵盤(pán)程序基本要求一基本要求二基本要求三基本要求四角度檢測(cè)傳感器風(fēng)機(jī)驅(qū)動(dòng)模塊圖3.2 程序框圖四、測(cè)試結(jié)果與分析1.測(cè)試儀器測(cè)試儀器包括秒表,量角器,米尺,自制方向圖紙2.測(cè)試方案與結(jié)果(1)風(fēng)力擺做自由擺動(dòng)的測(cè)試從靜止開(kāi)始驅(qū)動(dòng)風(fēng)力擺,使其做類似自由擺運(yùn)動(dòng),在15秒內(nèi)使激光筆穩(wěn)定地在自制方向圖紙上畫(huà)出一條長(zhǎng)度不短于50cm的直線其線性度偏差不大于2.5cm,并具有較好的重復(fù)性。測(cè)試結(jié)果如表1
12、所示。表1 風(fēng)力擺畫(huà)長(zhǎng)于50cm直線測(cè)試測(cè)試次數(shù)完成所需時(shí)間(t)偏差結(jié)果第一次測(cè)試16s3cm失敗第二次測(cè)試15s2.3cm成功第三次測(cè)試13s2cm成功(2)風(fēng)力擺做幅度可控?cái)[動(dòng)的測(cè)試從靜止開(kāi)始啟動(dòng)風(fēng)力擺,使其15秒內(nèi)完場(chǎng)幅度可控的擺動(dòng),長(zhǎng)度偏差不大于2.5cm。測(cè)試結(jié)果如表2所示。表2 風(fēng)力擺做幅度可控的測(cè)試測(cè)試次數(shù)完成所需時(shí)間(t)偏差結(jié)果第一次測(cè)試13s2,1cm成功第二次測(cè)試15s2.3cm成功第三次測(cè)試12s2.4cm成功(3)靜止?fàn)顟B(tài)恢復(fù)測(cè)試將風(fēng)力擺拉起一定角度(3045)放開(kāi),使其5秒內(nèi)達(dá)到靜止。測(cè)試結(jié)果如表4所示。測(cè)試次數(shù)完成所需時(shí)間(t)結(jié)果第一次測(cè)試6s失敗第二次測(cè)試5
13、s成功第三次測(cè)試6s失敗3.測(cè)試結(jié)果分析測(cè)試結(jié)果分析,系統(tǒng)總體上達(dá)到較好的性能,完成了賽題要求的部分功能。但是在測(cè)試過(guò)程中,在直流風(fēng)機(jī)自身的重力及較弱風(fēng)力的影響下,對(duì)于部分基本功能沒(méi)有能夠很好的完成,直流風(fēng)機(jī)驅(qū)動(dòng)設(shè)計(jì)上存在部分缺陷,驅(qū)動(dòng)力不足,使風(fēng)力擺在部分基本功能上沒(méi)有很好地完成要求。如資金充足五、總結(jié)風(fēng)力擺是一種復(fù)雜、時(shí)變、非線性、自然不穩(wěn)定的高階系統(tǒng),許多抽象的控制理念概論都可以通過(guò)風(fēng)力擺直觀的直觀的表現(xiàn)出來(lái)。本設(shè)計(jì)通過(guò)分析控制器的基本原理,結(jié)合風(fēng)力擺系統(tǒng)實(shí)際參數(shù),然后通過(guò)控制理論設(shè)計(jì)控制器。采用PID控制算法對(duì)直流風(fēng)機(jī)調(diào)速,進(jìn)而控制風(fēng)力擺的運(yùn)動(dòng)姿態(tài),使其達(dá)到所需要的要求。在本設(shè)計(jì)中遇到
14、的最大問(wèn)題就是驅(qū)動(dòng)不足,之前考慮過(guò)多種方案,但由于時(shí)間緊,任務(wù)重,系統(tǒng)還有一些功能未能實(shí)現(xiàn),比如擺桿做類似圓周運(yùn)動(dòng)。若經(jīng)改進(jìn),相信性能還會(huì)有進(jìn)一步的提升。本次四天三夜的競(jìng)賽極大的鍛煉了我們各方面的能力,雖然在結(jié)果上沒(méi)能達(dá)到預(yù)想中的程度,但總體上成功與挫折交替,困難與希望并存。我們會(huì)繼續(xù)努力爭(zhēng)取更大的進(jìn)去,在此路上走的更遠(yuǎn)。參考文獻(xiàn)1 譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)M.北京:清華大學(xué)出版社.20122 康華光主編. 電子技術(shù)基礎(chǔ)M. 華中理工大學(xué)電子學(xué)教研室.20103 康華光、陳大欽主編. 電子技術(shù)基礎(chǔ)數(shù)字部份M.高等教育出版社.20104 郭天祥主編. 51單片機(jī)C語(yǔ)言教程M. 電子工業(yè)出版社.20
15、085 王宜懷、吳瑾、蔣銀珍編著.單片機(jī)原理與應(yīng)用M. 電子工業(yè)出版社.20056蔣煥文,孫續(xù).電子測(cè)量M.3版.北京:中國(guó)計(jì)量出版社,20087蔡惟錚.集成電子技術(shù).北京:高等教育出版社,20048李立功,等.現(xiàn)代電子測(cè)量計(jì)數(shù)M.2版.北京:國(guó)防工業(yè)出版社,20089 辛?xí)詫幫鯐孕? PWM調(diào)制的設(shè)計(jì)與實(shí)現(xiàn) J. 電子設(shè)計(jì)工程2013,2(4):12212410高吉祥,唐朝京.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽培訓(xùn)系列教程(電子儀器儀表設(shè)計(jì))M.北京:電子工業(yè)出版社,2007附錄A 主要元器件清單序號(hào)元器件名稱型號(hào)規(guī)格數(shù)量1電阻50個(gè)102電阻100個(gè)103電阻100K個(gè)104電阻200K個(gè)105軸流風(fēng)
16、機(jī)個(gè)46角度傳感器MPU6050片17碳維纖管65cm根18萬(wàn)向節(jié)連接桿直徑=10mm個(gè)19激光筆個(gè)110單片機(jī)芯片STC89C52片111液晶顯示屏1602個(gè)112電機(jī)驅(qū)動(dòng)模塊L298N個(gè)113單片機(jī)最小系統(tǒng)51系列個(gè)1附錄B 電路原理圖附錄C 源程序#include #include /Keil library #include /Keil library#include typedef unsigned char uchar;typedef unsigned short ushort;typedef unsigned int uint;/ 定義51單片機(jī)端口#define DataPor
17、t P0 /LCD1602數(shù)據(jù)端口sbit SCL=P10;/IIC時(shí)鐘引腳定義sbit SDA=P11;/IIC數(shù)據(jù)引腳定義sbit LCM_RS=P33;/LCD1602命令端口sbit LCM_RW=P34;/LCD1602命令端口sbit LCM_EN=P35;/LCD1602命令端口 sbit PWM1=P20;/1號(hào)電機(jī)sbitPWM2=P21;/2號(hào)電機(jī)/ 定義MPU6050內(nèi)部地址#defineSMPLRT_DIV0x19/陀螺儀采樣率,典型值:0x07(125Hz)#defineCONFIG 0x1A/低通濾波頻率,典型值:0x06(5Hz)#defineGYRO_CONFI
18、G0x1B/陀螺儀自檢及測(cè)量范圍,典型值:0x18(不自檢,2000deg/s)#defineACCEL_CONFIG0x1C/加速計(jì)自檢、測(cè)量范圍及高通濾波頻率,典型值:0x01(不自檢,2G,5Hz)#defineACCEL_XOUT_H0x3B#defineACCEL_XOUT_L0x3C#defineACCEL_YOUT_H0x3D#defineACCEL_YOUT_L0x3E#defineACCEL_ZOUT_H0x3F#defineACCEL_ZOUT_L0x40#defineTEMP_OUT_H0x41#defineTEMP_OUT_L0x42#defineGYRO_XOUT_H
19、0x43#defineGYRO_XOUT_L0x44#defineGYRO_YOUT_H0x45#defineGYRO_YOUT_L0x46#defineGYRO_ZOUT_H0x47#defineGYRO_ZOUT_L0x48#definePWR_MGMT_10x6B/電源管理,典型值:0x00(正常啟用)#defineWHO_AM_I0x75/IIC地址寄存器(默認(rèn)數(shù)值0x68,只讀)#defineSlaveAddress0xD0/IIC寫(xiě)入時(shí)的地址字節(jié)數(shù)據(jù),+1為讀取/定義類型及變量uchar dis4;/顯示數(shù)字(-511至512)的字符數(shù)組intdis_data;/變量unsigne
20、d char count;/intTemperature,Temp_h,Temp_l;/溫度及高低位數(shù)據(jù)/函數(shù)聲明void delay(unsigned int k);/延時(shí)/LCD相關(guān)函數(shù)void InitLcd();/初始化lcd1602void lcd_printf(uchar *s,int temp_data);void WriteDataLCM(uchar dataW);/LCD數(shù)據(jù)void WriteCommandLCM(uchar CMD,uchar Attribc);/LCD指令void DisplayOneChar(uchar X,uchar Y,uchar DData);/
21、顯示一個(gè)字符void DisplayListChar(uchar X,uchar Y,uchar *DData,L);/顯示字符串/MPU6050操作函數(shù)void InitMPU6050();/初始化MPU6050void Delay5us();void I2C_Start();void I2C_Stop();void I2C_SendACK(bit ack);bit I2C_RecvACK();void I2C_SendByte(uchar dat);uchar I2C_RecvByte();void I2C_ReadPage();void I2C_WritePage();void disp
22、lay_ACCEL_x();void display_ACCEL_y();void display_ACCEL_z();uchar Single_ReadI2C(uchar REG_Address);/讀取I2C數(shù)據(jù)void Single_WriteI2C(uchar REG_Address,uchar REG_data);/向I2C寫(xiě)入數(shù)據(jù)/整數(shù)轉(zhuǎn)字符串void lcd_printf(uchar *s,int temp_data)if(temp_data0)temp_data=-temp_data;*s=-;else *s= ;*+s =temp_data/100+0x30;temp_dat
23、a=temp_data%100; /取余運(yùn)算*+s =temp_data/10+0x30;temp_data=temp_data%10; /取余運(yùn)算*+s =temp_data+0x30; /延時(shí)void delay(unsigned int k)unsigned int i,j;for(i=0;ik;i+)for(j=0;j121;j+);/LCD1602初始化void InitLcd()WriteCommandLCM(0x38,1);WriteCommandLCM(0x08,1);WriteCommandLCM(0x01,1);WriteCommandLCM(0x06,1);WriteCo
24、mmandLCM(0x0c,1);DisplayOneChar(0,0,A);DisplayOneChar(0,1,G); /LCD1602寫(xiě)允許void WaitForEnable(void)DataPort=0xff;LCM_RS=0;LCM_RW=1;_nop_();LCM_EN=1;_nop_();_nop_();while(DataPort&0x80);LCM_EN=0;/LCD1602寫(xiě)入命令void WriteCommandLCM(uchar CMD,uchar Attribc)if(Attribc)WaitForEnable();LCM_RS=0;LCM_RW=0;_nop_(
25、);DataPort=CMD;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;/*/LCD1602寫(xiě)入數(shù)據(jù)/*void WriteDataLCM(uchar dataW)WaitForEnable();LCM_RS=1;LCM_RW=0;_nop_();DataPort=dataW;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;/*/LCD1602寫(xiě)入一個(gè)字符/*void DisplayOneChar(uchar X,uchar Y,uchar DData)Y&=1;X&=15;if(Y)X|=0x40;X|=0x80;
26、WriteCommandLCM(X,0);WriteDataLCM(DData);/*/LCD1602顯示字符串/*void DisplayListChar(uchar X,uchar Y,uchar *DData,L)uchar ListLength=0; Y&=0x1; X&=0xF; while(L-) DisplayOneChar(X,Y,DDataListLength);ListLength+; X+; /*/延時(shí)5微秒(STC90C52RC12M)/不同的工作環(huán)境,需要調(diào)整此函數(shù)/當(dāng)改用1T的MCU時(shí),請(qǐng)調(diào)整此延時(shí)函數(shù)/*void Delay5us()_nop_();_nop_()
27、;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/*/I2C起始信號(hào)/*void I2C_Start() SDA = 1; /拉高數(shù)據(jù)線 SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SDA = 0; /產(chǎn)生下降沿 Delay5us(); /延時(shí) SCL = 0; /拉低時(shí)鐘
28、線/*/I2C停止信號(hào)/*void I2C_Stop() SDA = 0; /拉低數(shù)據(jù)線 SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SDA = 1; /產(chǎn)生上升沿 Delay5us(); /延時(shí)/*/I2C發(fā)送應(yīng)答信號(hào)/入口參數(shù):ack (0:ACK 1:NAK)/*void I2C_SendACK(bit ack) SDA = ack; /寫(xiě)應(yīng)答信號(hào) SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí)/*/I2C接收應(yīng)答信號(hào)/*bit I2C_RecvACK() SCL = 1; /拉高時(shí)鐘線
29、Delay5us(); /延時(shí) CY = SDA; /讀應(yīng)答信號(hào) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí) return CY;/*/向I2C總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)/*void I2C_SendByte(uchar dat) uchar i; for (i=0; i8; i+) /8位計(jì)數(shù)器 dat = 1; /移出數(shù)據(jù)的最高位 SDA = CY; /送數(shù)據(jù)口 SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí) I2C_RecvACK();/*/從I2C總線接收一個(gè)字節(jié)數(shù)據(jù)/*uchar I2C_R
30、ecvByte() uchar i; uchar dat = 0; SDA = 1; /使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù), for (i=0; i8; i+) /8位計(jì)數(shù)器 dat = 1; SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) dat |= SDA; /讀數(shù)據(jù) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí) return dat;/*/向I2C設(shè)備寫(xiě)入一個(gè)字節(jié)數(shù)據(jù)/*void Single_WriteI2C(uchar REG_Address,uchar REG_data) I2C_Start(); /起始信號(hào) I2C_SendByte(SlaveAddress); /發(fā)送設(shè)備地址+寫(xiě)信號(hào) I2C_SendByte(REG_Address); /內(nèi)部寄存器地址, I2C_SendByte(REG_data); /內(nèi)部寄存器數(shù)據(jù), I2C_Stop(); /發(fā)送停止信號(hào)/*/從I2C設(shè)備讀取一個(gè)字節(jié)數(shù)據(jù)/*uchar Single_ReadI2C(uchar REG_Address)uchar REG_data;I2C_Start(); /起始信號(hào)I2C_SendBy
溫馨提示
- 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鋼材買賣合同樣本
- 代理記賬公司培訓(xùn)
- 2025全面商用建筑設(shè)計(jì)合同
- 2025居民購(gòu)房合同協(xié)議書(shū)標(biāo)準(zhǔn)
- 2025二手折彎?rùn)C(jī)買賣合同
- 2025臨時(shí)工合同模板
- 2025中外合作合同范本2
- 汽車美容服務(wù)流程優(yōu)化策略探討試題及答案
- 教育智能體的構(gòu)建與實(shí)踐路徑探討
- 2025全面版城市私人住宅租賃合同
- 數(shù)字孿生機(jī)場(chǎng)數(shù)據(jù)融合-全面剖析
- (二模)咸陽(yáng)市2025年高考模擬檢測(cè)(二)語(yǔ)文試卷(含答案)
- 第四單元 第2課時(shí) 三位數(shù)加三位數(shù)2(連續(xù)進(jìn)位加法)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年三年級(jí)上冊(cè)數(shù)學(xué)人教版
- 融資部業(yè)績(jī)考核及獎(jiǎng)勵(lì)辦法
- 《中央八項(xiàng)規(guī)定精神學(xué)習(xí)教育》專項(xiàng)講座
- 2025年交管12123學(xué)法減分考試題庫(kù)及答案
- 環(huán)境政策協(xié)同效應(yīng)-第1篇-深度研究
- 2024年福建省能源石化集團(tuán)有限責(zé)任公司秋季校園招聘153人筆試參考題庫(kù)附帶答案詳解
- 棚戶區(qū)改造項(xiàng)目(EPC)方案投標(biāo)文件(技術(shù)方案)
- 2025年中國(guó)軍用方艙行業(yè)市場(chǎng)集中度、企業(yè)競(jìng)爭(zhēng)格局分析報(bào)告-智研咨詢發(fā)布
- 鍋爐應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論