液晶屏顯示數(shù)字電壓表_第1頁(yè)
液晶屏顯示數(shù)字電壓表_第2頁(yè)
液晶屏顯示數(shù)字電壓表_第3頁(yè)
液晶屏顯示數(shù)字電壓表_第4頁(yè)
液晶屏顯示數(shù)字電壓表_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 中科網(wǎng)1 引言數(shù)字電壓表的基本工作原理是利用A/D轉(zhuǎn)換電路將待測(cè)的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),通過相應(yīng)換算后將測(cè)試結(jié)果以數(shù)字形式顯示出來的一種電壓表。較之于一般的模擬電壓表,數(shù)字電壓表具有精度高、測(cè)量準(zhǔn)確、讀數(shù)直觀、使用方便等優(yōu)點(diǎn)。電壓表的數(shù)字化測(cè)量,關(guān)鍵在于如何把隨時(shí)連續(xù)變化的模擬量轉(zhuǎn)化成數(shù)字量,完成這種轉(zhuǎn)換的電路叫模數(shù)轉(zhuǎn)換器(A/D)。數(shù)字電壓表的核心部件就是A/D轉(zhuǎn)換器,由于各種不同的A/D轉(zhuǎn)換原理構(gòu)成了各種不同類型的DVM。一般說來,A/D轉(zhuǎn)換的方式可分為兩類:積分式和逐次逼近式。積分式A/D轉(zhuǎn)換器是先用積分器將輸入的模擬電壓轉(zhuǎn)換成時(shí)間或頻率,再將其數(shù)字化。根據(jù)轉(zhuǎn)化的中間量不同,它又分為

2、U-T(電壓-時(shí)間)式和U-F(電壓-頻率)式兩種。逐次逼近式A/D轉(zhuǎn)換器分為比較式和斜坡電壓式,根據(jù)不同的工作原理,比較式又分為逐次比較式及零平衡式等。斜坡電壓式又分為線性斜坡式和階梯斜坡式兩種。在高精度數(shù)字電壓表中,常采用由積分式和比較式相結(jié)合起來的復(fù)合式A/D轉(zhuǎn)換器。本設(shè)計(jì)以AT89C51單片機(jī)為核心,以逐次比較型A/D轉(zhuǎn)換器ADC0808、液晶顯示器LCD1602為主體,構(gòu)造了一款簡(jiǎn)易的數(shù)字電壓表,能夠測(cè)量1路05V直流電壓,最小分辨率0.02V。更多資料請(qǐng)登錄 中科網(wǎng) 2 仿真軟件介紹2.1 仿真軟件簡(jiǎn)介2.1.1 Proteus 6 ProfessionalISIS 6 Profe

3、ssiona軟件是它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。它從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,

4、并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。ISIS 6 Professiona軟件具有的功能:原理布圖;PCB自動(dòng)或人工布線;SPICE電路仿真。2.1.2 Keil uVision2Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。Keil C51集成開發(fā)環(huán)境主要由菜單欄、工具欄、源文件編輯窗口、工程窗口和輸出窗口五部分組成。工具欄為一組快捷工具圖標(biāo),主要包括基本文件工具欄、建造工具欄和調(diào)試工具欄,基本文件工具欄包括新建、打開、拷貝、粘貼

5、等基本操作。建造工具欄主要包括文件編譯、目標(biāo)文件編譯連接、所有目標(biāo)文件編譯連接、目標(biāo)選項(xiàng)和一個(gè)目標(biāo)選擇窗口。調(diào)試工具欄位于最后,主要包括一些仿真調(diào)試源程序的基本操作,如單步、復(fù)位、全速運(yùn)行等。在工具欄下面,默認(rèn)有三個(gè)窗口。左邊的工程窗口包含一個(gè)工程的目標(biāo)(target)、組(group)和項(xiàng)目文件。右邊為源文件編輯窗口,編輯窗口實(shí)質(zhì)上就是一個(gè)文件編輯器,我們可以在這里對(duì)源文件進(jìn)行編輯、修改、粘貼等。下邊的為輸出窗口,源文件編譯之后的結(jié)果顯示在輸出窗口中,會(huì)出現(xiàn)通過或錯(cuò)誤(包括錯(cuò)誤類型及行號(hào))的提示。3 硬件設(shè)計(jì)3.1單片機(jī)控制模塊設(shè)計(jì)單片機(jī)控制模塊的作用是為控制各單元電路的運(yùn)行并完成數(shù)據(jù)的換算

