可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置設(shè)計(jì)_第1頁(yè)
可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置設(shè)計(jì)_第2頁(yè)
可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置設(shè)計(jì)_第3頁(yè)
可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置設(shè)計(jì)_第4頁(yè)
可設(shè)置報(bào)警數(shù)值的多路電壓采集裝置設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 本文由xiaodan2330貢獻(xiàn) doc文檔可能在WAP端瀏覽體驗(yàn)不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機(jī)查看。 可設(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ǔ)器。使用 At

2、mel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容,穩(wěn)定性高,成本低,還 能擴(kuò)展很多功能,如紅外探測(cè)技術(shù),溫度探測(cè)技術(shù),語(yǔ)音識(shí)別技術(shù),脈搏測(cè)量技術(shù)等,但 本設(shè)計(jì)沒(méi)有采用這些擴(kuò)展。它是將采集的多路電壓經(jīng) AT89S52 單片機(jī)和 ADC0809 串行 EEPROM,通過(guò) AT89S52 模擬 I2C 總線和 ADC0809 通信,然后由 LCD 液晶顯示電壓并在達(dá)到 或者超過(guò)一定范圍時(shí)發(fā)出報(bào)警提示。此類電路在日常生活和工作中,運(yùn)用的很廣泛,是過(guò) 壓保護(hù)電路的一個(gè)升級(jí),由該電路衍生出了各類電動(dòng)控制設(shè)備,如電動(dòng)摩托、公交的蓄電 池的電壓控制等等。 隨著科學(xué)技術(shù)的不

3、斷發(fā)展,人們對(duì)日常生活中對(duì)于此類報(bào)警提示電路要求越來(lái)越高, 也越來(lái)越復(fù)雜,多元。本次設(shè)計(jì)使用 ATMEL 公司的 AT89S52 實(shí)現(xiàn)一基于單片機(jī)的可設(shè)置報(bào) 警數(shù)值的多路電壓采集裝置比較簡(jiǎn)單實(shí)用,用軟件調(diào)試電路板,完成本次畢業(yè)設(shè)計(jì)。 關(guān)鍵詞:AT89S52 液晶顯示, 關(guān)鍵詞:AT89S52,ADC0809,LCD 液晶顯示,報(bào)警 DC0809, 目 錄 第 1 章 引言 3 4 4 5 6 6 10 11 12 11 11 12 15 16 17 18 24 第 2 章 方案論證 2.1 方案一:采用數(shù)碼管結(jié)合時(shí)鐘芯片控制顯示方案2.2 方案二:采用 LCD 液晶顯示單片機(jī)定時(shí)控制方案第3章

4、 3.1 3.2 3.3 3.4 硬件設(shè)計(jì) 功能模塊 原理圖 PCB 圖 實(shí)物 第 4 章 軟件設(shè)計(jì) 4.1 程序流程圖 4.2 程序?qū)崿F(xiàn)功能 第 5 章 總結(jié) 致謝語(yǔ) 參考文獻(xiàn) 附錄一 附錄一 程序 附錄二 元件清單 第 1 頁(yè)總 21 頁(yè) 1 引言. 第 1 章 引言. 在日常的生活和工作中,多路電壓采集裝置應(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)恿υ矗?為保證電動(dòng)車的正 常和安全行駛,電池管理系統(tǒng)必須實(shí)時(shí)監(jiān)測(cè)電動(dòng)車電池的電壓數(shù)據(jù)。通過(guò)電壓采集電路和 A/D 轉(zhuǎn)換實(shí)現(xiàn)電壓數(shù)據(jù)的獲取。而為了避免電池的不均衡性帶來(lái)的局部

