課程設(shè)計(jì)說明書-智能壓力測(cè)量?jī)x_第1頁(yè)
課程設(shè)計(jì)說明書-智能壓力測(cè)量?jī)x_第2頁(yè)
課程設(shè)計(jì)說明書-智能壓力測(cè)量?jī)x_第3頁(yè)
課程設(shè)計(jì)說明書-智能壓力測(cè)量?jī)x_第4頁(yè)
課程設(shè)計(jì)說明書-智能壓力測(cè)量?jī)x_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.PAGE.XX華信學(xué)院課程設(shè)計(jì)說明書題目:智能壓力測(cè)量?jī)x__楊巍院〔系:機(jī)電工程學(xué)院專業(yè)__電氣工程三班學(xué)號(hào):1102120310指導(dǎo)宋東亞楊坤漓成績(jī):時(shí)間:20XX12月17日至2013年12月28日XX華信學(xué)院課程設(shè)計(jì)任務(wù)書題目智能壓力測(cè)量?jī)x專業(yè)、班級(jí)電氣工程及其自動(dòng)化三班學(xué)號(hào)1102120310姓名楊巍主要內(nèi)容:利用單片機(jī)計(jì)一個(gè)智能壓力測(cè)量?jī)x,要求顯示壓力數(shù)據(jù)?;疽螅?.設(shè)計(jì)一個(gè)智能壓力測(cè)量?jī)x,要求顯示當(dāng)前壓力數(shù)值。2.利用proteus軟件完成設(shè)計(jì)電路和仿真;3.掌握并口驅(qū)動(dòng)數(shù)碼管動(dòng)態(tài)顯示的方法;4.通過此次設(shè)計(jì)將單片機(jī)軟硬件結(jié)合起來對(duì)程序進(jìn)行編輯、校驗(yàn),鍛煉實(shí)踐能力和理論聯(lián)系實(shí)際的能力。主要參考資料:[1]李全利,單片機(jī)原理及接口技術(shù)[M],高等教育出版社[2]王文杰,單片機(jī)應(yīng)用技術(shù)[M],冶金工業(yè)出版社[3]朱清慧,PROTEUS教程——電子線路設(shè)計(jì)、制版與仿真[M],清華大學(xué)出版社[4]單片機(jī)實(shí)驗(yàn)指導(dǎo)書,天煌教儀[5]彭偉,單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例[M],電子工業(yè)出版社完成期限:指導(dǎo)教師簽名:課程負(fù)責(zé)人簽名:年月日目錄摘要-2-1引言-2-1.1問題的提出-2-1.2任務(wù)與分析-3-2方案設(shè)計(jì)-3-2.1系統(tǒng)方案設(shè)計(jì)論證-3-系統(tǒng)的控制方案設(shè)計(jì)-3-2.2最終設(shè)計(jì)方案總體設(shè)計(jì)框圖-3-3系統(tǒng)硬件設(shè)計(jì)-4-3.1AT89C51單片機(jī)-4-3.1.1AT89C51單片機(jī)介紹-4-3.1.2選用AT89C51單片機(jī)原因-6-3.2時(shí)鐘電路-6-3.3復(fù)位電路-6-3.4PG160128A顯示電路-7-3.5A/D轉(zhuǎn)換電路-8-4系統(tǒng)軟件設(shè)計(jì)-9-4.1主程序框圖-9-4.2顯示子程序框-10-5系統(tǒng)調(diào)試過程-10-5.2Keil程序調(diào)試-12-5.3Proteus仿真調(diào)試-12-結(jié)論-15-致謝-16-參考文獻(xiàn)-16-附錄一程序源代碼-16-附錄二電路原理圖及PCB圖-32-附錄三Proteus仿真截圖-33-摘要本課程設(shè)計(jì)是基于8051單片機(jī)為控制核心的壓力檢測(cè)系統(tǒng)。在硬件電路部分,此設(shè)計(jì)的采用8051單片機(jī),ADC0832轉(zhuǎn)換器,本設(shè)計(jì)先測(cè)量出壓力的電信號(hào),然后通過單片機(jī)對(duì)所測(cè)出的壓力值,并通過LCD顯示壓力數(shù)值。關(guān)鍵詞:8051單片機(jī)、壓力檢測(cè)、LCD顯示、1引言1.1問題的提出隨著電子化程度越來越高,通過增加更多的電子裝置,使機(jī)器工作在更好的狀態(tài),充分發(fā)揮機(jī)器的性能,保證機(jī)器的安全性,減少機(jī)器故障率,增加機(jī)器壽命等,具有重要的意義。1.2任務(wù)與分析本設(shè)計(jì)的主要任務(wù)就是利用單片機(jī)實(shí)現(xiàn)壓力的檢測(cè)功能。檢測(cè)壓力檢測(cè)系統(tǒng)所具有的功能如下:壓力檢測(cè)系統(tǒng)是通過聲音和文字信息來體現(xiàn)壓力的狀態(tài)。該系統(tǒng)利用8051單片機(jī)作為微控制器,通過壓變式壓力傳感器對(duì)壓力進(jìn)行信號(hào)檢測(cè),傳感器輸出信號(hào)經(jīng)數(shù)字濾波及A/D轉(zhuǎn)換后輸入ECU,經(jīng)計(jì)算后在LED屏幕上顯示壓力。2方案設(shè)計(jì)2.1系統(tǒng)方案設(shè)計(jì)論證2.1.1系統(tǒng)的控制方案設(shè)計(jì)檢測(cè)壓力傳感器MPX4250檢測(cè)到壓力信號(hào)后,通過ADC0832轉(zhuǎn)換后送入AT89C51單片機(jī),單片機(jī)對(duì)數(shù)據(jù)進(jìn)行處理,顯示等。2.2最終設(shè)計(jì)方案總體設(shè)計(jì)框圖A/D傳感器壓力傳感器A/D傳感器壓力傳感器LCD顯示壓力LCD顯示壓力80C51單片機(jī)圖2.1系統(tǒng)總體設(shè)計(jì)框圖本方案是由壓力傳感器、A/D模數(shù)轉(zhuǎn)換器、AT89C51單片機(jī)、LED顯示電路。壓力傳感器采集壓力信號(hào),將其轉(zhuǎn)換為相對(duì)應(yīng)的電壓信號(hào),將電壓信號(hào)輸送到A/D模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào),并送入到AT89C51單片機(jī)中,經(jīng)過單片機(jī)的數(shù)字濾波處理后,在通過PG160128的驅(qū)動(dòng)程序,將其顯示在LCD顯示器上。3系統(tǒng)硬件設(shè)計(jì)3.1AT89C51單片機(jī)3.1.1AT89C51單片機(jī)介紹〔18051單片機(jī)在此單片機(jī)上集成了微處理器〔CPU,內(nèi)部數(shù)據(jù)存儲(chǔ)器〔RAM,以及輸入輸出端口。8051單片機(jī)采用40只引腳的雙列直插封裝方式,各引腳的功能如下:①時(shí)鐘引腳X1及X2:用于接晶體振蕩器,此次設(shè)計(jì)用的晶振頻率為6MHZ。②RESET腳:是復(fù)位信號(hào)輸入端,高電平有效。③ALE腳:地址鎖存允許信號(hào),用于鎖存單片機(jī)輸出的地址信號(hào),高電平有效④PSEN腳:程序存儲(chǔ)器輸出控制端,在單片機(jī)訪問外部程序存儲(chǔ)器時(shí),此引腳輸出的負(fù)脈沖作為讀外部程序存儲(chǔ)器的選通信號(hào),接至程序存儲(chǔ)器的OE端。低電平有效。⑤EA腳:其功能為內(nèi)外程序存儲(chǔ)器選擇控制端。當(dāng)EA為高電平時(shí),單片機(jī)訪問內(nèi)部程序存儲(chǔ)器,當(dāng)EA為低電平時(shí),單片機(jī)直接訪問片外程序存儲(chǔ)器。本設(shè)計(jì)用的是8031,由于8031內(nèi)部無程序存儲(chǔ)器,所以此引腳應(yīng)接地。低電平有效。⑥I/O口引腳:共4個(gè),分別是P0、P1、P2、P3,均為8位口。這4個(gè)I/O口可分別作為基本的Input、Output端口。其中P0口可作為數(shù)據(jù)總線和地址總線〔低8位分時(shí)復(fù)用的端口,P2口可作為地址總線的高8位,即P0口和P2口地起構(gòu)成16位地址總線,可供尋址的地址范圍是:64KB。P3口具有第二功能,即可以產(chǎn)生中斷,定時(shí)計(jì)數(shù)等功能。⑦RD、WR引腳:為讀和寫選通信號(hào),RD用于將單片機(jī)的數(shù)據(jù)寫入外設(shè)中,WR用于從外設(shè)中讀取數(shù)據(jù)。低電平有效AT89C51系列單片機(jī)都是以8031為核心發(fā)展起來的,具有和51系列單片機(jī)及基本結(jié)構(gòu)和軟件特征,其內(nèi)部結(jié)構(gòu)如圖3-2所示:振蕩器及振蕩器及定時(shí)電路AT89C51CPU4K字節(jié)ROM128字節(jié)RAM2個(gè)16位定時(shí)器/計(jì)數(shù)器64K總線擴(kuò)展控制可編程I/O可編程串行口圖3-2AT89C51單片機(jī)框圖3.1.2選用AT89C51單片機(jī)原因在課程設(shè)計(jì)里所需外圍電路簡(jiǎn)單,在設(shè)計(jì)里面使用的引腳較少,占用的資源也比較少。而且該芯片是以AT89C51為核心,性能價(jià)格比高,應(yīng)用成熟,且對(duì)其內(nèi)部結(jié)構(gòu)較為熟悉,芯片功能夠用而且適用,從而選用AT89C51單片機(jī)作為主控芯片。3.2時(shí)鐘電路 本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式的電路。AT89C51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。電路中的電容C1和C2典型值通常選擇為33pF左右。晶體的振蕩頻率的范圍通常是在1.2MHZ~12MHZ之間。晶體的頻率越高,則系統(tǒng)的時(shí)鐘頻率也就越高,單片機(jī)的運(yùn)行速度也就越快。.圖3-3時(shí)鐘電路3.3復(fù)位電路 復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。本次設(shè)計(jì)采用上電復(fù)位電路。上電復(fù)位電路是在上電瞬間來實(shí)現(xiàn)的,其電路如圖3-4所示。上電時(shí),RESET端維持兩個(gè)機(jī)器周期的高電平實(shí)現(xiàn)復(fù)位。圖3-4復(fù)位電路3.4PG160128A顯示電路PG160128A是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及格160×128全點(diǎn)陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示10×8個(gè)<16×16點(diǎn)陣>漢字。主要技術(shù)參數(shù)和性能:模塊內(nèi)自帶-15負(fù)壓,用于LCD的驅(qū)動(dòng)電壓電源VDD:+5V;2.顯示內(nèi)容:160<列>×128<行>點(diǎn)3.全屏幕點(diǎn)陣4.十三種指令5.與CPU接口采用8位數(shù)據(jù)總線并行輸入輸出6.占空比1/1287.工作溫度:-10℃∽+55℃,存儲(chǔ)溫度:-20℃∽+70℃這里通過PG160128A來顯示相關(guān)信息圖3-5顯示電路ADC0832是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的一種8位分辨率、雙通道A/D轉(zhuǎn)換芯片。學(xué)習(xí)并使用ADC0832可是使我們了解A/D轉(zhuǎn)換器的原理,有助于我們單片機(jī)技術(shù)水平的提高。這里通過ADC0832將壓力傳感器輸出的電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),并送入到單片機(jī)中進(jìn)行處理。3.5A/D轉(zhuǎn)換電路4系統(tǒng)軟件設(shè)計(jì)4.1主程序框圖開始開始<1>主程序流程框圖如下:<2>信號(hào)采集子程序框圖如下:開始開始置數(shù)據(jù)區(qū)首地址信號(hào)采集置數(shù)據(jù)區(qū)首地址信號(hào)采集設(shè)置采集個(gè)數(shù)求出壓力值設(shè)置采集個(gè)數(shù)求出壓力值A(chǔ)/D轉(zhuǎn)換開始LCD顯示數(shù)值A(chǔ)/D轉(zhuǎn)換開始LCD顯示數(shù)值等待轉(zhuǎn)換結(jié)束等待轉(zhuǎn)換結(jié)束儲(chǔ)存,轉(zhuǎn)換中斷開始設(shè)置數(shù)據(jù)存儲(chǔ)區(qū)首址設(shè)置采集數(shù)據(jù)個(gè)數(shù)儲(chǔ)存,轉(zhuǎn)換中斷開始設(shè)置數(shù)據(jù)存儲(chǔ)區(qū)首址設(shè)置采集數(shù)據(jù)個(gè)數(shù)對(duì)數(shù)據(jù)進(jìn)行處理恢復(fù)現(xiàn)場(chǎng)返回圖4-3數(shù)字濾波流程框圖波流程框圖4.2顯示子程序框開始開始初始化調(diào)用顯示函數(shù)返回圖4-4顯示子程序流程圖5系統(tǒng)調(diào)試過程通過上面的設(shè)計(jì),設(shè)計(jì)已經(jīng)基本完成。下面主要實(shí)現(xiàn)AltiumDesigner的原理圖、印制板圖的繪制和做相關(guān)檢測(cè),對(duì)Keil進(jìn)行相應(yīng)的檢查和調(diào)試,并用Proteus對(duì)所設(shè)計(jì)系統(tǒng)進(jìn)行仿真。5.1原理圖和印制板圖繪制和檢查5.1.1在protel99se繪制原理圖并進(jìn)行相應(yīng)的ERC檢查圖5-1原理圖的繪制繪制完原理圖之后,對(duì)原理圖進(jìn)行編譯檢測(cè),ERC檢測(cè)結(jié)果。5.1.2在PROTEL99SE生成PCB圖在創(chuàng)建完原理圖后,對(duì)各元器件的引腳進(jìn)行封裝,在原理圖中創(chuàng)建網(wǎng)絡(luò)表<NET>,然后再PROTEL99S中新建PCB,對(duì)于生成的PCB圖中各器件進(jìn)行調(diào)整,并布線,最終生圖5-2生成PCB圖5.2Keil程序調(diào)試程序調(diào)試結(jié)果如下所示:creatinghexfilefrom"壓力檢測(cè)系統(tǒng)"..."壓力檢測(cè)系統(tǒng)"-0Error<s>,0Warning<s>.5.3Proteus仿真調(diào)試在Proteus中建立仿真圖。按下開始仿真按鈕,開始進(jìn)行仿真實(shí)驗(yàn),結(jié)果如圖5-4,圖5-5,圖5-6所示:圖5-4Proteus仿真圖圖5-5Proteus仿真圖圖5-6Proteus仿真圖仿真電路圖中實(shí)現(xiàn)對(duì)壓力檢測(cè)的控制,輸出到PG160128A顯示。結(jié)論通過MPX4250檢測(cè)到壓力信號(hào),轉(zhuǎn)換為電壓值,然后通過ADC0832轉(zhuǎn)換后產(chǎn)生一個(gè)數(shù)字信號(hào)輸入到AT89C51單片機(jī)中進(jìn)行處理,再通過單片機(jī)驅(qū)動(dòng)PG160128A顯示壓力的相關(guān)信息。由于顯示程序的復(fù)雜性,所以選用了C語言作為開放程序加快了開發(fā)進(jìn)度。本次設(shè)計(jì)由于時(shí)間較為倉(cāng)促,難免考慮不周全,還有許多功能需要完善,這需要下來再去深究。在本次課程設(shè)計(jì)里面,我把電路和單片機(jī)必備的一些基本操作技能再次熟悉了一遍。對(duì)于壓力檢測(cè),我只進(jìn)行了最簡(jiǎn)單的程序編寫和仿真,而往往在實(shí)際中是作為一個(gè)系統(tǒng)中的很小子環(huán)節(jié)來進(jìn)行應(yīng)用的,所以還需要我進(jìn)一步學(xué)習(xí)更多的單片機(jī)及相關(guān)測(cè)試傳感器知識(shí)。致謝本課題在選題及進(jìn)行過程中得到宋老師的悉心指導(dǎo)。論文行文過程中,宋老師多次幫助我分析思路,開拓視角,在我遇到困難想放棄的時(shí)候給予我最大的支持和鼓勵(lì)。宋老師嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,踏實(shí)堅(jiān)韌的工作精神,將使我終生受益。再多華麗的言語也顯得蒼白。在此,謹(jǐn)向宋老師致以誠(chéng)摯的謝意和崇高的敬意。