6、或處理,主要由單片機(jī)、時(shí)鐘電路、復(fù)位電路組成。3.1.1時(shí)鐘電路單片機(jī)工作的時(shí)間基準(zhǔn)是由時(shí)鐘電路提供的,在單片機(jī)的XTAL1和XYAL2兩個(gè)管腳接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時(shí)鐘電路,電路中電容器和對(duì)振蕩頻率有微調(diào)作用,通常取(30±10)pF石英晶體選擇6MHz或12MHz都可以。時(shí)鐘電路如圖1所示。 圖1 系統(tǒng)時(shí)鐘電路 圖2 系統(tǒng)復(fù)位電路3.1.2復(fù)位電路單片機(jī)的RST管腳為主機(jī)提供了一個(gè)外部復(fù)位信號(hào)輸入口。復(fù)位信號(hào)是高電平有效,高電平有效的持續(xù)時(shí)間為2個(gè)機(jī)器周期以上。單片機(jī)的復(fù)位方式可由手動(dòng)復(fù)位方式完成。復(fù)位電路如圖2所示。3.2逐次逼近式A/D轉(zhuǎn)換模塊設(shè)計(jì)逐次逼近型A/

7、D轉(zhuǎn)換器屬于直接型A/D轉(zhuǎn)換器,它能把輸入的模擬電壓直接轉(zhuǎn)換為輸出的數(shù)字代碼,而不需要經(jīng)過中間變量。主要由比較器、環(huán)形分配器、控制門、寄存器與D/A轉(zhuǎn)換器組成。3.2.1 ADC0808簡(jiǎn)介1ADC0808引腳功能圖3 引腳圖IN0IN7:8路模擬量輸入。A、B、C:3位地址輸入,2個(gè)地址輸入端的不同組合選擇八路模擬量輸入。ALE:地址鎖存啟動(dòng)信號(hào),在ALE的上升沿,將A、B、C上的通道地址鎖存到內(nèi)部的地址鎖存器。D0D7:八位數(shù)據(jù)輸出線,A/D轉(zhuǎn)換結(jié)果由這8根線傳送給單片機(jī)。OE:允許輸出信號(hào)。當(dāng)OE=1時(shí),即為高電平,允許輸出鎖存器輸出數(shù)據(jù)。START:?jiǎn)?dòng)信號(hào)輸入端,START為正脈沖,

8、其上升沿清除ADC0808的內(nèi)部的各寄存器,其下降沿啟動(dòng)A/D開始轉(zhuǎn)換。EOC:轉(zhuǎn)換完成信號(hào),當(dāng)EOC上升為高電平時(shí),表明內(nèi)部A/D轉(zhuǎn)換已完成。2ADC0808內(nèi)部結(jié)構(gòu)圖逐次逼近型A/D轉(zhuǎn)換器ADC0808由八路模擬開關(guān)、地址鎖存與譯碼器、比較器、D/A轉(zhuǎn)換器、寄存器、控制電路和三態(tài)輸出鎖存器等組成。其內(nèi)部結(jié)構(gòu)如圖4所示。圖4 ADC0808內(nèi)部結(jié)構(gòu)3.2.2 A/D轉(zhuǎn)換電路設(shè)計(jì)集成摸數(shù)轉(zhuǎn)換芯片ADC0808實(shí)現(xiàn)的A/D轉(zhuǎn)換電路如圖5所示,被測(cè)信號(hào)由ADC0808模擬輸入端輸入,完成A/D轉(zhuǎn)換后送入單片機(jī),經(jīng)相應(yīng)處理后送出顯示。圖5 ADC0808與單片機(jī)的連接3.3顯示模塊設(shè)計(jì)3.3.1 L