5、過(guò)充/過(guò)放所引起的 安全問(wèn)題,要求監(jiān)測(cè)系統(tǒng)必須對(duì)每個(gè)單體或幾個(gè)單體電壓進(jìn)行精確測(cè)量,故多路電壓采集 裝置的精確性就關(guān)系到該電動(dòng)車的性能好壞了,由此可見(jiàn)多路電壓采集電路在生活中起到 了不小的作用。 隨著人類科技水平的發(fā)展,人類對(duì)于電的依賴程度越來(lái)越高,現(xiàn)在流行的電動(dòng)摩托車, 以及批量生產(chǎn)試行的電動(dòng)公交車,其他的直流電路控制設(shè)備等等很多產(chǎn)品都離不開多路電 壓采集裝置的應(yīng)用,它的運(yùn)用使人們的生活更安全,舒適,同時(shí)也為降低環(huán)境污染做出了 一定得貢獻(xiàn)。我相信不久的將來(lái),電動(dòng)設(shè)備普及的時(shí)候也是多路電壓采集裝置廣泛運(yùn)用的 時(shí)代。本次設(shè)計(jì)使用的 ATMEL 公司的 AT89S52 實(shí)現(xiàn)的基于單片機(jī)的控制的可設(shè)

6、置報(bào)警數(shù)值 的多路電壓采集裝置,由于本人水平有限,只能粗劣的完成一些簡(jiǎn)單的采集顯示功能,希 望在今后的學(xué)習(xí)中得到更大的提高,為科技的進(jìn)步作出一點(diǎn)得貢獻(xiàn)。 第 2 頁(yè)總 21 頁(yè) 2 第 2 章 方案論證 設(shè)計(jì)本課題時(shí)構(gòu)思了兩種方案:一種是用 2 個(gè) 7 段數(shù)碼管結(jié)合時(shí)鐘控制的顯示方案; 另一種是用 LCD 顯示結(jié)合單片機(jī)定時(shí)設(shè)置顯示的方案。考慮到數(shù)碼管顯示電路相對(duì)比較復(fù) 雜,需要引入較多的其他電路,而且實(shí)用性不高,而第二種方案集成度較高,可留出較多 的芯片端口擴(kuò)展顯示更多功能。故最終采用第二種方案。 方案一:采用數(shù)碼管結(jié)合時(shí)鐘控制 顯示方案 數(shù)碼管結(jié)合時(shí)鐘控制的 2.1 方案一:采用數(shù)碼管結(jié)合

7、時(shí)鐘控制的顯示方案 采用數(shù)碼管結(jié)合時(shí)鐘控制的顯示,其原理方框圖如圖 21 所示。 數(shù)碼管顯示 鍵盤控制 AT89S52 單片機(jī) A/D 轉(zhuǎn) 換電路 多路電壓 采集電路 報(bào)警電路 交直轉(zhuǎn) 換電路 時(shí)鐘控 制電路 圖 21 數(shù) 碼管結(jié)合時(shí)鐘控制的顯示方案 采用數(shù)碼管顯示結(jié)合時(shí)鐘控制的顯示電路的好處是成本相當(dāng)較低,但是電路相對(duì)較復(fù) 雜,首先由電壓轉(zhuǎn)換電路將 20-220V 的交流電壓轉(zhuǎn)換成改電路可采集的直流電壓,然后由 電壓采集電路將電壓通過(guò)電阻或電容的分壓作用,調(diào)整為 AD 芯片可以承受的 0-5V 電壓, 然后由 AT89S52 芯片結(jié)合時(shí)鐘控制數(shù)碼管顯示當(dāng)時(shí)的電壓和時(shí)間, 并且每 10 分鐘存

