




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、多路模擬量采集儀表的畢業(yè)設(shè)計(jì)摘要近年來(lái),數(shù)據(jù)采集及其應(yīng)用受到了人們?cè)絹?lái)越廣泛的關(guān)注,數(shù)據(jù)采集系統(tǒng)也有了迅速的發(fā)展,它可以廣泛的應(yīng)用于各種領(lǐng)域。數(shù)據(jù)采集系統(tǒng)起始于20世紀(jì)50年代,1956年美國(guó)首先研究了用在軍事上的測(cè)試系統(tǒng),目標(biāo)是測(cè)試中不依靠相關(guān)的測(cè)試文件,由非成熟人員進(jìn)行操作,并且測(cè)試任務(wù)是由測(cè)試設(shè)備高速自動(dòng)控制完成的。由于該種數(shù)據(jù)采集測(cè)試系統(tǒng)具有高速性和一定的靈活性,可以滿(mǎn)足眾多傳統(tǒng)方法不能完成的數(shù)據(jù)采集和測(cè)試任務(wù),因而得到了初步的認(rèn)可。大概在60年代后期,國(guó)內(nèi)外就有成套的數(shù)據(jù)采集設(shè)備和系統(tǒng)多屬于專(zhuān)用的系統(tǒng)。本文介紹了一種基于單片機(jī)的多路模擬量采集儀表的設(shè)計(jì)。該設(shè)計(jì)主要由三個(gè)模塊組成:a/
2、d轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。a/d轉(zhuǎn)換主要由芯片adc0808來(lái)完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片at89c51來(lái)完成,其負(fù)責(zé)把a(bǔ)dc0808傳送來(lái)的數(shù)字量經(jīng)過(guò)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;此外,它還控制著adc0808芯片工作。本次設(shè)計(jì)的顯示模塊是1602液晶顯示器所采集信號(hào)顯示結(jié)果的。 關(guān)鍵詞: 單片機(jī);a/d轉(zhuǎn)換;at89c51;adc0808,1602液晶目錄第一章 設(shè)計(jì)總體方案11.1設(shè)計(jì)要求11.2設(shè)計(jì)思路11.3設(shè)計(jì)方案1第二章 硬件電路設(shè)計(jì)22.1 a/d轉(zhuǎn)換模塊22.1.1 逐次逼近型a/d轉(zhuǎn)換
3、器原理22.1.2 adc0808 主要特性32.1.3 adc0808的外部引腳特征32.2 單片機(jī)系統(tǒng)52.2.1 at89c51性能52.2.2 at89c51各引腳功能62.3 復(fù)位電路和時(shí)鐘電路82.3.1 復(fù)位電路設(shè)計(jì)82.3.2 時(shí)鐘電路設(shè)計(jì)82.4 1602液晶顯示電路92.4.1 1602lcd的基本參數(shù)及引腳功能92.4.2 lcd1602 主要技術(shù)參數(shù):92.4.3引腳功能說(shuō)明102.4.4 1602 液晶模塊內(nèi)部的控制指令102.4.5 lcd1602操作時(shí)序122.4.6 1602lcd的 ram 地址映射122.5多路模擬量采集儀表硬件電路原理圖13第三章 程序設(shè)計(jì)
4、153.1程序設(shè)計(jì)總方案15參考文獻(xiàn)21致謝224第一章 設(shè)計(jì)總體方案1.1設(shè)計(jì)要求(1)cs-51系列單片機(jī)為核心器件,組成一個(gè)多路數(shù)據(jù)采集儀表。(2)采用8路模擬量輸入,能夠測(cè)量0-5v之間的直流電壓值。(3)電壓顯示用1602液晶顯示,能夠顯示一位小數(shù)。 1.2設(shè)計(jì)思路(1)根據(jù)設(shè)計(jì)要求,選擇at89c51單片機(jī)為核心控制器件。(2)a/d轉(zhuǎn)換采用adc0808實(shí)現(xiàn),與單片機(jī)的接口為p1口和p3的高四位引腳。(3)電壓顯示采用1602液晶顯示器(4)由一個(gè)按鍵控制液晶顯示,兩個(gè)電壓值為一組,按一次鍵,就切換一次。 1.3設(shè)計(jì)方案硬件電路設(shè)計(jì)主要由6個(gè)部分組成; a/d轉(zhuǎn)換電路,at89c
5、51單片機(jī)系統(tǒng),1602顯示系統(tǒng)、時(shí)鐘電路、復(fù)位電路以及測(cè)量電壓輸入電路。硬件電路設(shè)計(jì)框圖如圖1所示。第二章 硬件電路設(shè)計(jì)2.1 a/d轉(zhuǎn)換模塊現(xiàn)實(shí)世界的物理量都是模擬量,能把模擬量轉(zhuǎn)化成數(shù)字量的器件稱(chēng)為模/數(shù)轉(zhuǎn)換器(a/d轉(zhuǎn)換器),a/d轉(zhuǎn)換器是單片機(jī)數(shù)據(jù)采集系統(tǒng)的關(guān)鍵接口電路,按照各種a/d芯片的轉(zhuǎn)化原理可分為逐次逼近型,雙重積分型等等。雙積分式a/d轉(zhuǎn)換器具有抗干擾能力強(qiáng)、轉(zhuǎn)換精度高、價(jià)格便宜等優(yōu)點(diǎn)。與雙積分相比,逐次逼近式a/d轉(zhuǎn)換的轉(zhuǎn)換速度更快,而且精度更高,比如adc0809、adc0808等,它們通常具有8路模擬選通開(kāi)關(guān)及地址譯碼、鎖存電路等,它們可以與單片機(jī)系統(tǒng)連接,將數(shù)字量送
6、到單片機(jī)進(jìn)行分析和顯示。一個(gè)n位的逐次逼近型a/d轉(zhuǎn)換器只需要比較n次,轉(zhuǎn)換時(shí)間只取決于位數(shù)和時(shí)鐘周期,逐次逼近型a/d轉(zhuǎn)換器轉(zhuǎn)換速度快,因而在實(shí)際中廣泛使用。2.1.1 逐次逼近型a/d轉(zhuǎn)換器原理逐次逼近型a/d轉(zhuǎn)換器是由一個(gè)比較器、a/d轉(zhuǎn)換器、存儲(chǔ)器及控制電路組成。它利用內(nèi)部的寄存器從高位到低位一次開(kāi)始逐位試探比較。轉(zhuǎn)換過(guò)程如下:開(kāi)始時(shí),寄存器各位清零,轉(zhuǎn)換時(shí),先將最高位置1,把數(shù)據(jù)送入a/d轉(zhuǎn)換器轉(zhuǎn)換,轉(zhuǎn)換結(jié)果與輸入的模擬量比較,如果轉(zhuǎn)換的模擬量比輸入的模擬量小,則1保留,如果轉(zhuǎn)換的模擬量比輸入的模擬量大,則1不保留,然后從第二位依次重復(fù)上述過(guò)程直至最低位,最后寄存器中的內(nèi)容就是輸入模
7、擬量對(duì)應(yīng)的二進(jìn)制數(shù)字量。其原理框圖如圖2所示:2.1.2 adc0808 主要特性adc0808是cmos單片型逐次逼近式a/d轉(zhuǎn)換器,帶有使能控制端,與微機(jī)直接接口,片內(nèi)帶有鎖存功能的8路模擬多路開(kāi)關(guān),可以對(duì)8路0-5v輸入模擬電壓信號(hào)分時(shí)進(jìn)行轉(zhuǎn)換,由于adc0808設(shè)計(jì)時(shí)考慮到若干種模/數(shù)變換技術(shù)的長(zhǎng)處,所以該芯片非常適應(yīng)于過(guò)程控制,微控制器輸入通道的接口電路,智能儀器和機(jī)床控制等領(lǐng)域。adc0808主要特性:8路8位a/d轉(zhuǎn)換器,即分辨率8位;具有鎖存控制的8路模擬開(kāi)關(guān);易與各種微控制器接口;可鎖存三態(tài)輸出,輸出與ttl兼容;轉(zhuǎn)換時(shí)間:128s;轉(zhuǎn)換精度:0.2%;單個(gè)+5v電源供電;模
8、擬輸入電壓范圍0- +5v,無(wú)需外部零點(diǎn)和滿(mǎn)度調(diào)整;低功耗,約15mw。2.1.3 adc0808的外部引腳特征 adc0808芯片有28條引腳,采用雙列直插式封裝,其引腳圖如圖3所示。圖3 adc0808引腳圖下面說(shuō)明各個(gè)引腳功能:in0-in7(8條):8路模擬量輸入線(xiàn),用于輸入和控制被轉(zhuǎn)換的模擬電壓。地址輸入控制(4條):ale:地址鎖存允許輸入線(xiàn),高電平有效,當(dāng)ale為高電平時(shí),為地址輸入線(xiàn),用于選擇in0-in7上那一條模擬電壓送給比較器進(jìn)行a/d轉(zhuǎn)換。adda,addb,addc:3位地址輸入線(xiàn),用于選擇8路模擬輸入中的一路,其對(duì)應(yīng)關(guān)系如表1所示:表1 adc0808通道選擇表地址
9、碼 對(duì)應(yīng)的輸入通道 c b a 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 in0 in1 in2 in3 in4 in5 in6 in7 start:start為“啟動(dòng)脈沖”輸入法,該線(xiàn)上正脈沖由cpu送來(lái),寬度應(yīng)大于100ns,上升沿清零sar,下降沿啟動(dòng)adc工作。eoc: eoc為轉(zhuǎn)換結(jié)束輸出線(xiàn),該線(xiàn)上高電平表示a/d轉(zhuǎn)換已結(jié)束,數(shù)字量已鎖入三態(tài)輸出鎖存器。d1-d8:數(shù)字量輸出端,d1為高位。oe:oe為輸出允許端,高電平能使d1-d8引腳上輸出轉(zhuǎn)換后的數(shù)字量。ref+、ref-:參考電壓輸入量,給電阻階梯網(wǎng)絡(luò)供給標(biāo)準(zhǔn)電壓。vcc、
10、gnd: vcc為主電源輸入端,gnd為接地端,一般ref+與vcc連接在一起,ref-與gnd連接在一起.clk:時(shí)鐘輸入端2.1.4 adc0808的內(nèi)部結(jié)構(gòu)及工作流程adc0808由8路模擬通道選擇開(kāi)關(guān),地址鎖存與譯碼器,比較器,8位開(kāi)關(guān)樹(shù)型a/d轉(zhuǎn)換器,逐次逼近型寄存器,定時(shí)和控制電路和三態(tài)輸出鎖存器等組成,其內(nèi)部結(jié)構(gòu)如圖4所示。圖4 adc0808的內(nèi)部結(jié)構(gòu)其中:(1)8路模擬通道選擇開(kāi)關(guān)實(shí)現(xiàn)從8路輸入模擬量中選擇一路送給后面的比較器進(jìn)行比較。(2)地址鎖存與譯碼器用于當(dāng)ale信號(hào)有效時(shí),鎖存從adda、addb、addc 3根地址線(xiàn)上送來(lái)的3位地址,譯碼后產(chǎn)生通道選擇信號(hào),從8路模
11、擬通道中選擇當(dāng)前模擬通道。(3)比較器,8位開(kāi)關(guān)樹(shù)型a/d轉(zhuǎn)換器,逐次逼近型寄存器,定時(shí)和控制電路組成8位a/d轉(zhuǎn)換器,當(dāng)start信號(hào)有效時(shí),就開(kāi)始對(duì)當(dāng)前通道的模擬信號(hào)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換完成后,把轉(zhuǎn)換得到的數(shù)字量送到8位三態(tài)鎖存器,同時(shí)通過(guò)引腳送出轉(zhuǎn)換結(jié)束信號(hào)。(4)三態(tài)輸出鎖存器保存當(dāng)前模擬通道轉(zhuǎn)換得到的數(shù)字量,當(dāng)oe信號(hào)有效時(shí),把轉(zhuǎn)換的結(jié)果送出。adc0808的工作流程為:(1)輸入3位地址,并使ale=1,將地址存入地址鎖存器中,經(jīng)地址譯碼器從8路模擬通道中選通1路模擬量送給比較器。(2)送start一高脈沖,start的上升沿使逐次寄存器復(fù)位,下降沿啟動(dòng)a/d轉(zhuǎn)換,并使eoc信號(hào)為低電平
12、。(3)當(dāng)轉(zhuǎn)換結(jié)束時(shí),轉(zhuǎn)換的結(jié)果送入到輸出三態(tài)鎖存器中,并使eoc信號(hào)回到高電平,通知cpu已轉(zhuǎn)換結(jié)束。(4)當(dāng)cpu執(zhí)行一讀數(shù)據(jù)指令時(shí),使oe為高電平,則從輸出端d0-d7讀出數(shù)據(jù)。2.2 單片機(jī)系統(tǒng)2.2.1 at89c51性能at89c51是美國(guó)atmel公司生產(chǎn)的低電壓,高性能cmos8位單片機(jī),片內(nèi)含有4kb的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器和128字節(jié)的隨機(jī)存儲(chǔ)器。該器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容,由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了
13、一種靈活性高且價(jià)廉的方案。 at89c51功能性能:與mcs-51成品指令系統(tǒng)完全兼容;4kb可編程閃速存儲(chǔ)器;壽命:1000次寫(xiě)/擦循環(huán);數(shù)據(jù)保留時(shí)間:10年;全靜態(tài)工作:0-24mhz;三級(jí)程序存儲(chǔ)器鎖定;128*8b內(nèi)部ram;32個(gè)可編程i/o口線(xiàn);2個(gè)16位定時(shí)/計(jì)數(shù)器;5個(gè)中斷源;可編程串行uart通道;片內(nèi)震蕩器和掉電模式。 2.2.2 at89c51各引腳功能at89c51提供以下標(biāo)準(zhǔn)功能:4kb的flash閃速存儲(chǔ)器,128b內(nèi)部ram,32個(gè)i/o口線(xiàn),兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)震蕩器及時(shí)鐘電路,同時(shí),at89c51可降至0h
14、z靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許ram,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存ram中的內(nèi)容,但震蕩器停止工作并禁止其他所有工作直到下一個(gè)硬件復(fù)位。at89c51采用pdip封裝形式,引腳配置如圖5所示。圖5 at89c51的引腳圖at89c51芯片的各引腳功能為:p0口:這組引腳共有8條,p0.0為最低位。這8個(gè)引腳有兩種不同的功能,分別適用于不同的情況,第一種情況是89c51不帶外存儲(chǔ)器,p0口可以為通用i/o口使用,p0.0-p0.7用于傳送cpu的輸入/輸出數(shù)據(jù),這時(shí)輸出數(shù)據(jù)可以得到鎖存,不需要外接專(zhuān)用鎖存器,輸入數(shù)據(jù)
15、可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性;第二種情況是89c51帶片外存儲(chǔ)器,p0.0-p0.7在cpu訪(fǎng)問(wèn)片外存儲(chǔ)器時(shí)先傳送片外存儲(chǔ)器的低8位地址,然后傳送cpu對(duì)片外存儲(chǔ)器的讀/寫(xiě)數(shù)據(jù)。p0口為開(kāi)漏輸出,在作為通用i/o使用時(shí),需要在外部用電阻上拉。p1口:這8個(gè)引腳和p0口的8個(gè)引腳類(lèi)似,p1.7為最高位,p1.0為最低位,當(dāng)p1口作為通用i/o口使用時(shí),p1.0-p1.7的功能和p0口的第一功能相同,也用于傳送用戶(hù)的輸入和輸出數(shù)據(jù)。p2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用i/o口使用,它的第一功能和p0口引腳的第二功能相配合,用于輸出片外存儲(chǔ)器的高8位地址,共
16、同選中片外存儲(chǔ)器單元,但并不是像p0口那樣傳送存儲(chǔ)器的讀/寫(xiě)數(shù)據(jù)。p3口:這組引腳的第一功能和其余三個(gè)端口的第一功能相同,第二功能為控制功能,每個(gè)引腳并不完全相同,如下表2所示:表2 p3口各位的第二功能p3口各位第二功能p3.0 rxt(串行口輸入)p3.1 txd(串行口輸出)p3.2/int0(外部中斷0輸入)p3.3/int1(外部中斷1輸入)p3.4t0(定時(shí)器/計(jì)數(shù)器0的外部輸入)p3.5t1(定時(shí)器/計(jì)數(shù)器1的外部輸入)p3.6/wr(片外數(shù)據(jù)存儲(chǔ)器寫(xiě)允許) p3.7/rd(片外數(shù)據(jù)存儲(chǔ)器讀允許)vcc為+5v電源線(xiàn),vss接地。ale:地址鎖存允許線(xiàn),配合p0口的第二功能使用,
17、在訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),89c51的cpu在p0.0-p0.7引腳線(xiàn)去傳送隨后而來(lái)的片外存儲(chǔ)器讀/寫(xiě)數(shù)據(jù)。在不訪(fǎng)問(wèn)片外存儲(chǔ)器時(shí),89c51自動(dòng)在ale線(xiàn)上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時(shí)鐘源或定時(shí)脈沖使用。/ea:片外存儲(chǔ)器訪(fǎng)問(wèn)選擇線(xiàn),可以控制89c51使用片內(nèi)rom或使用片外rom,若/ea=1,則允許使用片內(nèi)rom, 若/ea=0,則只使用片外rom。/psen:片外rom的選通線(xiàn),在訪(fǎng)問(wèn)片外rom時(shí),89c51自動(dòng)在/psen線(xiàn)上產(chǎn)生一個(gè)負(fù)脈沖,作為片外rom芯片的讀選通信號(hào)。rst:復(fù)位線(xiàn),可以使89c51處于復(fù)位(即初始化)工作狀態(tài)。通常89c51復(fù)位有自動(dòng)
18、上電復(fù)位和人工按鍵復(fù)位兩種。xtal1和xtal2:片內(nèi)震蕩電路輸入線(xiàn),這兩個(gè)端子用來(lái)外接石英晶體和微調(diào)電容,即用來(lái)連接89c51片內(nèi)osc(震蕩器)的定時(shí)反饋回路。2.3 復(fù)位電路和時(shí)鐘電路2.3.1 復(fù)位電路設(shè)計(jì)單片機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使cpu和系統(tǒng)中的其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。mcs-51單片機(jī)有一個(gè)復(fù)位引腳rst,采用施密特觸發(fā)輸入。當(dāng)震蕩器起振后,只要該引腳上出現(xiàn)2個(gè)機(jī)器周期以上的高電平即可確保時(shí)器件復(fù)位。復(fù)位完成后,如果rst端繼續(xù)保持高電平,mcs-51就一直處于復(fù)位狀態(tài),只要rst恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。單片機(jī)的復(fù)位方式有上
19、電自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種,圖6是51系列單片機(jī)統(tǒng)常用的上電復(fù)位和手動(dòng)復(fù)位組合電路,只要vcc上升時(shí)間不超過(guò)1ms,它們都能很好的工作。圖6 復(fù)位電路2.3.2 時(shí)鐘電路設(shè)計(jì)單片機(jī)中cpu每執(zhí)行一條指令,都必須在統(tǒng)一的時(shí)鐘脈沖的控制下嚴(yán)格按時(shí)間節(jié)拍進(jìn)行,而這個(gè)時(shí)鐘脈沖是單片機(jī)控制中的時(shí)序電路發(fā)出的。cpu執(zhí)行一條指令的各個(gè)微操作所對(duì)應(yīng)時(shí)間順序稱(chēng)為單片機(jī)的時(shí)序。mcs-51單片機(jī)芯片內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成震蕩器,xtal1為該放大器的輸入端,xtal2為該放大器輸出端,但形成時(shí)鐘電路還需附加其他電路。 本設(shè)計(jì)系統(tǒng)采用內(nèi)部時(shí)鐘方式,利用單片機(jī)內(nèi)部的高增益反相放大器,外部電路簡(jiǎn),只需要一
20、個(gè)晶振和 2個(gè)電容即可,如圖7所示。圖7 時(shí)鐘電路電路中的器件選擇可以通過(guò)計(jì)算和實(shí)驗(yàn)確定,也可以參考一些典型電路的參數(shù),電路中,電容器c1和c2對(duì)震蕩頻率有微調(diào)作用,通常的取值范圍是3010pf,在這個(gè)系統(tǒng)中選擇了33pf;石英晶振選擇范圍最高可選24mhz,它決定了單片機(jī)電路產(chǎn)生的時(shí)鐘信號(hào)震蕩頻率,在本系統(tǒng)中選擇的是12mhz,因而時(shí)鐘信號(hào)的震蕩頻率為12mhz 2.4 1602液晶顯示電路 2.4.1 1602lcd的基本參數(shù)及引腳功能 1602lcd 分為帶背光和不帶背光兩種,基控制器大部分為 hd44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖 2.4
21、.2 lcd1602 主要技術(shù)參數(shù): 顯示容量:162個(gè)字符 芯片工作電壓:4.55.5v 工作電流:2.0ma(5.0v) 模塊最佳工作電壓:5.0v 字符尺寸:2.954.35(wh)mm 2.4.3引腳功能說(shuō)明1602lcd 采用標(biāo)準(zhǔn)的 14 腳(無(wú)背光)或 16 腳(帶背光)接口,各引腳接口說(shuō)明如表 表1 引腳接口說(shuō)明表 第1腳:vss為地電源。 第2腳:vdd接5v正電源。 第3腳:vl為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10k的電位器調(diào)整對(duì)比度。 第4腳:rs為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選
22、擇指令寄存器。 第5腳:r/w為讀寫(xiě)信號(hào)線(xiàn),高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)rs和r/w共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)rs為低電平r/w為高電平時(shí)可以讀忙信號(hào),當(dāng)rs為高電平r/w為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。 第6腳:e端為使能端,當(dāng)e端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第714腳:d0d7為8位雙向數(shù)據(jù)線(xiàn)。 第15腳:背光源正極。 第16腳:背光源負(fù)極。 2.4.4 1602 液晶模塊內(nèi)部的控制指令如下圖所示:1602 液晶模塊的讀寫(xiě)操作,屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明 1 為高電平,0 為低電平) 指令 1:清顯示,指令碼 01h,光標(biāo)復(fù)位到地
23、址 00h 位置 指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00h 指令 3:光標(biāo)和顯示位置設(shè)置 i/d,光標(biāo)移動(dòng)方向,高電平右移,低電平左移,s:屏幕上所有文字是否左移或右移,高電平表示有效,低電平表示無(wú)效。 指令 4:顯示開(kāi)關(guān)控制。 d:控制整體的顯示開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示。 c:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) b:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。 指令 5:光標(biāo)或顯示移位 s/c :高電平時(shí)顯示移動(dòng)的文字,低電平時(shí)移動(dòng)光標(biāo) 指令 6:功能設(shè)置命令 dl:高電平時(shí)為 4 位總線(xiàn),低電平時(shí)為 8 位總線(xiàn) n:低電平時(shí)為單行顯示,高電平時(shí)為雙行顯
24、示,f:低電平時(shí)顯示 5x7 的點(diǎn)陣字符,高電平時(shí)顯示 5x10 的顯示字符。 指令 7:字符發(fā)生器 ram地址設(shè)置。 指令 8:ddram 地址設(shè)置。 指令 9:讀忙信號(hào)和光標(biāo)地址 bf:忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或數(shù)據(jù),如果為低電平表示不忙。 與 hd44780相兼容的芯片時(shí)序表如下:2.4.5 lcd1602操作時(shí)序下列為基本時(shí)序圖:2.4.6 1602lcd的 ram 地址映射液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖是 1602 的內(nèi)
25、部顯示地址。例如第二行第一個(gè)字符的地址是 40h,那么是否直接寫(xiě)入 40h就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位 d7 恒定為高電平 1 所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是 01000000b(40h)+10000000b(80h)=11000000b(c0h)。2.5多路模擬量采集儀表硬件電路原理圖此電路的工作原理是:各路模擬電壓信號(hào)通過(guò)電阻分壓后進(jìn)入電壓跟隨器由程序數(shù)字濾波,再由adc08008的in0-in7通道進(jìn)入(由于使用的各路通道由adda,addb,addc電平高低所控制,而adda,addb,addc又由按鍵所控制,所以顯示哪兩路的電壓值,就通
26、過(guò)按鍵),經(jīng)過(guò)模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過(guò)其輸出通道d0-d7傳送給at89c51芯片的p1口,at89c51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過(guò)數(shù)據(jù)處理,處理后再送給1602液晶顯示器。此外,at89c51還控制adc0808的工作。其中,adc0808的clock是由外加的一個(gè)方波所控制,p2.1發(fā)正脈沖啟動(dòng)a/d轉(zhuǎn)換,p2.2檢測(cè)a/d轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,p2.3置高從p1口讀取轉(zhuǎn)換結(jié)果。多路模擬量采集儀表的硬件電路已經(jīng)設(shè)計(jì)完成,就可以選取相應(yīng)的芯片和元器件,利用proteus軟件繪制出硬件的原理,并仔細(xì)地檢查修改,直至形成完善的硬件原理圖。但要真正實(shí)現(xiàn)電路對(duì)電壓的測(cè)量和顯示的功能,還需
27、要有相應(yīng)的軟件配合,才能達(dá)到設(shè)計(jì)要求。第三章 程序設(shè)計(jì)3.1程序設(shè)計(jì)總方案根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,a/d轉(zhuǎn)換子程序和顯示子程序,這三個(gè)程序模塊構(gòu)成了整個(gè)系統(tǒng)軟件的主程序,如圖所示。3.2程序代碼#include #define uchar unsigned char#define uint unsigned intuint addata;uint in0,in1,in2,in3;uint in0_out,in1_out,in2_out,in3_out;uint in4,in5,in6,in7;uint in4_out,in5_out,in6_out,in7_out;uint
28、 vref_fangda=1;uchar flag=0,num=1;uchar code tab=0,1,2,3,4,5,6,7,8,9;uchar table=my design; uchar table1=2012-5-20;#define n 60 /n值可根據(jù)實(shí)際情況調(diào)整sbit rs=p25;sbit rw=p26; sbit en=p27;sbit st=p21;sbit eoc=p22;sbit oe=p23;sbit k=p24;void delay(uint t) /延時(shí)函數(shù) uchar i; while(t-) for(i=0;i124;i+);/函數(shù)名 void writ
29、e_com(uchar lcdzhiling) /函數(shù)功能:液晶屏寫(xiě)指令/編寫(xiě)人:豆偉晴/void write_com(uchar lcdzhiling) delay(5);rs=0;rw=0;p0=lcdzhiling;en=1;delay(1);en=0;/函數(shù)名 void write_dat(uchar lcdshuju) /函數(shù)功能:液晶屏寫(xiě)數(shù)據(jù)/編寫(xiě)人:豆偉晴/void write_dat(uchar lcdshuju) delay(3);rs=1;rw=0;p0=lcdshuju;en=1;delay(1);en=0;/函數(shù)名 void ini_lcd() /函數(shù)功能:液晶屏初始化
30、/編寫(xiě)人:豆偉晴/void ini_lcd() write_com(0x38); write_com(0x01); write_com(0x0f); write_com(0x06); write_com(0x0c);/函數(shù)名 uchar adc0808()/函數(shù)功能:ad轉(zhuǎn)換程序/編寫(xiě)人:豆偉晴/uchar adc0808() st=0;st=1;st=0; while(eoc=0); oe=1; addata=p1; oe=0; return addata;/函數(shù)名 uchar filter()/函數(shù)功能:數(shù)字濾波程序/編寫(xiě)人:豆偉晴/uchar filter() char value_bu
31、fn;char count,i,j,temp;for (count=0;countn;count+)value_bufcount=adc0808(); /獲取采樣值delay(5);for (j=0;jn-1;j+) /采樣值由小到大排列,排序采用冒泡法for (i=0;ivalue_bufi+1) temp=value_bufi;value_bufi=value_bufi+1;value_bufi+1=temp; return value_bufn/2;/函數(shù)名 void main()/函數(shù)功能:/編寫(xiě)人:豆偉晴/void main() uint i=0; ini_lcd(); ea=1;
32、/全局中斷開(kāi) ex1=1; /外部中斷1開(kāi) it1=1; /邊沿觸發(fā) while(1) if(flag=1) if(k=0) /按鍵1操作 delay(10); if(k=0) num=num+1; / vref_fangda=vref_fangda*2;/if(vref_fangda4) / vref_fangda=1; if(num%2)=0) /按鍵1操作 p3=4; in4=filter(); in4_out=(2.500*vref_fangda*100*in4)/255;/100倍 write_com(0x81); /第一行顯示 write_dat(5); write_dat(:);
33、 write_dat(tabin4_out/100); write_dat(.); write_dat(tabin4_out%100/10); write_dat(tabin4_out%100%10); write_dat(v); p3=5; in5=filter(); in5_out=(2.500*vref_fangda*100*in5)/255;/100倍 write_com(0xc1); /第二行顯示 write_dat(6); write_dat(:); write_dat(tabin5_out/100); write_dat(.); write_dat(tabin5_out%100/
34、10); write_dat(tabin5_out%100%10); write_dat(v); p3=6; in6=filter(); in6_out=(2.500*vref_fangda*100*in6)/255;/100倍 write_com(0x88); /第三行顯示 write_dat(7); write_dat(:); write_dat(tabin6_out/100); write_dat(.); write_dat(tabin6_out%100/10); write_dat(tabin6_out%100%10); write_dat(v); p3=7; in7=filter()
35、; in7_out=(2.500*vref_fangda*100*in7)/255;/100倍 write_com(0xc8); /第四行顯示 write_dat(8); write_dat(:); write_dat(tabin7_out/100); write_dat(.); write_dat(tabin7_out%100/10); write_dat(tabin7_out%100%10); write_dat(v); else p3=0; in0=filter(); in0_out=(2.500*vref_fangda*100*in0)/255;/100倍 write_com(0x81
36、); /第一行顯示 write_dat(1); write_dat(:); write_dat(tabin0_out/100); write_dat(.); write_dat(tabin0_out%100/10); write_dat(tabin0_out%100%10); write_dat(v); p3=1; in1=filter(); in1_out=(2.50*vref_fangda*100*in1)/255;/100倍 write_com(0xc1); /第二行顯示 write_dat(2); write_dat(:); write_dat(tabin1_out/100); wri
37、te_dat(.); write_dat(tabin1_out%100/10); write_dat(tabin1_out%100%10); write_dat(v); p3=2; in2=filter(); in2_out=(2.500*vref_fangda*100*in2)/255;/100倍 write_com(0x88); /第三行顯示 write_dat(3); write_dat(:); write_dat(tabin2_out/100); write_dat(.); write_dat(tabin2_out%100/10); write_dat(tabin2_out%100%10); write_dat(v); p3=3; in3=filter(); in3_out=(2.500*vref_fa
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動(dòng)合同范本海南
- 2025年硬質(zhì)橡膠及其制品合作協(xié)議書(shū)
- 2025年孕產(chǎn)婦保健項(xiàng)目建議書(shū)
- 合伙酒店轉(zhuǎn)讓合同范本
- epc工程總價(jià)合同范本
- 信貸機(jī)構(gòu)合同范本
- 創(chuàng)業(yè)魔芋種植合作合同范本
- 合伙奶茶協(xié)議合同范本
- 低價(jià)手套租賃合同范本
- 南寧個(gè)人租房合同范本
- 商標(biāo)合資經(jīng)營(yíng)合同
- 第六講當(dāng)前就業(yè)形勢(shì)與實(shí)施就業(yè)優(yōu)先戰(zhàn)略-2024年形勢(shì)與政策
- 酒店大堂石材養(yǎng)護(hù)專(zhuān)項(xiàng)方案
- 2024-2030年中國(guó)家政服務(wù)行業(yè)經(jīng)營(yíng)策略及投資規(guī)劃分析報(bào)告
- 2025年護(hù)士資格證考核題庫(kù)及答案
- 新能源汽車(chē)驅(qū)動(dòng)電機(jī)及控制系統(tǒng)檢修教案 學(xué)習(xí)情境 1:驅(qū)動(dòng)電機(jī)的認(rèn)知
- 小組合作學(xué)習(xí)組內(nèi)分工及職責(zé)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 《ISO 41001-2018 設(shè)施管理- 管理體系 要求及使用指南》專(zhuān)業(yè)解讀與應(yīng)用指導(dǎo)材料之15:“7支持-7.6 組織知識(shí)”(雷澤佳編制-2024)
- 2024年建設(shè)工程質(zhì)量檢測(cè)人員-建設(shè)工程質(zhì)量檢測(cè)人員(主體結(jié)構(gòu)工程)考試近5年真題集錦(頻考類(lèi)試題)帶答案
- 2025年上海市中考語(yǔ)文備考之記敘文十大考點(diǎn)梳理(附??季毩?xí)及參考答案)
評(píng)論
0/150
提交評(píng)論