9、CD顯示模塊LCD顯示器分為字段顯示和字符顯示兩種。其中字段顯示與LED顯示相似,只要送對(duì)應(yīng)的信號(hào)到相應(yīng)的管腳就能顯示。字符顯示是根據(jù)需要顯示基本字符。本設(shè)計(jì)采用的是字符型顯示。系統(tǒng)中采用LCD1602作為顯示器件輸出信息。與傳統(tǒng)的LED數(shù)碼管顯示器件相比,液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等優(yōu)點(diǎn),而且不需要外加驅(qū)動(dòng)電路,現(xiàn)在液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的顯示器件了。LCD1602可以顯示2行16個(gè)漢字。3.3.2 LCD1602的引腳功能LCD1602模塊的引腳如圖6所示,其引腳功能如下:RS:數(shù)據(jù)和指令選擇控制端,RS=0命令狀態(tài);RS=1數(shù)據(jù)。R/W:讀寫控制線,R

10、/W=0寫操作;R/W=1讀操作。A:背光控制正電源,K:背光控制地。E:數(shù)據(jù)讀寫操作控制位,E線向LCD模塊發(fā)送一個(gè)脈沖,LCD模塊與單片機(jī)間將進(jìn)行一次數(shù)據(jù)交換。DB0DB7:數(shù)據(jù)線,可以用8位連接,也可以只用高4位連接,節(jié)約單片機(jī)資源。VDD:電源端 ,VEE:亮度控制端(1-5V),VSS:接地端。VSS VDD VO RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A KLCD 模 塊1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16圖6 LCD1602模塊3.3.3 LCD1602的顯示操作1四種基本操作LCD有四種基本操作

11、,具體如表1所示。表1 LCD與單片機(jī)之間有四種基本操作RSR/W操作00寫命令操作(初始化,光標(biāo)定位等)01讀狀態(tài)操作(讀忙標(biāo)志位)10寫數(shù)據(jù)操作(要顯示內(nèi)容)11讀數(shù)據(jù)操作(可以把顯示存儲(chǔ)區(qū)中的數(shù)據(jù)反讀出來)(1)讀狀態(tài)字:執(zhí)行讀狀態(tài)字操作,如表3-1滿足RS=0,R/W=1。根據(jù)管腳功能,當(dāng)為有效電平時(shí),狀態(tài)命令字可從LCD模塊傳輸?shù)綌?shù)據(jù)總線。同時(shí)可以保持一段時(shí)間,從而實(shí)現(xiàn)讀狀態(tài)字的功能。讀狀態(tài)字流程如圖7所示。圖7 讀入狀態(tài)字流程圖(2)命令字表2所示為命令字,其主要介紹了指令名稱、控制信號(hào)及控制代碼。其指令名稱是指要實(shí)現(xiàn)的功能;控制代號(hào)是采用的十六進(jìn)制的數(shù)值表示的。1)清零操作是指輸

12、入某命令字后即能將整個(gè)屏幕顯示的內(nèi)容全部清除;2)歸home位:將光標(biāo)送到初始位;其中的號(hào)為任意,高低電平均可;3)輸入方式:設(shè)光標(biāo)移動(dòng)方向并指定整體顯示,是否移動(dòng)。I/D=0:減量方式,S=1:移位方式,S=0:不移位;4)顯示狀態(tài):D指設(shè)置整體顯示開關(guān);C指設(shè)置光標(biāo)顯示開關(guān);B指設(shè)置光標(biāo)的字符閃耀;5)光標(biāo)畫面滾動(dòng):R/L指右移或左移;S/C指移動(dòng)總體或光標(biāo);6)功能設(shè)置:DL接口數(shù)位,L指顯示行數(shù),F(xiàn)顯示字型;如DL=1:8位=0,4位N=1:2行=0:1行,G=1:5×10=0:5×7(點(diǎn)陣);7)CGRAM地址設(shè)制:相當(dāng)于一個(gè)數(shù)據(jù)庫(kù),可以在其中選擇所需要的符號(hào);8