8、儲(chǔ)一次。 通過(guò)編程控制按鍵輸入顯示相應(yīng)的時(shí)間就可顯示當(dāng)時(shí)的電壓數(shù)值。 設(shè)置外部輸入電壓 XX v 時(shí),為最高電壓輸入值,然后當(dāng)采集的電壓達(dá)到或者超過(guò)該數(shù) 值時(shí),單片機(jī)給 T0 端口一個(gè)低電平,使蜂鳴器發(fā)出警告聲,從而完成改電路的設(shè)計(jì)要求。 方案二: 顯示結(jié)合單片機(jī)定時(shí)控制的顯示 結(jié)合單片機(jī)定時(shí)控制的顯示方案 2.2 方案二:采用 LCD 顯示結(jié)合單片機(jī)定時(shí)控制的顯示方案 以 AT89S52 為核心的單片機(jī)定時(shí)控制 LCD 顯示方案,使整體設(shè)計(jì)電路更簡(jiǎn)潔,便有操 作,利用單片機(jī)靈活的編程設(shè)計(jì)和及其強(qiáng)大的內(nèi)部控制功能,可以準(zhǔn)確的達(dá)到設(shè)計(jì)要求。 其原理如圖 22 所示。 第 3 頁(yè)總 21 頁(yè) 3

9、LCD 液晶顯示 鍵盤控制 AT89S52 單片機(jī) A/D 轉(zhuǎn) 換電路 多路電壓 采集電路 報(bào)警電路 交直轉(zhuǎn) 換電路 圖 22 采用 LCD 顯示結(jié)合單片機(jī)定時(shí)控制的顯示方案 通過(guò)比較以上兩種方案的比較,第二種方案電路設(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ì) 3.11.交直轉(zhuǎn)換和采集電路設(shè)計(jì) 和采集電路 交直轉(zhuǎn)換電路才用單相橋式整流電路,將 220V 的交流電壓轉(zhuǎn)換成直流電壓,以供設(shè)計(jì) 電

10、路采集使用,其原理如圖 31 所示。 圖 3 1 交直轉(zhuǎn)換電路說(shuō)明 示意圖 單相橋式整流電路 如圖,四個(gè)二極管作為 整流器件接成電橋形 式,當(dāng)變壓器 TR 的極性 第 4 頁(yè)總 21 頁(yè) 4 上端為正下端為負(fù)時(shí),VS1、VD3 因正向偏置而導(dǎo)通,VD2、VD4 因反向偏置而截止,在負(fù)載 RL 上有電流通過(guò),電流由變壓器二次繞組上端經(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,

11、上就能得到一個(gè)和單相全波整流時(shí)一樣的電壓波形,從而達(dá)到交流轉(zhuǎn)直流的目的。 圖 32 電壓采集電路說(shuō)明示意圖 本電路設(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)電阻分壓縮小為原來(lái)的 2/5,由 IN4 輸入。 3.12 轉(zhuǎn)換電路的設(shè)計(jì) 3.12 ADC0809 轉(zhuǎn)換電路的設(shè)計(jì) 本設(shè)計(jì)電路中,ADCO809 轉(zhuǎn)換芯只采用 IN0-IN3 四路端口采集電壓信號(hào),具體原理如 圖 3-3 所示。 圖 33 AD 轉(zhuǎn)換電路原理圖

12、ADC0809 轉(zhuǎn)換芯片有 8 路模擬信號(hào)的分時(shí)采集端口 IN0-IN7, 片內(nèi)有 8 路模擬選通開關(guān), 以及相應(yīng)的通道抵制鎖存用譯碼電路,其轉(zhuǎn)換時(shí)間為 100s 左右據(jù)。地址鎖存與譯碼電路 完成對(duì) ADDR0(A)、ADDR1(B)、ADDR2(C) 3 個(gè)地址位進(jìn)行鎖存和譯碼,其譯碼輸出用于通道 選擇,其轉(zhuǎn)換結(jié)果通過(guò)三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連, 表 3-0 為通道選擇表。 由表 3-0 可知,本設(shè)計(jì)的采集端口 IN0-IN3 對(duì)應(yīng)的 3 個(gè) 地址位分別為 000, 001, 和 011。 010 ADC809 芯片的 DB0-DB7 對(duì)應(yīng)接入 AT89S52

13、的 P00-P07 端口,將 AD 轉(zhuǎn)換的數(shù)字信號(hào) 傳輸?shù)?AT89S52 中,達(dá)到數(shù)據(jù)采集輸入的目的。 液晶顯示電路設(shè)計(jì) 3.13 LCD 液晶顯示電路設(shè)計(jì) 第 5 頁(yè)總 21 頁(yè) 5 本系統(tǒng)設(shè)計(jì)的 LCD 液晶顯示為 1602 芯片, 能夠顯示 16 位數(shù)值, 從左到右依規(guī)定為 1-16 位,其中前 1-5 位用來(lái)顯示時(shí)間(XX:XX,小時(shí)和分鐘顯示) ,然后 6 位不顯示,接著的 7-9 三位顯示 IN0 輸入電壓(XXX,單位 mv) ,接著 10 位不顯示,然后 11 位顯示 IN1 的電壓輸 入值一位(X,單位 v),12 位再不顯示,13-14 位顯示 IN2 的電壓輸入值兩位(

14、XX,單位 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)?0 時(shí),讀取數(shù)據(jù);當(dāng) RS 引腳 信號(hào)為 1,RW 引腳信號(hào)為 0 且 Enable 引腳信號(hào)由 1 變?yōu)?0 時(shí),存入數(shù)據(jù);達(dá)到數(shù)據(jù)輸入 和顯示的功能。 3.14 3.14 按鍵電路設(shè)計(jì) 本設(shè)計(jì)使用矩

