




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置設(shè)計(jì)摘要本文介紹的是一種基于單片機(jī)和A/D轉(zhuǎn)換的可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置。由于個(gè)人水平有限,設(shè)計(jì)的功能實(shí)現(xiàn)方式還不夠完善,其主要功能有多路電壓的采集轉(zhuǎn)換、鍵盤輸入控制、LCD液晶顯示、定時(shí)報(bào)警顯示等,簡(jiǎn)單易懂、使用方便、安全性能較高適合學(xué)生實(shí)驗(yàn)設(shè)計(jì)。本設(shè)計(jì)具體采用AT89S52單片機(jī)為芯片主體, At89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容,穩(wěn)定性高,成本低,還能擴(kuò)展很多功能,如紅外探測(cè)技術(shù),溫度探測(cè)技術(shù),語音
2、識(shí)別技術(shù),脈搏測(cè)量技術(shù)等,但本設(shè)計(jì)沒有采用這些擴(kuò)展。它是將采集的多路電壓經(jīng)AT89S52單片機(jī)和ADC0809串行EEPROM,通過AT89S52模擬I2C總線和ADC0809通信,然后由LCD液晶顯示電壓并在達(dá)到或者超過一定圍時(shí)發(fā)出報(bào)警提示。此類電路在日常生活和工作中,運(yùn)用的很廣泛,是過壓保護(hù)電路的一個(gè)升級(jí),由該電路衍生出了各類電動(dòng)控制設(shè)備,如電動(dòng)摩托、公交的蓄電池的電壓控制等等。隨著科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)日常生活中對(duì)于此類報(bào)警提示電路要求越來越高,也越來越復(fù)雜,多元。本次設(shè)計(jì)使用ATMEL公司的AT89S52實(shí)現(xiàn)一基于單片機(jī)的可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置比較簡(jiǎn)單實(shí)用,用軟件調(diào)試電路
3、板,完成本次畢業(yè)設(shè)計(jì)。關(guān)鍵詞:AT89S52,ADC0809,LCD液晶顯示,報(bào)警目 錄第1章 引言 - 3第2章 方案論證 - 42.1方案一:采用數(shù)碼管結(jié)合時(shí)鐘芯片控制顯示方案- 42.2方案二:采用LCD液晶顯示單片機(jī)定時(shí)控制方案- 5第3章 硬件設(shè)計(jì) - 63.1 功能模塊 - 63.2 原理圖 - 103.3 PCB圖 - 113.4 實(shí)物 - 12第4章 軟件設(shè)計(jì) - 11 4.1 程序流程圖 - 114.2 程序?qū)崿F(xiàn)功能 - 12第5章 總結(jié) - 15致語 - 16參考文獻(xiàn) - 17附錄一 程序 - 18附錄二 元件清單 - 24第1章 引言.在日常的生活和工作中,多路電壓采集裝
4、置應(yīng)用的比較廣泛,具有設(shè)計(jì)簡(jiǎn)單,反應(yīng)準(zhǔn)確,經(jīng)濟(jì)適用等優(yōu)點(diǎn)。大家知道我們經(jīng)常騎的電動(dòng)摩托車的蓄電池是電動(dòng)車的主要?jiǎng)恿υ矗瑸楸WC電動(dòng)車的正常和安全行駛,電池管理系統(tǒng)必須實(shí)時(shí)監(jiān)測(cè)電動(dòng)車電池的電壓數(shù)據(jù)。通過電壓采集電路和A/D轉(zhuǎn)換實(shí)現(xiàn)電壓數(shù)據(jù)的獲取。而為了避免電池的不均衡性帶來的局部過充/過放所引起的安全問題,要求監(jiān)測(cè)系統(tǒng)必須對(duì)每個(gè)單體或幾個(gè)單體電壓進(jìn)行精確測(cè)量,故多路電壓采集裝置的精確性就關(guān)系到該電動(dòng)車的性能好壞了,由此可見多路電壓采集電路在生活中起到了不小的作用。隨著人類科技水平的發(fā)展,人類對(duì)于電的依賴程度越來越高,現(xiàn)在流行的電動(dòng)摩托車,以與批量生產(chǎn)試行的電動(dòng)公交車,其他的直流電路控制設(shè)備等等很多
5、產(chǎn)品都離不開多路電壓采集裝置的應(yīng)用,它的運(yùn)用使人們的生活更安全,舒適,同時(shí)也為降低環(huán)境污染做出了一定得貢獻(xiàn)。我相信不久的將來,電動(dòng)設(shè)備普與的時(shí)候也是多路電壓采集裝置廣泛運(yùn)用的時(shí)代。本次設(shè)計(jì)使用的ATMEL公司的AT89S52實(shí)現(xiàn)的基于單片機(jī)的控制的可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置,由于本人水平有限,只能粗劣的完成一些簡(jiǎn)單的采集顯示功能,希望在今后的學(xué)習(xí)中得到更大的提高,為科技的進(jìn)步作出一點(diǎn)得貢獻(xiàn)。第2章 方案論證設(shè)計(jì)本課題時(shí)構(gòu)思了兩種方案:一種是用2個(gè)7段數(shù)碼管結(jié)合時(shí)鐘控制的顯示方案;另一種是用LCD顯示結(jié)合單片機(jī)定時(shí)設(shè)置顯示的方案。考慮到數(shù)碼管顯示電路相對(duì)比較復(fù)雜,需要引入較多的其他電路,而
6、且實(shí)用性不高,而第二種方案集成度較高,可留出較多的芯片端口擴(kuò)展顯示更多功能。故最終采用第二種方案。2.1方案一:采用數(shù)碼管結(jié)合時(shí)鐘控制的顯示方案采用數(shù)碼管結(jié)合時(shí)鐘控制的顯示,其原理方框圖如圖21所示。AT89S52單片機(jī)鍵盤控制報(bào)警電路數(shù)碼管顯示A/D轉(zhuǎn)換電路多路電壓采集電路交直轉(zhuǎn)換電路時(shí)鐘控制電路圖21數(shù)碼管結(jié)合時(shí)鐘控制的顯示方案采用數(shù)碼管顯示結(jié)合時(shí)鐘控制的顯示電路的好處是成本相當(dāng)較低,但是電路相對(duì)較復(fù)雜,首先由電壓轉(zhuǎn)換電路將20-220V的交流電壓轉(zhuǎn)換成改電路可采集的直流電壓,然后由電壓采集電路將電壓通過電阻或電容的分壓作用,調(diào)整為AD芯片可以承受的0-5V電壓,然后由AT89S52芯片結(jié)
7、合時(shí)鐘控制數(shù)碼管顯示當(dāng)時(shí)的電壓和時(shí)間,并且每10分鐘存儲(chǔ)一次。通過編程控制按鍵輸入顯示相應(yīng)的時(shí)間就可顯示當(dāng)時(shí)的電壓數(shù)值。 設(shè)置外部輸入電壓XX v時(shí),為最高電壓輸入值,然后當(dāng)采集的電壓達(dá)到或者超過該數(shù)值時(shí),單片機(jī)給T0端口一個(gè)低電平,使蜂鳴器發(fā)出警告聲,從而完成改電路的設(shè)計(jì)要求。2.2方案二:采用LCD顯示結(jié)合單片機(jī)定時(shí)控制的顯示方案以AT89S52為核心的單片機(jī)定時(shí)控制LCD顯示方案,使整體設(shè)計(jì)電路更簡(jiǎn)潔,便有操作,利用單片機(jī)靈活的編程設(shè)計(jì)和與其強(qiáng)大的部控制功能,可以準(zhǔn)確的達(dá)到設(shè)計(jì)要求。其原理如圖22所示。AT89S52單片機(jī)鍵盤控制報(bào)警電路LCD液晶顯示A/D轉(zhuǎn)換電路多路電壓采集電路交直轉(zhuǎn)
8、換電路圖22采用LCD顯示結(jié)合單片機(jī)定時(shí)控制的顯示方案通過比較以上兩種方案的比較,第二種方案電路設(shè)計(jì)相當(dāng)簡(jiǎn)單易行,充分發(fā)揮了AT89S52的芯片功能,并且省去了數(shù)碼顯示需要138譯碼器占用3個(gè)I/O端口的弊端,使芯片不容易控制,所以我們采用后一種方案。第3章 硬件設(shè)計(jì)3.1 功能模塊3.11.交直轉(zhuǎn)換和采集電路設(shè)計(jì)交直轉(zhuǎn)換電路才用單相橋式整流電路,將220V的交流電壓轉(zhuǎn)換成直流電壓,以供設(shè)計(jì)電路采集使用,其原理如圖31所示。圖31交直轉(zhuǎn)換電路說明示意圖單相橋式整流電路如圖,四個(gè)二極管作為整流器件接成電橋形式,當(dāng)變壓器TR的極性上端為正下端為負(fù)時(shí),VS1、VD3因正向偏置而導(dǎo)通,VD2、VD4因
9、反向偏置而截止,在負(fù)載RL上有電流通過,電流由變壓器二次繞組上端經(jīng)VD1、RL、VD3回到變壓器下端,在RL上得到一個(gè)半波整流電壓,當(dāng)電源極性相反時(shí),整流器件VD2、VD4導(dǎo)通,VDl、VD3截止,電流經(jīng)VD2、R1、VD4回到TR的上端,這樣在RL上也得到一個(gè)半波整流電壓。如此重復(fù),在負(fù)載RL,上就能得到一個(gè)和單相全波整流時(shí)一樣的電壓波形,從而達(dá)到交流轉(zhuǎn)直流的目的。圖32電壓采集電路說明示意圖本電路設(shè)計(jì)采集四路電壓。一路采集0-400MV,經(jīng)放大器LM358放大10.1倍,由IN0輸入的電壓為0-4.1V,兩路均采集0-5V,經(jīng)IN2和IN3直接輸入AD轉(zhuǎn)換芯片,另一路為0-12V,經(jīng)電阻分
10、壓縮小為原來的2/5,由IN4輸入。3.12 ADC0809轉(zhuǎn)換電路的設(shè)計(jì)本設(shè)計(jì)電路中,ADCO809轉(zhuǎn)換芯只采用IN0-IN3四路端口采集電壓信號(hào),具體原理如圖3-3所示。圖33 AD轉(zhuǎn)換電路原理圖ADC0809轉(zhuǎn)換芯片有8路模擬信號(hào)的分時(shí)采集端口IN0-IN7,片有8路模擬選通開關(guān),以與相應(yīng)的通道抵制鎖存用譯碼電路,其轉(zhuǎn)換時(shí)間為100s左右據(jù)。地址鎖存與譯碼電路完成對(duì)ADDR0(A)、ADDR1(B)、ADDR2(C) 3個(gè)地址位進(jìn)行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉(zhuǎn)換結(jié)果通過三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,表3-0為通道選擇表。由表3-0可知,本設(shè)計(jì)的采集
11、端口IN0-IN3對(duì)應(yīng)的3個(gè)地址位分別為000,001,010和011。ADC809芯片的DB0-DB7對(duì)應(yīng)接入AT89S52的P00-P07端口,將AD轉(zhuǎn)換的數(shù)字信號(hào)傳輸?shù)紸T89S52中,達(dá)到數(shù)據(jù)采集輸入的目的。3.13 LCD液晶顯示電路設(shè)計(jì)本系統(tǒng)設(shè)計(jì)的LCD液晶顯示為1602芯片,能夠顯示16位數(shù)值,從左到右依規(guī)定為1-16位,其中前1-5位用來顯示時(shí)間(XX:XX,小時(shí)和分鐘顯示),然后6位不顯示,接著的7-9三位顯示IN0輸入電壓(XXX,單位mv),接著10位不顯示,然后11位顯示IN1的電壓輸入值一位(X,單位v),12位再不顯示,13-14位顯示IN2的電壓輸入值兩位(XX,
12、單位v),然后15位不顯示,16位顯示IN3的電壓輸入值一位(X,單位v),正好使用完16位顯示。該電路的原理圖如圖3-4所示,圖34 LCD顯示器原理圖LCD1602由AT89S52芯片的P00-P07腳對(duì)應(yīng)的接入LCD DB0-DB7引腳,進(jìn)行并行數(shù)據(jù)傳輸,當(dāng)RS與RW引腳信號(hào)為1且Enable引腳信號(hào)由1變?yōu)?時(shí),讀取數(shù)據(jù);當(dāng)RS引腳信號(hào)為1,RW引腳信號(hào)為0且Enable引腳信號(hào)由1變?yōu)?時(shí),存入數(shù)據(jù);達(dá)到數(shù)據(jù)輸入和顯示的功能。3.14按鍵電路設(shè)計(jì)本設(shè)計(jì)使用矩陣4*4行列式鍵盤掃描電路,對(duì)應(yīng)主芯片的P10-P17腳,共占用8個(gè)I/O口,其原理如圖35所示。圖35 4*4行列式鍵盤原理圖
13、每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個(gè)按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個(gè)按鍵的鍵盤,改電路采用4*4鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。當(dāng)確認(rèn)有按鍵按下后,下一步就要識(shí)別哪一個(gè)按鍵按下。對(duì)鍵的識(shí)別通常有兩種方法:一種是常用的逐行掃描查詢法,另一種是速度較快的線反轉(zhuǎn)法。判斷鍵盤中哪一個(gè)鍵被按下,是通過將列線逐列置低電平后,檢查行的輸入狀態(tài)來實(shí)現(xiàn)的。具體方法是:依次給列線送低電平,然后查看所有行線的狀態(tài),如果全為1,則所按下的鍵不在此列;如果不全為
14、1,則所按下的鍵必在此列,而且按下的鍵即是顯示0的行線與低電平的列線相交的那個(gè)按鍵。按鍵的操作面板如圖圖36所示。共計(jì)數(shù)字輸入鍵10個(gè),功能鍵5個(gè)。圖36按鍵操作面板示意圖其中10個(gè)數(shù)字鍵0-9用來輸入顯示時(shí)間(例:XX:XX,小時(shí)和分鐘)和設(shè)置的電壓值(XXX,三位電壓數(shù)值),另外5個(gè)功能鍵分別是:A、B、C、D和黑點(diǎn)。其中A鍵的功能是進(jìn)入電壓設(shè)置模式;B鍵的功能是進(jìn)入時(shí)間輸入模式;C鍵的功能是當(dāng)電壓或者時(shí)間輸入錯(cuò)誤的時(shí)候,清除前面已經(jīng)輸入的數(shù)據(jù),重新輸入;D鍵的功能是用來恢復(fù)電壓采集的初始狀態(tài),即顯示當(dāng)時(shí)的時(shí)間和采集的電壓數(shù)值,為復(fù)位鍵;黑點(diǎn)鍵是用來確認(rèn)輸入的電壓值和時(shí)間的,即確認(rèn)鍵。3.
15、15蜂鳴器和總開關(guān)電路的設(shè)計(jì)圖37蜂鳴器和復(fù)位電路原理圖當(dāng)采集電壓達(dá)到設(shè)定的最大電壓數(shù)值時(shí),給單片機(jī)的T0腳一個(gè)低電平就會(huì)使蜂鳴器鳴響示警,達(dá)到報(bào)警的目的。3.16 總體設(shè)計(jì)總框圖AT89S52單片機(jī)鍵盤控制報(bào)警電路LCD液晶顯示A/D轉(zhuǎn)換電路多路電壓采集電路交直轉(zhuǎn)換電路圖38總體設(shè)計(jì)框圖3.2 原理圖3.3 PCB圖第4章 軟件設(shè)計(jì)4.1 程序流程圖開始初始化AT89S52鍵盤控制子程序AD轉(zhuǎn)換子程序LCD顯示子程序蜂鳴器報(bào)警是否最大電壓END 圖41 主程序流程圖圖42 A/D轉(zhuǎn)換程序流程圖鍵盤掃描延時(shí)去抖動(dòng)有鍵閉合掃描鍵盤找到閉合鍵輸入時(shí)間顯示11設(shè)置電壓數(shù)值END圖43 鍵盤控制程序流
16、程圖圖44 LCD顯示子程序流程圖4.2 程序?qū)崿F(xiàn)功能.該主要由三部分組成:多路電壓采集電路、4×4矩陣鍵盤接口電路、LCD顯示電路、A/D轉(zhuǎn)換電路。另外系統(tǒng)還有報(bào)警蜂鳴器等,程序的設(shè)計(jì)可分為以下幾個(gè)模塊: (1)主程序模塊 主程序主要完成初始化,調(diào)用AD轉(zhuǎn)換子程序,鍵盤控制子程序,LCD顯示子程序,以與判斷蜂鳴器的報(bào)警程序。其流程圖如4-1所示;(2)AD轉(zhuǎn)換子程序AD轉(zhuǎn)換子程序包括采集電壓的轉(zhuǎn)換以與和單片機(jī)的通信。其流程圖如4-2所示;(3)鍵盤控制子程序鍵盤控制子程序包括按鍵輸入時(shí)間查詢電壓數(shù)值,以與設(shè)置最大的輸入電壓數(shù)值。其流程圖如4-3所示;(4)LCD顯示子程序 LCD顯
17、示子程序包括實(shí)時(shí)時(shí)間的顯示,采集的電壓數(shù)值顯示。其流程圖如4-4所示。參考文獻(xiàn)1.涵芳,徐愛卿編著。MCS51/96系列單片機(jī)原理與應(yīng)用(修訂版)。:航空航天大學(xué),1996.42.何立民編著。MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)(系統(tǒng)配置與接口技術(shù))。:航空航天大學(xué),1993.83.吳微,文軍編著。單片機(jī)原理與制作。:大學(xué),1991.54.育才,學(xué)成編著。單片微型計(jì)算機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。:東南大學(xué),1990.55.步生,Multisim 2001 電路設(shè)計(jì)與仿真入門與應(yīng)用,。電子工業(yè),20026何小艇。電子系統(tǒng)設(shè)計(jì)。:大學(xué),20007瀚蓀主編。電路分析基礎(chǔ)(上、中、下冊(cè)(第三版)。:高等教育,
18、19838溫照方編。電路基礎(chǔ)。:理工大學(xué),19969。9志忠。電子技術(shù)基礎(chǔ)數(shù)字部分。:電力,199910頌華。數(shù)字電子技術(shù)基礎(chǔ)。:電子科技大學(xué),200011杜剛。電路設(shè)計(jì)與制板Protel應(yīng)用教程(電子電路設(shè)計(jì)循序漸進(jìn)系列教程)。:清華大學(xué),200612曾峰。印刷電路板(PCB)設(shè)計(jì)與制作。:電子工業(yè),200513童詩白,華成英,模擬電子技術(shù)基礎(chǔ)(第三版),高等教育,2001康華光,電子技術(shù)基礎(chǔ)(模擬部分,第四版),高等教育,199914王佩珠,電路與模擬電子技術(shù),大學(xué),199415清學(xué),電子裝配工藝M ,電子工業(yè) ,200416王成安,模擬電子技術(shù)(實(shí)訓(xùn)篇)M,2版,理工大學(xué),200517黃
19、純,電子產(chǎn)品工藝M ,電子工業(yè),2001附錄一 程序與部分說明#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char/#define LCD_DATA P0;sbit DI = P34;sbit D0 =P34;sbit CLK = P35;sbit CS = P36;sbit deep=P36;sbit LCD_RS= P20;sbit LCD_RW= P21;sbit LCD_E= P22;/sbit P36=P36; uchar t,shu,
20、d1;unsigned char K,Key,n;uchar d4=0,0,0,0;/uchar code DIS="ADC0832-TEST"/ADC832 測(cè)試;uchar code dsptab='0','1','2','3','4','5','6','7','8','9'/字符代表碼;/*-延時(shí)子程序-*/void delay(uint a) uint b; for(b=0;b<a;b+);void d
21、elay400ms(void)/400ms延時(shí) uchar a = 5; uint b; while(a-) b=7269; while(b-); void feng() deep=0; delay400ms(); deep=1;unsigned char Keycan(void) /按鍵掃描程序 P1.0-P1.3為行線 P1.4-P1.7為列線 unsigned char rcode, ccode; P1 = 0xF0; / 發(fā)全0行掃描碼,列線輸入 if(P1&0xF0) != 0xF0) / 若有鍵按下 delay(2);/ 延時(shí)去抖動(dòng) if(P1&0xF0) != 0
22、xF0) rcode = 0xFE; / 逐行掃描初值 while(rcode&0x10) != 0) P1 = rcode; / 輸出行掃描碼 if(P1&0xF0) != 0xF0) / 本行有鍵按下 ccode = (P1&0xF0)|0x0F; while(P1&0xF0) != 0xF0) /等待鍵釋放 /P36=0; /display(); /P36=1; return (rcode) + (ccode); / 返回鍵編碼 else rcode = (rcode<<1)|0x01; / 行掃描碼左移一位 return 0; / 無鍵按下,
23、返回值為0void KeyDeal(unsigned char Key) if(Key!=0) switch(Key) case 0x11: K=0; break; case 0x21: K=1; break; case 0x41: K=2; break; case 0x81: K=3; break; case 0x12: K=4; break; case 0x22: K=5; break; case 0x42: K=6; break; case 0x82: K=7; break; case 0x14: K=8; break; case 0x24: K=9; break; case 0x44:
24、 K=10; break; case 0x84: K=11; break; case 0x18: K=12; break; case 0x28: K=13; break; case 0x48: K=14; break; case 0x88: K=15; break; default: break; d2=d1; d1=d0; d0=K; n+; if(n>3) n=0; /*-讀狀態(tài)-*/讀狀態(tài)子程序;有返回值;返回值類型為CHAR型;/讀回的狀態(tài)通過RETURN返回;uchar read_estate(void)/定義有返回值的函數(shù); P0=0Xff;/把LCD端口全置1方便讀取信號(hào);
25、 LCD_RS=0;/RS置0; LCD_RW=1;/RW置1; LCD_E=0; /E端置0; delay(10);/短延時(shí); LCD_E=1;/E端置1;以鎖存數(shù)據(jù); while(P0&0x80); /檢測(cè)忙,則一直循環(huán); return(P0);/返回讀取的信號(hào);/*- 寫數(shù)據(jù)-*/寫數(shù)據(jù)子程序;無返回值;輸入變量I;/I為要寫入LCD中的數(shù)據(jù);/數(shù)據(jù)類型CHAR形;void write_data(uchar i)/定義輸入變量值I; read_estate();/檢測(cè)忙信號(hào); P0=i;/把I中數(shù)據(jù)送到LCD數(shù)據(jù)端; LCD_RS=1;/RS置1; LCD_RW=0;/RW置0;
26、 LCD_E=0;/E置0; delay(10);/短延時(shí); LCD_E=1;/E置1;以鎖存數(shù)據(jù);/*- 寫指令-*/寫指令子程序;無返回值;輸入二個(gè)變量I和J./I為要寫入LCD的指令;J為判斷要不要檢測(cè)忙./如果J為0則不判斷檢測(cè)忙;/如果J為1則判斷檢測(cè)忙;void write_dictate(uchar i,j)/定義二個(gè)變量; if(j)read_estate(); /根據(jù)需要檢測(cè)忙; P0=i; /把要寫入的數(shù)據(jù)送到LCD數(shù)據(jù)端; LCD_RS=0; /RS置0; LCD_RW=0;/RW置0; LCD_E =1;/E端置0; delay(10);/延時(shí); LCD_E =0;/E
27、端置1;以鎖存數(shù)據(jù);/*-讀數(shù)據(jù)-*/讀數(shù)據(jù)子程序;有返回值,返回值類型為CHAR型;/*uchar read_data(void)/定義有返回值的子函數(shù); LCD_DATA=0Xff;/LCD數(shù)據(jù)端口置1; LCD_RS=1;/RS置1; LCD_RW=1;/RW置1; LCD_E=0;/E置0; delay(10);/短延時(shí); LCD_E=1;/E置1;以鎖存數(shù)據(jù); return(LCD_DATA);/返回讀取的值;/*- LCD初始化-*/LCD初始化程序;主要作用初始化LCD,對(duì)LCD進(jìn)行復(fù)位以與設(shè)置;void initialization(void)/定義函數(shù); delay(50);
28、/延時(shí)5MS; write_dictate(0x38,0);/寫指令38H;不檢測(cè)忙; delay(50);/延時(shí)5MS; write_dictate(0x38,0);/寫指令38H;不檢測(cè)忙; delay(50);/延時(shí)5MS; write_dictate(0x38,0);/寫指令38H;不檢測(cè)忙; delay(50); write_dictate(0x38,1);/顯示模式設(shè)置;檢測(cè)忙; write_dictate(0x08,1);/關(guān)閉顯示;檢測(cè)忙; write_dictate(0x01,1);/顯示清屏;檢測(cè)忙; write_dictate(0x06,1);/顯示光標(biāo)移動(dòng)設(shè)置;檢測(cè)忙;
29、 write_dictate(0x0C,1);/顯示開與光標(biāo)設(shè)置;檢測(cè)忙;/*-在指定位置顯示一個(gè)字符-*/void displayonechar(uchar x, y,ddata)y &= 0x01;x &= 0x0f; /限制X不能大于15,Y不能大于1if (y) x+= 0x40; /當(dāng)要顯示第二行時(shí)地址碼+0x40;x+= 0x80; /算出指令碼write_dictate(x,0); /這里不檢測(cè)忙信號(hào),發(fā)送地址碼write_data(ddata);/*-在指定位置顯示一串字符-*/*void displaylistchar(uchar x,y,uchar code
30、 *ddata)uchar a=0; y&=0x01; x&=0xf; while(ddataa>0x20) if(x<=0xff) displayonechar(x, y,ddataa); a+; x+; */*-讀ADC0832的數(shù)據(jù)-*/unsigned char readadc(void) unsigned char dat,i; CLK=0; /芯片復(fù)位 CS=1; _nop_(); CS=0; _nop_(); DI=1; /啟動(dòng)位 CLK=1; _nop_(); CLK=0; DI=1; /配置位1 CLK=1; _nop_(); CLK=0; DI=
31、0; /配置位2 CLK=1; _nop_(); CLK=0; /空閑位 _nop_(); CLK=1;DI=1;for(i=0;i<=8;i+) /讀出8字節(jié)數(shù)據(jù) dat=dat<<1; _nop_(); CLK=1;/這里要先1后0.如果是先0后1則輸出結(jié)果錯(cuò)誤. if(DI) dat|=0x01; _nop_(); CLK=0; CS=1;/關(guān)閉芯片 return(dat);/返回?cái)?shù)據(jù)void main() uint dat; delay400ms();/延時(shí)400MS initialization();/LCD復(fù)位; /displaylistchar(0,0,DIS);/顯示ADC832 測(cè)試; displayonechar(0,0,'O'); /在LCD是顯示OUT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園老師學(xué)分管理制度
- 衛(wèi)生院人力資源管理制度
- 中醫(yī)藥基地參觀管理制度
- 施工信用評(píng)價(jià)管理制度
- 幼兒園溫馨設(shè)備管理制度
- 奉化雪竇寺建筑管理制度
- 早期矯正診療管理制度
- 景區(qū)特種設(shè)備管理制度
- 互聯(lián)網(wǎng)中層人員管理制度
- 押運(yùn)公司維修間管理制度
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 生態(tài)養(yǎng)殖羊圈施工合同
- 【團(tuán)體標(biāo)準(zhǔn)】TDZJN 77-2022 鋰離子電池產(chǎn)品碳足跡評(píng)價(jià)導(dǎo)則
- 傳感器的種類課件
- 2023日語專四真題專業(yè)四級(jí)真題
- 2024AI Agent行業(yè)研究報(bào)告
- 高中物理教學(xué)中物理實(shí)驗(yàn)的改進(jìn)與創(chuàng)新
- 華為質(zhì)量回溯(根因分析與糾正預(yù)防措施)模板
- 廣東省廣州市荔灣區(qū)統(tǒng)考2023-2024學(xué)年英語八下期末統(tǒng)考試題含答案
- 綜合英語4智慧樹知到答案2024年江西師范大學(xué)
- 紡織材料學(xué)智慧樹知到期末考試答案章節(jié)答案2024年武漢紡織大學(xué)
評(píng)論
0/150
提交評(píng)論