13、)DDRAM地址設(shè)制:顯示定位;9)讀BF和AC:B為最高位忙的標(biāo)志,F(xiàn)為標(biāo)志位;10)寫數(shù)據(jù):將數(shù)據(jù)按要求寫入到對(duì)應(yīng)的單元;11)讀數(shù)據(jù):讀相應(yīng)單元內(nèi)的數(shù)據(jù);表2 命令字指令名稱控制信號(hào)控制代碼RSRWD7D6D5D4D3D2D1D0清屏0000000001歸HOME位000000001*輸入方式設(shè)制00000001I/DS顯示狀態(tài)設(shè)制0000001DCB無標(biāo)畫面滾動(dòng)000001S/CRL*功能設(shè)置00001DLNF*CGRAM地址設(shè)制0001A5A4A3A2A1A0DDRAM地址設(shè)制001A6A5A4A3A2A1A0讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC0寫數(shù)據(jù)10數(shù)

14、 據(jù)讀數(shù)據(jù)11數(shù) 據(jù)(3)寫命令字由表2可知當(dāng)RS=0,R/W=0時(shí),才可以通過單片機(jī)或用戶指令把數(shù)據(jù)寫到LCD模塊,此時(shí)就對(duì)LCD進(jìn)行調(diào)制??刹捎貌樵兎绞剑合茸x入狀態(tài)字,再判斷忙標(biāo)志位,最后寫命令字。圖8所示為寫命令字的流程圖。圖8 寫命令字流程圖1)定義光標(biāo)位置顯示數(shù)據(jù)的某位,就是把顯示數(shù)據(jù)寫在相應(yīng)的DDRAM地址中,DDRAM地址占7位。Set DDRAM address命令如表3所示。光標(biāo)定位,寫入一個(gè)顯示字符后,DDRAM地址會(huì)自動(dòng)加1或減1,加或減由輸入方式設(shè)置。表3 Set DDRAM address命令RSR/WDB7DB6DB5DB4DB3DB2DB1DB0001AC6AC5

15、AC4AC3AC2AC1AC0第1行DDRAM地址與第2行DDRAM地址并不連續(xù),如表3-4所示。表4 DDRAM地址row12345141516line180H81H82H83H84H8dH8eH8fHline20c0H0c1H0c2H0c3H0c4H0cdH0ceH0cfH2)LCD初始化從通電開始延時(shí),先經(jīng)過判忙后再進(jìn)行功能設(shè)置,過一段時(shí)間后可以設(shè)制顯示狀態(tài)(如設(shè)制行、位或陣列)再經(jīng)過延時(shí)清屏后才可以設(shè)置輸入方式,具體實(shí)現(xiàn)過程如圖9所示。圖9 LCD初始化流程圖2LCD顯示程序設(shè)計(jì)LCD顯示程序的設(shè)計(jì)一般先要確定LCD的初始化、光標(biāo)定位、確定顯示字符后,顯示流程如圖10顯示。圖10 LC