15、陣 4*4 行列式鍵盤掃描電路,對(duì)應(yīng)主芯片的 P10-P17 腳,共占用 8 個(gè) I/O 口,其原理如圖 35 所示。 第 6 頁(yè)總 21 頁(yè) 6 圖 35 4*4 行列式鍵盤原理圖 每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過(guò)一個(gè)按鍵來(lái)連通, 利用這種行列式矩陣結(jié)構(gòu)只需要 N 條行線和 M 條列線,即可組成具有 N×M 個(gè)按鍵的鍵盤, 改電路采用 4*4 鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序 首先執(zhí)行等待按鍵并確認(rèn)有無(wú)按鍵按下的程序段。 當(dāng)確認(rèn)有按鍵按下后,下一步就要識(shí)別哪一個(gè)按鍵按下。對(duì)鍵的識(shí)別通常有兩種方法: 一種是常用的逐行掃描查詢法

16、, 另一種是速度較快 的線反轉(zhuǎn)法。 判斷鍵盤中哪一個(gè)鍵被按下, 是通過(guò)將列線逐 列置低電平后, 檢查行的輸入狀態(tài)來(lái)實(shí)現(xiàn)的。 具體 方法是: 依次給列線送低電平, 然后查看所有行線 的狀態(tài),如果全為 1,則所按下的鍵不在此列;如 果不全為 1,則所按下的鍵必在此列,而且按下的 鍵即是顯示 0 的行線與低電平的列線相交的那個(gè) 按鍵。 按鍵的操作面板如圖圖 36 所示。共計(jì)數(shù)字 輸入鍵 10 個(gè),功能鍵 5 個(gè)。 圖 36 按鍵操作面板示意圖 其中 10 個(gè)數(shù)字鍵 0-9 用來(lái)輸入顯示時(shí)間(例:XX:XX,小時(shí)和分鐘)和設(shè)置的電壓值 (XXX,三位電壓數(shù)值) ,另外 5 個(gè)功能鍵分別是:A、B、C、

17、D 和黑點(diǎn)。其中 A 鍵的功能是 進(jìn)入電壓設(shè)置模式;B 鍵的功能是進(jìn)入時(shí)間輸入模式;C 鍵的功能是當(dāng)電壓或者時(shí)間輸入錯(cuò) 誤的時(shí)候,清除前面已經(jīng)輸入的數(shù)據(jù),重新輸入;D 鍵的功能是用來(lái)恢復(fù)電壓采集的初始狀 態(tài),即顯示當(dāng)時(shí)的時(shí)間和采集的電壓數(shù)值,為復(fù)位鍵;黑點(diǎn)鍵是用來(lái)確認(rèn)輸入的電壓值和 時(shí)間的,即確認(rèn)鍵。 3.15 蜂鳴器和總開關(guān)電路的 和總開關(guān)電路 3.15 蜂鳴器和總開關(guān)電路的設(shè)計(jì) 第 7 頁(yè)總 21 頁(yè) 7 圖 37 蜂鳴器和復(fù)位電路原理圖 當(dāng)采集電壓達(dá)到設(shè)定的最大電壓數(shù)值時(shí),給單片機(jī)的 T0 腳一個(gè)低電平就會(huì)使蜂鳴器 鳴響示警,達(dá)到報(bào)警的目的。 3.16 3.16 總體設(shè)計(jì)總框圖 LCD