參考文獻(xiàn)附錄一程序源代碼//名稱:160128液晶顯示當(dāng)前壓力#include<AT89X52.H>#include<showfun.h>#include<stdio.h>#include<math.h>#include<stdarg.h>#include<string.h>#include<intrins.h>#defineHZ_CHR_HEIGHT12#defineHZ_CHR_WIDTH12#include<absacc.h>#include<string.h>#defineucharunsignedchar#defineuintunsignedintexterncharfnLCMInit<>;//LCD初始化externvoidfnSetPos<unsignedcharurow,unsignedcharucol>;//設(shè)置當(dāng)前地址externuchardprintf<ucharx,uchary,char*fmt>;//ASCII<8*16>及漢字〔16*16顯示函數(shù)sbitCS=P3^4;sbitCLK=P3^2;sbitDI0=P3^3;uinttheLastTime;//一次鳴響持續(xù)次數(shù)unsignedchardsp[4];//作為壓力存儲(chǔ)傳入函數(shù)顯示ucharGet_AD_Result<>{uchari,dat1=0,dat2=0;CS=0;CLK=0;//起始控制位DI0=1;_nop_<>;_nop_<>;CS=0;_nop_<>;_nop_<>;CLK=1;_nop_<>;_nop_<>;//第一個(gè)下降沿之前,設(shè)DI=1/0//選擇單端/差分〔SGL/DIF模式中的單端輸入模式CLK=0;DI0=1;_nop_<>;_nop_<>;CLK=1;_nop_<>;_nop_<>;//第二個(gè)下降沿之前,設(shè)DI=0/1,選擇CH0/CH1CLK=0;DI0=0;_nop_<>;_nop_<>;CLK=1;DI0=1;_nop_<>;_nop_<>;//第三個(gè)下降沿之前,設(shè)DI=1CLK=0;DI0=1;_nop_<>;_nop_<>;//第4-11個(gè)下降沿讀數(shù)據(jù)〔MSB->LSBfor<i=0;i<8;i++>{CLK=1;_nop_<>;_nop_<>;CLK=0;_nop_<>;_nop_<>;dat1=dat1<<1|DI0;}for<i=0;i<8;i++>{dat2=dat2|<<uchar><DI0><<i>;CLK=1;_nop_<>;_nop_<>;CLK=0;_nop_<>;_nop_<>;}CS=1;return<dat1==dat2>?dat1:0;}unsignedchardsp[4];//作為壓力存儲(chǔ)傳入函數(shù)顯示voiddelay<>//蜂鳴器鳴響間隔延時(shí){uinti,j=200;while<j-->{for<i=0;i<=500;i++>;}}voidmain<>{ucharAD_Result;//獲取的AD值floatad=0;//當(dāng)前壓力值floatY1,Y2,dY;//限幅濾波dY=2;//定時(shí)器初始化fnLCMInit<>;fnSetPos<0,0>;dprintf<30,12,"液晶屏顯示當(dāng)前壓力">;dprintf<110,58,"千帕">;AD_Result=Get_AD_Result<>;Y1=<AD_Result*5.0/255.0/5.1-0.04>/0.00369-3.45;while<1>{AD_Result=Get_AD_Result<>;Y1=<AD_Result*5.0/255.0/5.1-0.04>/0.00369-3.45;if<abs<Y2-Y1><=dY>//變化不能太快,否則會(huì)失效{ad=Y2;Y1=Y2;}else{ad=Y1;}sprintf<dsp,"%-3.0f",ad>;dprintf<82,58,dsp>;}}//LCD顯示控制程序#defineASC_CHR_WIDTH8#defineASC_CHR_HEIGHT12//數(shù)字字符點(diǎn)陣庫(kù),粗體初號(hào),32*64點(diǎn)陣,32/8=4,每個(gè)數(shù)字需要4*64字節(jié),共10個(gè)數(shù)字charcodeMSK1[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};charcodeMSK2[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};codeucharconstuPowArr[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};ucharcodeASC_MSK[58*10]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,//<0x20時(shí),打印此字0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//''0x00,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00,//'!'0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'"'0x00,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0xfe,0x6c,0x6c,0x00,0x00,//'#'0x30,0x30,0x7c,0xc0,0xc0,0x78,0x0c,0x0c,0xf8,0x30,0x30,0x00,//'$'0x00,0x00,0x00,0xc4,0xcc,0x18,0x30,0x60,0xcc,0x8c,0x00,0x00,//'%'0x00,0x70,0xd8,0xd8,0x70,0xfa,0xde,0xcc,0xdc,0x76,0x00,0x00,//'&'0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'''0x00,0x0c,0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x0c,0x00,0x00,//'<'0x00,0x60,0x30,0x18,0x0c,0x0c,0x0c,0x18,0x30,0x60,0x00,0x00,//'>'0x00,0x00,0x00,0x66,0x3c,0xff,0x3c,0x66,0x00,0x00,0x00,0x00,//'*'0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00,//'+'0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x60,0x00,//','0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,//'-'0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x00,0x00,//'.'0x00,0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00,//'/'0x00,0x7c,0xc6,0xce,0xde,0xd6,0xf6,0xe6,0xc6,0x7c,0x00,0x00,//'0'0x00,0x10,0x30,0xf0,0x30,0x30,0x30,0x30,0x30,0xfc,0x00,0x00,//'1'0x00,0x78,0xcc,0xcc,0x0c,0x18,0x30,0x60,0xcc,0xfc,0x00,0x00,//'2'0x00,0x78,0xcc,0x0c,0x0c,0x38,0x0c,0x0c,0xcc,0x78,0x00,0x00,//'3'0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x1e,0x00,0x00,//'4'0x00,0xfc,0xc0,0xc0,0xc0,0xf8,0x0c,0x0c,0xcc,0x78,0x00,0x00,//'5'0x00,0x38,0x60,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,0x78,0x00,0x00,//'6'0x00,0xfe,0xc6,0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x00,0x00,//'7'0x00,0x78,0xcc,0xcc,0xec,0x78,0xdc,0xcc,0xcc,0x78,0x00,0x00,//'8'0x00,0x78,0xcc,0xcc,0xcc,0x7c,0x18,0x18,0x30,0x70,0x00,0x00,//'9'0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x00,0x00,0x00,//':'};typedefstructtypFNT_GB16//漢字字模顯示數(shù)據(jù)結(jié)構(gòu){charIndex[2];charMsk[24];};structtypFNT_GB16codeGB_16[]={"液",0x01,0x00,0x41,0x00,0x2F,0xF0,0x84,0x80,0x54,0xE0,0x29,0x20,0x5A,0xA0,0xCD,0x40,0x49,0x40,0x48,0x80,0x49,0x40,0x4E,0x30,//"液1""晶",0x1F,0x80,0x10,0x80,0x1F,0x80,0x10,0x80,0x1F,0x80,0x00,0x00,0x7B,0xE0,0x4A,0x20,0x7B,0xE0,0x4A,0x20,0x7B,0xE0,0x00,0x00,//"晶1""屏",0x7F,0xE0,0x40,0x20,0x7F,0xE0,0x48,0x80,0x45,0x00,0x5F,0xE0,0x44,0x80,0x7F,0xF0,0x44,0x80,0x44,0x80,0x48,0x80,0x90,0x80,//"屏1""顯",0x00,0x40,0x3F,0xE0,0x20,0x40,0x3F,0xC0,0x20,0x40,0x3F,0xC0,0x49,0x00,0x29,0x20,0x29,0x40,0x29,0x80,0x09,0x20,0xFF,0xF0,//"顯1""示",0x00,0x40,0x7F,0xE0,0x00,0x00,0x00,0x20,0xFF,0xF0,0x02,0x00,0x12,0x80,0x12,0x40,0x22,0x20,0x42,0x10,0x8A,0x10,0x04,0x00,//"示1""當(dāng)",0x04,0x00,0x44,0x40,0x24,0x80,0x04,0x00,0x7F,0xC0,0x00,0x40,0x00,0x40,0x3F,0xC0,0x00,0x40,0x00,0x40,0x7F,0xC0,0x00,0x40,//"當(dāng)1""前",0x20,0x80,0x11,0x00,0xFF,0xE0,0x00,0x00,0x7C,0x40,0x45,0x40,0x7D,0x40,0x45,0x40,0x7D,0x40,0x45,0x40,0x44,0x40,0x4C,0xC0,//"前1""壓",0x00,0x00,0x7F,0xE0,0x40,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x5F,0xC0,0x42,0x00,0x42,0x80,0x42,0x40,0x42,0x00,0xBF,0xE0,//"壓1""力",0x08,0x00,0x08,0x00,0xFF,0xC0,0x08,0x40,0x08,0x40,0x08,0x40,0x08,0x40,0x10,0x40,0x10,0x40,0x20,0x40,0x40,0x40,0x83,0x80,//"力1""千",0x00,0x00,0x03,0xC0,0x7C,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0xFF,0xE0,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,//"千1""帕",0x20,0x80,0x21,0x00,0xFB,0xE0,0xAA,0x20,0xAA,0x20,0xAA,0x20,0xAB,0xE0,0xAA,0x20,0xAA,0x20,0xBA,0x20,0x23,0xE0,0x22,0x20,//"帕1"};uchargCurRow,gCurCol;//圖形當(dāng)前行.列存儲(chǔ),行高16點(diǎn),列寬8點(diǎn)uchartCurRow,tCurCol;//文本當(dāng)前行.列存儲(chǔ),行高8點(diǎn),列寬8點(diǎn)ucharShowModeSW;//當(dāng)前顯示模式uinttxthome,grhome;ucharfnST01<>;//狀態(tài)位STA1,STA0判斷ucharfnST3<>;//狀態(tài)位ST3判斷ucharfnPR1<ucharuCmd,ucharuPar1,ucharuPar2>;//寫雙參數(shù)的指令ucharfnPR11<ucharuCmd,ucharuParl>;//寫單參數(shù)的指令ucharfnPR12<ucharuCmd>;//寫無參數(shù)的指令ucharfnPR13<ucharuData>;//寫數(shù)據(jù)ucharfnPR2<>;//讀數(shù)據(jù)voidfnSetPos<ucharurow,ucharucol>;//設(shè)置當(dāng)前地址charfnLCMInit<>;//LCM初始化uchardprintf<ucharx,uchary,char*fmt>;voidOutToLCD<ucharDat,ucharx,uchary>;//顯示輔助函數(shù)ucharfnST01<>//狀態(tài)位STA1,STA0判斷〔讀寫指令和讀寫數(shù)據(jù){uchari;for<i=10;i>0;i-->{if<<LCMCW&0x03>==0x03>break;}returni;//若返回0,說明錯(cuò)誤}ucharfnST3<void>//狀態(tài)位ST3判斷〔數(shù)據(jù)自動(dòng)寫狀態(tài){uchari;for<i=10;i>0;i-->{if<<LCMCW&0x08>==0x08>break;}returni;//若返回0,說明錯(cuò)誤}ucharfnPR1<ucharuCmd,ucharuPar1,ucharuPar2>//寫雙參數(shù)的指令{if<fnST01<>==0>return1;LCMDW=uPar1;if<fnST01<>==0>return2;LCMDW=uPar2;if<fnST01<>==0>return3;LCMCW=uCmd;return0;//返回0成功}ucharfnPR11<ucharuCmd,ucharuParl>//寫單參數(shù)的指令{if<fnST01<>==0>return1;LCMDW=uParl;if<fnST01<>==0>return2;LCMCW=uCmd;return0;//返回0成功}ucharfnPR12<ucharuCmd>//寫無參數(shù)的指令{if<fnST01<>==0>return1;LCMCW=uCmd;return0;//返回0成功}ucharfnPR13<ucharuData>//寫數(shù)據(jù){if<fnST3<>==0>return1;LCMDW=uData;return0;//返回0成功}ucharfnPR2<void>//讀數(shù)據(jù){if<fnST01<>==0>return1;returnLCMDW;}voidfnSetPos<ucharurow,ucharucol>//設(shè)置當(dāng)前地址{uintiPos;iPos=urow*20+ucol;fnPR1<LC_ADD_POS,iPos&0xFF,iPos/256>;gCurRow=urow;gCurCol=ucol;}charfnLCMInit<void>//LCM初始化{reset=0;reset=1;fnPR1<LC_TXT_STP,0x00,0x00>;//文本顯示區(qū)首地址fnPR1<LC_TXT_WID,0x14,0x00>;//文本顯示區(qū)寬度fnPR1<LC_GRH_STP,0x00,0x00>;//圖形顯示區(qū)首地址fnPR1<LC_GRH_WID,0x14,0x00>;//文本顯示區(qū)寬度fnPR11<LC_CGR_POS,CGRAMSTART>>11>;fnPR12<LC_CUR_SHP|0x01>;//光標(biāo)形狀fnPR12<LC_MOD_OR>;//顯示方式設(shè)置fnPR12<LC_DIS_SW|0x08>;grhome=GRSTART;txthome=TXTSTART;return0;}uchardprintf<ucharx,uchary,char*fmt>//ASCII及漢字顯示函數(shù){charc1,c2,cData;uchari=0,j,u

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論