16、D顯示程序流程圖4系統(tǒng)軟件設(shè)計(jì)根據(jù)需要,可將系統(tǒng)軟件按照功能劃分為4個(gè)模塊,分別是主程序模塊、A/D轉(zhuǎn)換模塊、液晶顯示模塊、中斷服務(wù)程序模塊(改變顯示的小數(shù)點(diǎn)位置),各模塊的功能關(guān)系如圖11所示。編寫系統(tǒng)軟件時(shí),可首先編寫各模塊的底層驅(qū)動(dòng)程序,而后是系統(tǒng)聯(lián)機(jī)調(diào)試,編寫上層主程序。系統(tǒng)主程序液晶管顯示A/D轉(zhuǎn)換中斷服務(wù).圖11 系統(tǒng)軟件框圖4.1主程序設(shè)計(jì)圖12 主程序流程圖主程序主要負(fù)責(zé)初始化工作:設(shè)置定時(shí)器、寄存器的初值,啟動(dòng)A/D轉(zhuǎn)換,讀取轉(zhuǎn)換結(jié)果,處理量程轉(zhuǎn)換響應(yīng),控制液晶實(shí)時(shí)顯示等,其流程圖如圖12所示。4.2 A/D轉(zhuǎn)換程序A/D轉(zhuǎn)換程序的功能是采集數(shù)據(jù),在整個(gè)系統(tǒng)設(shè)計(jì)中占有很高的地

17、位。當(dāng)系統(tǒng)設(shè)置好后,單片機(jī)掃描轉(zhuǎn)換結(jié)束管腳P2.6的輸入電平狀態(tài),當(dāng)輸入為高電平則轉(zhuǎn)換完成,將轉(zhuǎn)換的數(shù)值轉(zhuǎn)換并顯示輸出。若輸入為低電平,則繼續(xù)掃描。程序流程圖如圖13所示。圖13 A/D轉(zhuǎn)換程序流程圖程序如下:#define START P3_4 /ATART,ALE接口。0->1->0:啟動(dòng)AD轉(zhuǎn)換。#define EOC P3_3 /轉(zhuǎn)換完畢由0變1.#define OUTPORT P2 /AD轉(zhuǎn)換函數(shù),返回轉(zhuǎn)換結(jié)果。unsigned int uiADTransform()unsigned int uiResult;START=1; /啟動(dòng)AD轉(zhuǎn)換。START=0;while(

18、EOC=0); /等待轉(zhuǎn)換結(jié)束。uiResult=OUTPORT; /出入轉(zhuǎn)換結(jié)果。uiResult=(100*uiResult)/51; /處理運(yùn)算結(jié)果。return uiResult; 5 系統(tǒng)仿真首先采用Keil Vision編譯器進(jìn)行源程序編譯及仿真調(diào)試,調(diào)試好程序后將目標(biāo)文件導(dǎo)入Proteus進(jìn)行軟件調(diào)試。在Proteus ISIS編輯窗口中單擊開始仿真按鈕,4位LED數(shù)碼管顯示相應(yīng)的電壓值。調(diào)試結(jié)果如圖14所示。圖14 仿真結(jié)果圖6 結(jié)論本設(shè)計(jì)以AT89C51單片機(jī)為控制核心,通過集成摸數(shù)轉(zhuǎn)換芯片ADC0808將被測(cè)信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),經(jīng)單片機(jī)內(nèi)部程序處理后,由液晶顯示器LCD16

19、02顯示測(cè)量結(jié)果。仿真測(cè)試表明,系統(tǒng)性能良好,測(cè)量讀數(shù)穩(wěn)定易讀、更新速度合理,直流電壓測(cè)量范圍為0.005.00V,最小分辨率為0.02V,滿足任務(wù)書指標(biāo)要求。但是,該系統(tǒng)也存在一定程度的不足,例如:1、輸入電壓易發(fā)生干擾不穩(wěn)定,且驅(qū)動(dòng)能力可能存在不足,需在被測(cè)信號(hào)的輸入端加上一部分驅(qū)動(dòng)電路,比如將量程轉(zhuǎn)換電路改成帶放大能力的自動(dòng)量程轉(zhuǎn)換電路,將幅值較小的信號(hào)經(jīng)適當(dāng)放大后再測(cè)量,可顯著提高精度;2、輸出量可用平均值算法來改善,使測(cè)量準(zhǔn)確度更高。3、若能將測(cè)量的電壓值實(shí)時(shí)保存,使用時(shí)將更方便。4、ADC0808可實(shí)現(xiàn)對(duì)8個(gè)通道的輸入信號(hào)輪流轉(zhuǎn)換,本設(shè)計(jì)僅僅使用了其中一個(gè)通道,造成了較大的資源浪費(fèi)