18、液晶顯示 鍵盤控制 AT89S52 單片機(jī) A/D 轉(zhuǎn) 換電路 多路電壓 采集電路 報(bào)警電路 交直轉(zhuǎn) 換電路 圖 38 總體設(shè)計(jì)框圖 3.2 原理圖 第 8 頁(yè)總 21 頁(yè) 8 1 2 3 4 U2 Vss VCC VEE D 1 2 3 LCD1602 RS R/W E LED+ LEDDB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 7 DB0 DB1 8 DB2 9 10 DB3 11 DB4 12 DB5 13 DB6 14 DB7 RS 4 R/W 5 E 6 15 16 D R9 10K 4 VCC VCC VCC R4 R5 33K R10 91K 1 U5A 2

19、3 R6 33K 0 4 8 C R7 33K 1 5 9D R8 33K 2 6 A E 10K R11 15K R12 15k J3 1 2 RP1 S3 S4 S5 C 10K LM358 8 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 3 7 1 2 3 4 5 6 7 8 9 C11 103 C12 103 0-400mV U1 B F P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P33 13 12 INT0 P10/T P11/T P12 P13 P14 P15 P16 P17 INT

20、1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR STC89S52RC VCC P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 P20 P21 P22 RS R/W E P26 P27 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 17 14 15 8 18 19 20 21 25 24 23 10 U3 ADC0809 VCC +Vref IN0 IN1 IN2 IN3 IN4

21、 IN5 IN6 IN7 -Vref GND EOC S6 VCC Q1 R5 1K DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 ADDR0 ADDR1 ADDR2 CLK ALE START OE 5 VCC 11 12 IN0 26 IN1 27 28 IN2 1 IN3 2 IN4 3 IN5 4 IN6 5 IN7 16 13 7 VCC R13 15k J4 C13 103 1 2 C 0-5V R14 15k J5 C14 103 1 2 R2 470 蜂蜂蜂 9012 VCC 0-5V C4 C3 10uF 30p P35 15 P34 14 U6A 74LS

22、04 1 3 X1 VCC 12M 30p 31 19 18 9 P37 17 P36 16 S2 FW B R3 10K U6B 2 22 6 4 9 R15 R16 15K 15k J6 C15 103 1 2 74LS04 U6C INT0 6 RXD TXD ALE/P PSEN 10 P30 11 P31 30 29 VCC 10 11 9 12 5 4 3 1 0-12V C5 74LS04 R17 10K B J4 1 6 2 7 3 8 4 9 5 U4 7 14 8 13 15 6 2 MA X232 T2 IN T1 IN R2 OUT R1 OUT C2C2+ C1C1+

23、 S1 J2 D1 LED C6 1uF C8 1uF C9 T2 OUT T1 OUT R2 IN R1 IN GND VV+ VCC VCC J1 C2 C1 470uF 104 1 2 C7 1uF 1 2 3 4 從畢從從 USB口口集 R1 1k C10 1uF DB9 16 A Title Size A4 Date: File: 14-May-2009 Sheet of E:學(xué)學(xué)畢畢畢畢我我完完完集完集集集集集集集集(舊).ddb Drawn By: 4 Num ber Revision 1uF A 1 2 3 3.3 PCB 圖 第 9 頁(yè)總 21 頁(yè) 9 第 4 章 軟件設(shè)計(jì)