20、。若能對(duì)電路稍加改進(jìn),實(shí)現(xiàn)對(duì)多路信號(hào)的輪流測(cè)量并自動(dòng)保存相應(yīng)結(jié)果,其應(yīng)用價(jià)值將會(huì)更大。參考文獻(xiàn)1 徐愛鈞.智能化測(cè)量控制儀表原理 M.北京:北京航空航天大學(xué)出版社,20042 吳金戌,沈慶陽(yáng),郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用M.北京:清華大學(xué)出版社,20023 黃智偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽訓(xùn)練教程M.北京:電子工業(yè)出版社,20044 汪德彪.MCS-51單片機(jī)原理及接口技術(shù)M. 第1版.北京:電子工業(yè)出版社,2003附錄源程序:#include "includes.h"#define TIME0H 0x3C#define TIME0L 0xB0 /全局變量unsigned

21、 char uc_Clock=0;/定時(shí)器0中斷計(jì)數(shù)bit b_DATransform=0; /把電壓顯示在LCD上void vShowVoltage(unsigned int uiNumber)unsigned char ucaNumber3,ucCount;if(uiNumber>999)uiNumber=999;ucaNumber0=uiNumber/100;/把計(jì)算數(shù)字的每個(gè)位存入數(shù)組。ucaNumber1=(uiNumber-100*(int)ucaNumber0)/10;ucaNumber2=uiNumber-100*(int)ucaNumber0-10*ucaNumber1

22、;for(ucCount=0;ucCount<3;ucCount+)vShowOneChar(ucaNumberucCount+48);/從首位到末位逐一輸出。if(ucCount=0)vShowOneChar('.');/*主函數(shù)*void main()/<<<<<<<<<<<設(shè)置定時(shí)器0>>>>>>>>>>>>>>>>>TMOD=0x01;/定時(shí)器0,模式1。TH0=TIME0H;TL0=TIME0L;

23、TR0=1;/啟動(dòng)定時(shí)器。ET0=1;/開定時(shí)器中斷。EA=1;/開總中斷vdInitialize();vWriteCMD(0x84); /寫入顯示起始地址(第二行第一個(gè)位置)vShowChar("Voltage:");vWriteCMD(0xC9);vShowChar("(V)");while(1)if(b_DATransform=1)b_DATransform=0;vWriteCMD(0xC4);vShowVoltage(uiADTransform();/<<<<<<<定時(shí)器0中斷函數(shù)>>>

24、>>>>>>>>void Time0() interrupt 1if(uc_Clock=0)uc_Clock=5;b_DATransform=1;elseuc_Clock-;TH0=TIME0H; /恢復(fù)定時(shí)器0。TL0=TIME0L;/<<<<<<<<<<<<<<<<<<<AD轉(zhuǎn)換函數(shù)>>>>>>>>>>>>>>>>>>>

25、;#include <at89x51.h>#define START P3_4 /ATART,ALE接口。0->1->0:啟動(dòng)AD轉(zhuǎn)換。#define EOC P3_3 /轉(zhuǎn)換完畢由0變1.#define OUTPORT P2 /AD轉(zhuǎn)換函數(shù),返回轉(zhuǎn)換結(jié)果。*/轉(zhuǎn)換結(jié)果是3位數(shù),小數(shù)點(diǎn)在百位與十位之間*unsigned int uiADTransform()unsigned int uiResult;START=1; /啟動(dòng)AD轉(zhuǎn)換。START=0;while(EOC=0); /等待轉(zhuǎn)換結(jié)束。uiResult=OUTPORT; /出入轉(zhuǎn)換結(jié)果。uiResult=(100

26、*uiResult)/51; /處理運(yùn)算結(jié)果。return uiResult;/*驅(qū)動(dòng)程序*/<<<<<<<<<<<<頭文件及宏定義>>>>>>>>>>#include "SMC1602.h"/<<<<<<<<<<<<<<<<把1個(gè)命令寫入LCD>>>>>>>>>>void vWriteCM

27、D(unsigned char ucCommand) vDelay();/先延時(shí)。LCDE=1;/然后把改為寫入命令狀態(tài)。LCDRS=0;LCDRW=0;LCDPORT=ucCommand;/再輸出命令。LCDE=0;/最后執(zhí)行命令。/<<<<<<<<<<<<<把1個(gè)數(shù)據(jù)寫入LCD>>>>>>>>>void vWriteData(unsigned char ucData) vDelay(); /先延時(shí)。 LCDE=1; /然后把改為寫入數(shù)據(jù)狀態(tài)。LCDRS=1;L

28、CDRW=0;LCDPORT=ucData; /再輸出數(shù)據(jù)。LCDE=0; /最后顯示數(shù)據(jù)。void vShowOneChar(unsigned char ucChar)switch(ucChar)case ' ': vWriteData(0x20);break;case '!': vWriteData(0x21);break;case '"': vWriteData(0x22);break;case '#': vWriteData(0x23);break;case '$': vWriteData(0x2

29、4);break;case '%': vWriteData(0x25);break;case '&': vWriteData(0x26);break;case '>': vWriteData(0x27);break;case '(': vWriteData(0x28);break;case ')': vWriteData(0x29);break;case '*': vWriteData(0x20);break;case '+': vWriteData(0x2A);bre

30、ak;case '-': vWriteData(0x2D);break;case '/': vWriteData(0x2F);break;case '=': vWriteData(0x3D);break;case '<': vWriteData(0x3E);break;case '?': vWriteData(0x3F);break;case '.': vWriteData(0x2E);break;case ':': vWriteData(0x3A);break;case &#

31、39;0': vWriteData(0x30);break;case '1': vWriteData(0x31);break;case '2': vWriteData(0x32);break;case '3': vWriteData(0x33);break;case '4': vWriteData(0x34);break;case '5': vWriteData(0x35);break;case '6': vWriteData(0x36);break;case '7': vW

32、riteData(0x37);break;case '8': vWriteData(0x38);break;case '9': vWriteData(0x39);break;case 'A': vWriteData(0x41);break;case 'B': vWriteData(0x42);break;case 'C': vWriteData(0x43);break;case 'D': vWriteData(0x44);break;case 'E': vWriteData(0x45

33、);break;case 'F': vWriteData(0x46);break;case 'G': vWriteData(0x47);break;case 'H': vWriteData(0x48);break;case 'I': vWriteData(0x49);break;case 'J': vWriteData(0x4A);break;case 'K': vWriteData(0x4B);break;case 'L': vWriteData(0x4C);break;case

34、'M': vWriteData(0x4D);break;case 'N': vWriteData(0x4E);break;case 'O': vWriteData(0x4F);break;case 'P': vWriteData(0x50);break;case 'Q': vWriteData(0x51);break;case 'R': vWriteData(0x52);break;case 'S': vWriteData(0x53);break;case 'T':

35、vWriteData(0x54);break;case 'U': vWriteData(0x55);break;case 'V': vWriteData(0x56);break;case 'W': vWriteData(0x57);break;case 'X': vWriteData(0x58);break;case 'Y': vWriteData(0x59);break;case 'Z': vWriteData(0x5A);break;case 'a': vWriteData(0x61);break;case 'b': vWriteData(0x62);break;case 'c': vWriteData(0x63);break;case 'd': vWriteData(0x64);break;case 'e': vWriteData(0x65);break;case 'f': vWriteData(0x66);break;case 'g': vWriteData(0x67);br

溫馨提示

  • 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)論