24、4.1 程序流程圖 程序流程圖 開始 初始化 AD 轉(zhuǎn)換子程序 鍵盤控制子程序 AT89S52 LCD 顯示子程序 是否最 大電壓 蜂鳴器報(bào)警 END 圖 41 主程序流程圖 第 10 頁(yè)總 21 頁(yè) 10 圖 42 A/D 轉(zhuǎn)換程序流程圖 鍵盤掃描 1 有鍵閉合 設(shè)置電壓數(shù)值 延時(shí)去抖動(dòng) END 掃描鍵盤 找到閉合鍵 輸入時(shí)間顯示 1 圖 43 鍵盤控制程序流程圖 第 11 頁(yè)總 21 頁(yè) 11 圖 44 LCD 顯示子程序流程圖 程序?qū)崿F(xiàn)功能 功能. 4.2 程序?qū)崿F(xiàn)功能. 該主要由三部分組成:多路電壓采集電路、4×4 矩陣鍵盤接口電路、LCD 顯示電路、 A/D 轉(zhuǎn)換電路。另外

25、系統(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 顯示子程序包括實(shí)時(shí)時(shí)間的顯示,采集的電壓數(shù)值顯示。其流程圖如 4-4 所示。 參考文獻(xiàn) 第 12 頁(yè)總 21 頁(yè) 12 1.孫

26、涵芳,徐愛(ài)卿編著。MCS51/96 系列單片機(jī)原理及應(yīng)用(修訂版) 。北京:北京航空航 天大學(xué)出版社,1996.4 2.何立民編著。MCS-51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)(系統(tǒng)配置與接口技術(shù)) 。北京:北京航空 航天大學(xué)出版社,1993.8 3.吳微,文軍編著。單片機(jī)原理及制作。武漢:武漢大學(xué)出版社,1991.5 4.孫育才,蘇學(xué)成編著。單片微型計(jì)算機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。南京:東南大學(xué)出版社, 1990.5 5.鄭步生,Multisim 2001 電路設(shè)計(jì)及仿真入門與應(yīng)用,北京。電子工業(yè)出版社,2002 6何小艇。電子系統(tǒng)設(shè)計(jì)。杭州:浙江大學(xué)出版社,2000 7李瀚蓀主編。電路分析基礎(chǔ)(上、中、

27、下冊(cè)(第三版)。北京:高等教育出版社,1983 ) 8溫照方編。電路基礎(chǔ)。北京:北京理工大學(xué)出版社,19969。 9楊志忠。電子技術(shù)基礎(chǔ)數(shù)字部分。北京:電力出版社,1999 10楊頌華。數(shù)字電子技術(shù)基礎(chǔ)。西安:西安電子科技大學(xué)出版社,2000 11 杜剛。 電路設(shè)計(jì)與制板Protel 應(yīng)用教程 (電子電路設(shè)計(jì)循序漸進(jìn)系列教程) 北京: 。 清華大學(xué)出版社,2006 12曾峰。印刷電路板(PCB)設(shè)計(jì)與制作。北京:電子工業(yè)出版社,2005 13童詩(shī)白,華成英,模擬電子技術(shù)基礎(chǔ)(第三版) ,北京,高等教育出版社,2001 康華光,電子技術(shù)基礎(chǔ)(模擬部分,第四版) ,北京,高等教育出版社,1999

28、14王佩珠,電路與模擬電子技術(shù),南京,南京大學(xué)出版社,1994 15楊清學(xué),電子裝配工藝【M】 北京,電子工業(yè)出版社 ,2004 16王成安,模擬電子技術(shù)(實(shí)訓(xùn)篇) 【M】 版,大連,大連理工大學(xué)出版社,2005 ,2 17黃純,電子產(chǎn)品工藝【M】 北京,電子工業(yè)出版社,2001 第 13 頁(yè)總 21 頁(yè) 13 附錄一 附錄一 程序及部分說(shuō)明 #include<reg52.h> #include #define uint unsigned int #define uchar unsigned char /#define LCD_DATA P0; sbit DI = P34; sbi

29、t 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,d1; unsigned char K,Key,n; uchar d4=0,0,0,0; /uchar code DIS="ADC0832TEST"/ADC832 測(cè)試; uchar code dsptab='0','1','2','3',&

30、#39;4','5','6','7','8','9'/字符代表碼; /*延時(shí)子程序*/ void delay(uint a) uint b; for(b=0;b3) n=0; /*讀狀態(tài)*/ /讀狀態(tài)子程序;有返回值;返回值類型為 CHAR 型; /讀回的狀態(tài)通過(guò) RETURN 返回; uchar read_estate(void) /定義有返回值的函數(shù); P0=0Xff; /把 LCD 端口全置 1 方便讀取信號(hào); LCD_RS=0; /RS 置 0; LCD_RW=1; /RW 置 1; LCD_E=0

31、; /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ù)子程序;無(wú)返回值;輸入變量 I; /I 為要寫入 LCD 中的數(shù)據(jù); /數(shù)據(jù)類型 CHAR 形; void write_data(uchar i) read_estate(); P0=i; /定義輸入變量值 I; /檢測(cè)忙信號(hào); /把 I 中數(shù)據(jù)送到 LCD 數(shù)據(jù)端; 第 16 頁(yè)總 21 頁(yè) 16 LCD_RS=1; LCD_RW=0; LCD_E=0; d

32、elay(10); LCD_E=1; /RS 置 1; /RW 置 0; /E 置 0; /短延時(shí); /E 置 1;以鎖存數(shù)據(jù); /* 寫指令*/ /寫指令子程序;無(wú)返回值;輸入二個(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;

33、LCD_E =1; /E 端置 0; delay(10); /延時(shí); LCD_E =0; /E 端置 1;以鎖存數(shù)據(jù); /*讀數(shù)據(jù)*/ /讀數(shù)據(jù)子程序;有返回值,返回值類型為 CHAR 型; /*uchar read_data(void) LCD_DATA=0Xff; LCD_RS=1; LCD_RW=1; LCD_E=0; delay(10); LCD_E=1; return(LCD_DATA); /定義有返回值的子函數(shù); /LCD 數(shù)據(jù)端口置 1; /RS 置 1; /RW 置 1; /E 置 0; /短延時(shí); /E 置 1;以鎖存數(shù)據(jù); /返回讀取的值; /* LCD 初始化*/ 第 1

34、7 頁(yè)總 21 頁(yè) 17 /LCD 初始化程序;主要作用初始化 LCD,對(duì) LCD 進(jìn)行復(fù)位以及設(shè)置; void initialization(void) /定義函數(shù); delay(50); /延時(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è)置

35、;檢測(cè)忙; write_dictate(0x08,1); /關(guān)閉顯示;檢測(cè)忙; write_dictate(0x01,1); /顯示清屏;檢測(cè)忙; write_dictate(0x06,1); /顯示光標(biāo)移動(dòng)設(shè)置;檢測(cè)忙; write_dictate(0x0C,1); /顯示開及光標(biāo)設(shè)置;檢測(cè)忙; /*在指定位置顯示一個(gè)字符*/ void displayonechar(uchar x, y,ddata) y &= 0x01; x &= 0x0f; /限制 X 不能大于 15,Y 不能大于 1 if (y) x+= 0x40; /當(dāng)要顯示第二行時(shí)地址碼+0x40; x+= 0x8

36、0; /算出指令碼 write_dictate(x,0); /這里不檢測(cè)忙信號(hào),發(fā)送地址碼 write_data(ddata); /*在指定位置顯示一串字符*/ /*void displaylistchar(uchar x,y,uchar code *ddata) uchar a=0; y&=0x01; x&=0xf; while(ddataa>0x20) if(x<=0xff) displayonechar(x, y,ddataa); a+; x+; */ 第 18 頁(yè)總 21 頁(yè) 18 /*讀 ADC0832 的數(shù)據(jù)*/ unsigned char readad

37、c(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=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 da

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論