版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)at89c52的軸溫報(bào)警器設(shè)計(jì)專業(yè)(年級(jí)、班) 設(shè) 計(jì) 人 指 導(dǎo) 教 師 輔 導(dǎo) 教 師 2009 年 01 月 01 日(設(shè)計(jì)結(jié)束日)目 錄第一章 緒 論研究背景及現(xiàn)狀1.1 研究背景1.1.1 國(guó)內(nèi)研究現(xiàn)狀1.1.2 國(guó)外研究現(xiàn)狀1.2 研究方案1.2.1 單片機(jī)選擇1.2.2 集成傳感器的選擇第二章 主要硬件介紹2.1單片機(jī)at86c52介紹2.1.1 主要性能參數(shù)2.1.2 功能特新概述2.1.3 引腳功能說(shuō)明2.2 ds18b20介紹2.2.1 ds18b20內(nèi)部結(jié)構(gòu)2.2.2 ds18b20溫度傳感器的存儲(chǔ)器2.3 lcd顯示器2.3.1 單色液晶顯示器的原理2.3.2
2、 1602lcd的引腳功能2.4 “看門狗”電路2.4.1 “看門狗”的工作原理第三章 軟件開(kāi)發(fā)環(huán)境介紹集成開(kāi)發(fā)環(huán)境 keil1. u vision2 ide2. c51編譯器和a51匯編器3. lib51庫(kù)管理器4. bl51鏈接器定位器5. vision2 軟件調(diào)試器6. vision2硬件調(diào)試器7. 利用keil開(kāi)發(fā)系統(tǒng)軟件流程第四章 系統(tǒng)設(shè)計(jì)軟件部分設(shè)計(jì)4.1溫度部分軟件設(shè)計(jì)4.2 顯示部分程序設(shè)計(jì)4.3 報(bào)警部分程序設(shè)計(jì)4.4 本章小結(jié)結(jié)語(yǔ)參考文獻(xiàn)附錄摘 要以旅客列車的軸溫作為控制對(duì)象,探討了一種基于at89c52單片機(jī)的軸溫報(bào)警系統(tǒng)方案。該系統(tǒng)利用軟件對(duì)采集的數(shù)據(jù)進(jìn)行比較、處理,使
3、得系統(tǒng)易于實(shí)現(xiàn)。便于維護(hù)。能滿足當(dāng)前鐵路提速的要求 ,對(duì)保障列車的安全運(yùn)行具有重要作用。關(guān)鍵詞:溫度傳感器ds18b20;單片機(jī)at89c52;abstractthe temperature in the passenger train control object is discussed, as a kind of at89c52 single chip based on temperature alarm system solutions. this system using the software of the data collected in comparison, proces
4、sing, the system is easy to realize. easy maintenance. to meet the demands of the railway, the speed of train operation safety guarantee plays an important role.key words: ds1820; single chip microcomputer at89c52;第一章 緒論l 研究背景及現(xiàn)狀客車用集中軸溫報(bào)警器(以下簡(jiǎn)稱軸溫報(bào)警器)作為保障旅客列車運(yùn)行安全重要設(shè)備,廣泛應(yīng)用于各類旅客列車車軸溫度的實(shí)時(shí)監(jiān)測(cè),以避免列車運(yùn)行過(guò)程中因溫
5、度過(guò)高引起切軸造成的行車事故。l 1.1研究背景在現(xiàn)代化的工農(nóng)業(yè)生產(chǎn)和日常生活中,溫度、電流、電壓、壓力、流量、流速和開(kāi)關(guān)量都是常用的主要被控參數(shù)。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、農(nóng)業(yè)生產(chǎn)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人們都需要對(duì)各類加熱爐、熱處理爐、反應(yīng)爐、鍋爐和溫室中的溫度進(jìn)行檢測(cè),來(lái)達(dá)到有效的測(cè)量、控制和調(diào)節(jié)作用。現(xiàn)階段全路廣泛使用的集中式軸溫報(bào)警器是由傳輸線路、軸溫傳感器及控制顯示器組成 ,是監(jiān)測(cè)鐵路列車軸溫 ,預(yù)報(bào)熱軸 ,防止切軸 ,保證列車運(yùn)行安全的重要設(shè)備. 自軸溫報(bào)警器使用以來(lái) ,在預(yù)報(bào)熱軸 ,防止切軸方面發(fā)揮了重要作用 ,準(zhǔn)確預(yù)報(bào)了大量熱軸故障. 但隨著全
6、路范圍內(nèi)的大規(guī)模提速 ,傳統(tǒng)的軸溫監(jiān)測(cè)裝置由于溫度檢測(cè)以熱敏電阻為溫度敏感元件 ,雖然熱敏電阻成本低 ,但需要后續(xù)信號(hào)處理電路 ,使傳感器連線太多,干擾大 , 由于熱敏電阻本身的可靠性相對(duì)較差 ,測(cè)量溫度的準(zhǔn)確度低 ,所以使檢測(cè)系統(tǒng)的精度低 ,可靠性差. 而且由于以往系統(tǒng)數(shù)據(jù)分析單一等原因使之已不能滿足現(xiàn)階段及將來(lái)鐵路運(yùn)輸安全保障的要求 ,需要對(duì)其進(jìn)行改進(jìn)。l 1.1.1國(guó)內(nèi)研究現(xiàn)狀我國(guó)在軸溫報(bào)警系統(tǒng)方面,在客車檢測(cè)上用到的較頻繁。國(guó)內(nèi)多采用的熱敏電阻器。熱敏電阻的電阻溫度系數(shù)較高,室溫電阻通常也較高,因此其自身發(fā)熱較小,信號(hào)調(diào)節(jié)較為簡(jiǎn)單。熱敏電阻的缺點(diǎn)是互換性差,溫度與輸出阻值之間呈非線性關(guān)
7、系。熱敏電阻分為正溫度系數(shù)熱敏電阻和負(fù)溫度系數(shù)熱敏電阻兩種,但在溫度測(cè)量應(yīng)用中,正溫度系數(shù)熱敏電阻較少得到采用,更多采用的是負(fù)溫度系數(shù)熱敏電阻。l 1.1.2國(guó)外研究現(xiàn)狀美國(guó)、德國(guó)、日本等發(fā)達(dá)國(guó)家,涉及其領(lǐng)域較早,在溫控方面取得了很大的發(fā)展,并且現(xiàn)在處于了較成熟的發(fā)展階段。而我國(guó)的溫控起步較晚,但是在引進(jìn)、借鑒、吸收和消化了發(fā)達(dá)國(guó)家先進(jìn)技術(shù)的基礎(chǔ)上,研制了屬于自己適合自己的微溫控系統(tǒng)。雖然和發(fā)達(dá)國(guó)家還有一定的差距,但是在關(guān)于微處理器的智能溫控系統(tǒng)在國(guó)內(nèi)已形成一種良好的發(fā)展趨勢(shì),技術(shù)日趨完善,在諸多領(lǐng)域都引領(lǐng)了現(xiàn)代科技的潮流。特別是近幾年,含微處理器的智能化數(shù)字測(cè)溫儀及智能化溫度測(cè)控儀系統(tǒng)脫穎而
8、出,以其精度高、準(zhǔn)確、可靠、體積小、操作方便靈活等優(yōu)點(diǎn),大有取代傳統(tǒng)測(cè)控系統(tǒng)的趨勢(shì)。1.2 研究方案此次軸溫報(bào)警器設(shè)計(jì)是一套基于單片機(jī)的綜合控制系統(tǒng),包括很多方面。本次設(shè)計(jì)由于時(shí)間等各方面的限制只完成了其中的測(cè)量和顯示該部分的內(nèi)容。l 1.2.1單片機(jī)的選擇根據(jù)控制系統(tǒng)所要求的控制精度,響應(yīng)速度,開(kāi)發(fā)環(huán)境,i/o點(diǎn)數(shù),輸入/輸出通道數(shù)等情況,我們選擇了mcs51系列的8位單片機(jī)89c52。at89c52是一種帶8k字節(jié)閃速可編程可擦除只讀存儲(chǔ)器(eeprom)的低電壓、高性能cmos8位為制器 。該器件采用atmel非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的80c51和80c52輸出管相兼容。由于
9、將多功能8位cpu和閃速存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89c52是一種高性能控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。l 1.2.2集成傳感器的選擇傳感器是實(shí)現(xiàn)測(cè)量與控制的首要環(huán)節(jié),是測(cè)控系統(tǒng)的關(guān)鍵部件。傳感器亦稱換能器、變換器,它是將被測(cè)的某一物理量(信號(hào))按一定規(guī)律轉(zhuǎn)換成與其對(duì)應(yīng)的另一種(或同種)物理量(或信號(hào))的輸出裝置。傳感器的種類繁多,分類方法也很多。例如,按構(gòu)成原理來(lái)分,可分為結(jié)構(gòu)型和物性型兩類;按信號(hào)轉(zhuǎn)換效應(yīng)來(lái)分,可分為物理型、化學(xué)型及生物型傳感器等;按構(gòu)成傳感器敏感元件材料分,又可分為半導(dǎo)體傳感器、陶瓷傳感器、光纖傳感器、高分子膜傳感器等;按能量觀點(diǎn)
10、分類,則又可分為有源傳感器和無(wú)源傳感器等。這里,我們重點(diǎn)介紹一下溫度傳感器。廣義來(lái)講,一切隨溫度變化而物體性質(zhì)亦發(fā)生變化的物質(zhì)均可作為溫度傳感器,例如,我們平常使用的各種材料、元件,其性質(zhì)或多或少地都會(huì)隨其所處的環(huán)境溫度變化而變化,因而它們幾乎都能作為溫度傳感器使用。但是,一般真正能作為實(shí)際中可使用的溫度傳感器的物體一般需要具備下述條件:(1)物體的特性隨溫度的變化有較大的變化,且該變化量易于測(cè)量;(2) 對(duì)溫度的變化有較好一一對(duì)應(yīng)的關(guān)系,即對(duì)除溫度外其他物理量的變化不敏感;(3) 性能誤差及老化小、重復(fù)性好,尺寸??;(4) 有較強(qiáng)的耐機(jī)械、化學(xué)及熱作用等的特點(diǎn);(5) 與被檢測(cè)的溫度范圍和精
11、密度相適應(yīng);(6) 價(jià)格便宜,適合于批量生產(chǎn)。符合上述條件的常用溫度傳感器有熱電偶、熱電阻、光輻射溫度計(jì)、玻璃溫度計(jì)、半導(dǎo)體集成溫度傳感器等。而ds18b20 是美國(guó)dallas 公司繼ds1820 之后推出的增強(qiáng)型單總線數(shù)字式溫度傳感器,它在轉(zhuǎn)換速度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較ds1820 有了很大的改進(jìn),給用戶帶來(lái)了更方便、更令人滿意的效果。第二章 主要硬件介紹l 2.1單片機(jī)at89c52介紹at89c52是美國(guó)atmel公司生產(chǎn)的低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes 的可反復(fù)擦鞋的只讀程序存儲(chǔ)器(perom)和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram
12、),器件采用atmel公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(cpu)和flash存儲(chǔ)單元。l 2.1.1主要性能參數(shù):l 與mcs-51產(chǎn)品指令和引腳完全兼容l 8k字節(jié)可重復(fù)擦寫flash閃速存儲(chǔ)器l 1000次擦寫周期l 全靜態(tài)操作:0hz-24mhzl 三級(jí)加密程序存儲(chǔ)器l 2568字節(jié)內(nèi)部raml 32個(gè)可編程i/o線口l 3個(gè)16位定時(shí)/計(jì)數(shù)器l 8個(gè)中斷源l 可編程串行uart通道l 低功耗空閑和掉電模式l 2.1.2功能特性概述:at89c52提供以下標(biāo)準(zhǔn)功能,8k字節(jié)flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部r
13、am,32個(gè)i/o口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉袛嘟Y(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),at89c52可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許ram,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram中的內(nèi)容,但振蕩器停止工作并禁止其他所有部件工作直到下一個(gè)硬件復(fù)位。l 2.1.3 引腳功能說(shuō)明:vcc:電源電壓gnd:地p0口:p0 口是一組 8 位漏極開(kāi)路型雙向 i/o 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng) 8 個(gè) ttl邏輯門電路,對(duì)端口 p0 寫“1”
14、時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低 8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在 flash 編程時(shí),p0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。p1 口:p1 是一個(gè)帶內(nèi)部上拉電阻的 8 位雙向 i/o 口, p1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) ttl 邏輯門電路。對(duì)端口寫“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。與 at89c51 不同之處是,p1.0 和 p1.1 還可分別作
15、為定時(shí)/計(jì)數(shù)器 2 的外部計(jì)數(shù)輸入(p1.0/t2)和輸入(p1.1/t2ex)。flash 編程和程序校驗(yàn)期間,p1 接收低 8 位地址。p2 口:p2 是一個(gè)帶有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) ttl 邏輯門電路。對(duì)端口 p2 寫“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。在訪問(wèn)外部程序存儲(chǔ)器或 16 位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行 movx dptr 指令)時(shí),p2 口送出高 8 位地址數(shù)據(jù)。在訪問(wèn) 8 位地址的外部數(shù)據(jù)存儲(chǔ)器
16、(如執(zhí)行 movx ri 指令)時(shí),p2 口輸出p2 鎖存器的內(nèi)容。flash 編程或校驗(yàn)時(shí),p2亦接收高位地址和一些控制信號(hào)。p3口:p3 口是一組帶有內(nèi)部上拉電阻的 8 位雙向 i/o 口。p3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) ttl 邏輯門電路。對(duì) p3 口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的 p3 口將用上拉電阻輸出電流(iil) 。此外,p3 口還接收一些用于flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。rst:復(fù)位輸入。當(dāng)振蕩器工作時(shí),rst引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ale/prog: 當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)
17、存儲(chǔ)器時(shí),ale(地址鎖存允許)輸出脈沖用于鎖存地址的低 8 位字節(jié)。一般情況下,ale 仍以時(shí)鐘振蕩頻率的 1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè) ale 脈沖。對(duì) flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(prog) 。如有必要,可通過(guò)對(duì)特殊功能寄存器(sfr)區(qū)中的 8eh 單元的 d0 位置位,可禁止 ale 操作。該位置位后,只有一條movx 和movc指令才能將 ale 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置 ale 禁止位無(wú)效。psen:程序儲(chǔ)存允許(psen)輸出是外部程序
18、存儲(chǔ)器的讀選通信號(hào),當(dāng) at89c52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次 psen 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次 psen信號(hào)。ea/vpp:外部訪問(wèn)允許。欲使 cpu 僅訪問(wèn)外部程序存儲(chǔ)器(地址為 0000hffffh) ,ea 端必須保持低電平(接地) 。需注意的是:如果加密位 lb1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存 ea端狀態(tài)。如 ea端為高電平(接 vcc端) ,cpu 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。flash 存儲(chǔ)器編程時(shí),該引腳加上+12v 的編程允許電源 vpp,當(dāng)然這必須是該器件是使用 12v 編程電壓 vppxtal1:振蕩器
19、反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。xtal2:振蕩器反相放大器的輸出端l 2.2 ds18b20介紹ds18b20是美國(guó)dallas半導(dǎo)體公司繼ds1822之后最新推出的一種數(shù)字化單總線器件,屬于新一代的適配微處理器的改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9-12位數(shù)字值讀書方式??梢苑謩e在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從ds18b20讀出的信息或?qū)懭雂s18b20的信息僅需要一根口線讀寫,溫度變換功率拉源于數(shù)據(jù)總線,總線本身也可以向所掛接的ds18b20供電,而無(wú)需額外的電源。因而使用ds18b
20、20可使系統(tǒng)結(jié)構(gòu)更趨向于簡(jiǎn)單,可靠性更高。ds18b20 支持“一線總線”接口,測(cè)量溫度范圍為 -55c+125c ,在-10+85c 范圍內(nèi),精度為0.5c 。ds1822 的精度較差為 2c現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,與前一代產(chǎn)品不同,新的產(chǎn)品支持 3v5.5v 的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。 ds18b20可以程序設(shè)定912位的分辨率,精度為0.5c??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在eeprom 中,掉電后依然保存。ds18b20 的性
21、能是新一代產(chǎn)品中最好的!性能價(jià)格比也非常出色! ds1822 與 ds18b20 軟件兼容,是ds18b20 的簡(jiǎn)化版本。省略了存儲(chǔ)用戶定義報(bào)警溫度、分辨率參數(shù)的eeprom,精度降低為2c,適用于對(duì)性能要求不高,成本控制嚴(yán)格的應(yīng)用,是經(jīng)濟(jì)型產(chǎn)品。 繼“一線總線”的早期產(chǎn)品后,ds18b20開(kāi)辟了溫度傳感器技術(shù)的新概念。ds18b20使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng)。 l 2.2.1 ds18b20的內(nèi)部結(jié)構(gòu) ds18b20 內(nèi)部結(jié)構(gòu)主要由四部分組成:64 位光刻rom、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl、配置寄存器。ds18b20 的管腳排列
22、如下: dq 為數(shù)字信號(hào)輸入/輸出端;gnd 為電源地;vdd 為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 l 2.2.2 ds18b20溫度傳感器的存儲(chǔ)器 ds18b20 溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存ram 和一個(gè)非易失性的可電擦除的e2ram,后者存放高溫度和低溫度觸發(fā)器th、tl和結(jié)構(gòu)寄存器。 暫存存儲(chǔ)器包含了8 個(gè)連續(xù)字節(jié),前兩個(gè)字節(jié)是測(cè)得的溫度信息,第一個(gè)字節(jié)的內(nèi)容是溫度的低八位,第二個(gè)字節(jié)是溫度的高八位。第三個(gè)和第四個(gè)字節(jié)是th、tl 的易失性拷貝,第五個(gè)字節(jié)是結(jié)構(gòu)寄存器的 易失性拷貝,這三個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新。第六、七、八個(gè)字節(jié)用于內(nèi)部計(jì)算。第九
23、個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。 該字節(jié)各位的意義如下: tm r1 r0 1 1 1 1 1 低五位一直都是1 ,tm 是測(cè)試模式位,用于設(shè)置ds18b20 在工作模式 還是在測(cè)試模式。在ds18b20 出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。 r1 和r0用來(lái)設(shè)置分辨率,如下表所示:(ds18b20 出廠時(shí)被設(shè)置為12 位) 根據(jù)ds18b20的通訊協(xié)議,主機(jī)控制ds18b20 完成溫度轉(zhuǎn)換必須經(jīng) 過(guò)三個(gè)步驟:每一次讀寫之前都要對(duì)ds18b20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條rom 指令,最后發(fā)送ram 指令,這樣才能對(duì)ds18b20 進(jìn)行預(yù)定的 操作。復(fù)位要求主cpu 將數(shù)據(jù)線下拉500 微秒,然后釋放
24、,ds18b20 收到信號(hào)后等待1660 微秒左右,后發(fā)出60240 微秒的存在低脈沖,主cpu 收到此信號(hào)表示復(fù)位成功。l 2.3 lcd顯示器在日常生活中,我們對(duì)液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過(guò)器件,如在計(jì)算器、萬(wàn)用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號(hào)和圖形。在單片機(jī)的人機(jī)交流界面中,一般的輸出方式有以下幾種:發(fā)光管、led數(shù)碼管、液晶顯示器。發(fā)光管和led數(shù)碼管比較常用,軟硬件都比較簡(jiǎn)單,在此不作介紹,本節(jié)重點(diǎn)介紹1602字符型液晶顯示器。1602 字符型lcd模塊的應(yīng)用非常廣泛,而各種液晶廠家均有提供幾乎都是同樣規(guī)格的 1602
25、模塊或兼容模塊,盡管各廠家的對(duì)其各自的產(chǎn)品命名不盡相同;1602 字符型 lcd模塊最初采用的 lcd控制器采用的是 hd44780,在各廠家生產(chǎn)的 1602 模塊當(dāng)中,基本上也都采用了與之兼容的控制 ic,所以從特性上基本上是一樣的;當(dāng)然,很多廠商提供了不同的字符顏色、背光色之類的顯示模塊。l 2.3.1 單色液晶顯示器的原理 lcd技術(shù)是把液晶灌入兩個(gè)列有細(xì)槽的平面之間。這兩個(gè)平面上的槽互相垂直(相交成90度)。也就是說(shuō),若一個(gè)平面上的分子南北向排列,則另一平面上的分子?xùn)|西向排列,而位于兩個(gè)平面之間的分子被強(qiáng)迫進(jìn)入一種90度扭轉(zhuǎn)的狀態(tài)。由于光線順著分子的排列方向傳播,所以光線經(jīng)過(guò)液晶時(shí)也被
26、扭轉(zhuǎn)90度。但當(dāng)液晶上加一個(gè)電壓時(shí),分子便會(huì)重新垂直排列,使光線能直射出去,而不發(fā)生任何扭轉(zhuǎn)。 lcd是依賴極化濾光器(片)和光線本身。自然光線是朝四面八方隨機(jī)發(fā)散的。極化濾光器實(shí)際是一系列越來(lái)越細(xì)的平行線。這些線形成一張網(wǎng),阻斷不與這些線平行的所有光線。極化濾光器的線正好與第一個(gè)垂直,所以能完全阻斷那些已經(jīng)極化的光線。只有兩個(gè)濾光器的線完全平行,或者光線本身已扭轉(zhuǎn)到與第二個(gè)極化濾光器相匹配,光線才得以穿透。 lcd由這樣兩個(gè)相互垂直的極化濾光器構(gòu)成,所以在正常情況下應(yīng)該阻斷所有試圖穿透的光線。但是,由于兩個(gè)濾光器之間充滿了扭曲液晶,所以在光線穿出第一個(gè)濾光器后,會(huì)被液晶分子扭轉(zhuǎn)90度,最后從
27、第二個(gè)濾光器中穿出。另一方面,若為液晶加一個(gè)電壓,分子又會(huì)重新排列并完全平行,使光線不再扭轉(zhuǎn),所以正好被第二個(gè)濾光器擋住??傊与妼⒐饩€阻斷,不加電則使光線射出。 然而,可以改變lcd中的液晶排列,使光線在加電時(shí)射出,而不加電時(shí)被阻斷。但由于計(jì)算機(jī)屏幕幾乎總是亮著的,所以只有“加電將光線阻斷”的方案才能達(dá)到最省電的目的。 從液晶顯示器的結(jié)構(gòu)來(lái)看,采用的lcd顯示屏都是由不同部分組成的分層結(jié)構(gòu)。lcd由兩塊玻璃板構(gòu)成,厚約1mm,其間由包含有液晶(lc)材料的5m均勻間隔隔開(kāi)。因?yàn)橐壕Р牧媳旧聿⒉话l(fā)光,所以在顯示屏兩邊都設(shè)有作為光源的燈管,而在液晶顯示屏背面有一塊背光板(或稱勻光板)和反光膜,
28、背光板是由熒光物質(zhì)組成的可以發(fā)射光線,其作用主要是提供均勻的背景光源。背光板發(fā)出的光線在穿過(guò)第一層偏振過(guò)濾層之后進(jìn)入包含成千上萬(wàn)水晶液滴的液晶層。液晶層中的水晶液滴都被包含在細(xì)小的單元格結(jié)構(gòu)中,一個(gè)或多個(gè)單元格構(gòu)成屏幕上的一個(gè)像素。在玻璃板與液晶材料之間是透明的電極,電極分為行和列,在行與列的交叉點(diǎn)上,通過(guò)改變電壓而改變液晶的旋光狀態(tài),液晶材料的作用類似于一個(gè)個(gè)小的光閥。在液晶材料周邊是控制電路部分和驅(qū)動(dòng)電路部分。當(dāng)lcd中的電極產(chǎn)生電場(chǎng)時(shí),液晶分子就會(huì)產(chǎn)生扭曲,從而將穿越其中的光線進(jìn)行有規(guī)則的折射,然后經(jīng)過(guò)第二層過(guò)濾層的過(guò)濾在屏幕上顯示出來(lái)。l 2.3.2 1602lcd的引腳功能1602l
29、cd采用標(biāo)準(zhǔn)14腳或者16腳接口。vl位液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高。若對(duì)比度過(guò)高會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一只10k電阻來(lái)調(diào)整對(duì)比度。rs為寄存器選擇端,rs為高電平時(shí)選擇數(shù)據(jù)寄存器,為低電平時(shí)選擇指令寄存器。r/w為讀寫信號(hào)線,為高電平時(shí)進(jìn)行讀操作,為低電平時(shí)為寫操作。當(dāng)rs和r/w同為低電平時(shí)可以寫入指令或者顯示地址;當(dāng)rs為低電平、r/w為高電平時(shí)可以讀忙信號(hào);當(dāng)rs為高電平可以寫入數(shù)據(jù)。e為使能端,當(dāng)e端有高電平跳變低電平時(shí),液晶模塊執(zhí)行命令。d0d7為8為雙向數(shù)據(jù)線。l 2.4“看門狗”電路隨著近代超大規(guī)模集成電路的出現(xiàn), 微處理技術(shù)及外圍芯片
30、有了飛速的發(fā)展。8051系列單片機(jī),得到越來(lái)越多研制微機(jī)工控系統(tǒng)的科技人員和開(kāi)發(fā)人員的親睞, 但同時(shí)也帶來(lái)了單片機(jī)芯片的抗干擾問(wèn)題:許多應(yīng)用系統(tǒng)在進(jìn)行仿真調(diào)試和實(shí)驗(yàn)室內(nèi)的聯(lián)機(jī)試運(yùn)行時(shí)都是成功的,然而,一旦進(jìn)入現(xiàn)場(chǎng)使用,系統(tǒng)則會(huì)產(chǎn)生難以預(yù)料的干擾,可能導(dǎo)致一些智能型儀器儀表單片機(jī)工業(yè)控制系統(tǒng)發(fā)生“死機(jī)”。所以我們就需要一直“看門狗”。l 2.4.1“看門狗”工作原理在程序運(yùn)行時(shí),看門狗需要程序每隔一段時(shí)間給它個(gè)信號(hào),用以清空它的計(jì)數(shù)器,如果沒(méi)有這個(gè)信號(hào),計(jì)數(shù)器溢出,則會(huì)給處理器一個(gè)復(fù)位信號(hào),使處理器強(qiáng)制復(fù)位,這樣可以避免死機(jī)。以 max705監(jiān)控電路來(lái)說(shuō)明“看門狗”硬件電路的工作過(guò)程。我們知道,
31、max705是一種性能優(yōu)良的低功耗cmos監(jiān)控電路芯片,其內(nèi)部電路由上電復(fù)位、可重觸發(fā)“看門狗”定時(shí)器及電壓比較器等組成。max705只要在1.6 s時(shí)間內(nèi)檢測(cè)到wdi引腳有高低電平跳變信號(hào),則“看門狗”定時(shí)器清零并重新開(kāi)始計(jì)時(shí);若超出 1.6 s 后,wdi引腳仍無(wú)高低電平跳變信號(hào),則“看門狗”定時(shí)器溢出,wdo引腳輸出低電平,進(jìn)而觸發(fā) mr手動(dòng)復(fù)位引腳,使mac705復(fù)位,從而使“看門狗”定時(shí)器清零并重新開(kāi)始計(jì)時(shí),wdo 引腳輸出高電平,max705的rst復(fù)位輸出引腳輸出大約200 ms寬度的低電平脈沖,使單片機(jī)控制系統(tǒng)可靠復(fù)位,重新投入正常運(yùn)行。max705/706/813l是一組cm
32、os監(jiān)控電路,能夠監(jiān)控電源電壓、電池故障和微處理器(mpu或mp)或微控制器(mcu或mc)的工作狀態(tài)。將常用的多項(xiàng)功能集成到一片8腳封裝的小芯片內(nèi),與采用分立元件或單一功能芯片組合的電路相比,大大減小了系統(tǒng)電路的復(fù)雜性和元器件的數(shù)量,顯著提高了系統(tǒng)可靠性和精確度。reset/reset操作復(fù)位信號(hào)用于啟動(dòng)或者重新啟動(dòng)mpu/mcu,令其進(jìn)入或者返回到預(yù)知的循環(huán)程序并順序執(zhí)行。一旦mpu/mcu處于未知狀態(tài),比如程序“跑飛”或進(jìn)入死循環(huán),就需要將系統(tǒng)復(fù)位。對(duì)于max705和max706而言,在上電期間只要vcc大于1.0v,就能保證輸出電壓不高于0.4v的低電平。在vcc上升期間reset維持
33、低電平直到電源電壓升至復(fù)位門限(4.65v或4.40v)以上。在超過(guò)此門限后,內(nèi)部定時(shí)器大約再維持200ms后釋放reset,使其返回高電平。無(wú)論何時(shí)只要電源電壓降低到復(fù)位門限以下(即電源跌落),reset引腳就會(huì)變低。如果在已經(jīng)開(kāi)始的復(fù)位脈沖期間出現(xiàn)電源跌落,復(fù)位脈沖至少再維持140ms。在掉電期間,一旦電源電壓vcc降到復(fù)位門限以下,只要vcc不比1.0v還低,就能使reset維持電壓不高于0.4v的低電平。max705和max706提供的復(fù)位信號(hào)為低電平reset,而max813l提供的復(fù)位信號(hào)為高電平reset,三者其它功能完全相同。有些單片機(jī),如intel的80c51系列,需要高電平
34、有效的復(fù)位信號(hào)。看門狗定時(shí)器max705/706/813l片內(nèi)看門狗定時(shí)器用于監(jiān)控mpu/mcu的活動(dòng)。如果在1.6s內(nèi)wdi端沒(méi)有收到來(lái)自mpu/mcu 的觸發(fā)信號(hào),并且wdi處于非高阻態(tài),則wdo輸出變低。只要復(fù)位信號(hào)有效或wdi輸入高阻,則看門狗定時(shí)器功能就被禁止,且保持清零和不計(jì)時(shí)狀態(tài)。復(fù)位信號(hào)的產(chǎn)生會(huì)被禁止定時(shí)器,可一旦復(fù)位信號(hào)撤消并且wdi輸入端檢測(cè)到短至50ns的低電平或高電平跳變,定時(shí)器將開(kāi)始1.6s的計(jì)時(shí)。即wdi端的跳變會(huì)清零定時(shí)器并啟動(dòng)一次新的計(jì)時(shí)周期。一旦電源電壓vcc降至復(fù)位門限以下,wdo端也將變低并保持低電平。只要vcc升至門限以上,wdo就會(huì)立刻變高,不存在延時(shí)
35、。典型的應(yīng)用中是將wdo端連接到mpu/mcu的非屏蔽中斷(nmi)端。當(dāng)vcc下降到低于復(fù)位門限時(shí),即使看門狗定時(shí)器還沒(méi)有完成計(jì)時(shí)周期,端也將輸出低電平。通常這將觸發(fā)一次非屏蔽中斷,但是reset如果同時(shí)變低,則復(fù)位功能優(yōu)先權(quán)高于非屏蔽中斷。如果將wdi腳懸空,wdo腳可以被用作電源跌落檢測(cè)器的一個(gè)輸出端。由于懸空的wdi將禁止內(nèi)部定時(shí)器工作,所以只有當(dāng)vcc下降到低于復(fù)位門限時(shí),wdo腳才會(huì)變低,從而起到電源跌落檢測(cè)的作用。人工復(fù)位低電平有效的手動(dòng)復(fù)位輸入端(mr)可被片內(nèi)250ma的上拉電流源拉到高電平,并可以被外接cmos/ttl邏輯電路或一端接地的按鈕開(kāi)關(guān)拉成低電平。不需要采用外部去
36、抖動(dòng)電路,理由是最小為140ms的復(fù)位時(shí)間足以消除機(jī)械開(kāi)關(guān)的抖動(dòng)。簡(jiǎn)單地將mr端連接到wdo端,就可以使看門狗定時(shí)器超時(shí)產(chǎn)生復(fù)位脈沖。當(dāng)需要高電平有效的復(fù)位信號(hào)時(shí),應(yīng)該選用max813l。電源故障比較器max705/max706/max813l片內(nèi)帶有一個(gè)輔助比較器,它具有獨(dú)立的同相輸入端(pfi)和輸出端(pfo),其反相輸入端內(nèi)部連接一個(gè)1.25v的參考電壓源。為了建立一個(gè)電源故障預(yù)警電路,可以在pfi腳上連接一個(gè)電阻分壓支路,該支路連接的監(jiān)視點(diǎn)通常在穩(wěn)壓電源集成電路之前。通過(guò)調(diào)節(jié)電阻值,合理地選擇分壓比,以便于使穩(wěn)壓器+5v 輸出端電壓下降之前,pfi端的電壓剛好下降到低于1.25v。使
37、用為mpu/mcu提供中斷信號(hào),以便使其能夠?qū)磳⒌絹?lái)的電源掉電作好充分地準(zhǔn)備第三章 軟件開(kāi)發(fā)環(huán)境介紹集成開(kāi)發(fā)環(huán)境 keilkeil ide vision2集成開(kāi)發(fā)環(huán)境是keil software inc/keil elektronik gmb開(kāi)發(fā)的基于80c51內(nèi)核的微處理器軟件開(kāi)發(fā)平臺(tái)。它內(nèi)嵌多種復(fù)合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開(kāi)發(fā)工具,可以完成從工程建立和管理,編譯連接目標(biāo)代碼的生成,軟件仿真,硬件仿真等完整的開(kāi)發(fā)流程。尤其他的c編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了很高的水平,而且可以附加靈活的控制選項(xiàng),在開(kāi)發(fā)大型項(xiàng)目時(shí)非常理想。keil ide vision2集成開(kāi)發(fā)環(huán)境主要是由以下部分組成:
38、1. u vision2 idevision2 ide包括:一個(gè)工程管理器,一個(gè)功能豐富并有交互式錯(cuò)誤提示的編程器選項(xiàng)設(shè)置生成工具,一級(jí)在線幫助。使用vision2創(chuàng)建源文件并組成應(yīng)用工程加以管理。vision2可以自動(dòng)完成編譯匯編鏈接程序的操作;2. c51編譯器和a51匯編器由vision2 ide創(chuàng)建的源文件可以被c51編譯器或a51匯編處理生成可重定位的object文件。keil c51編譯器遵循ansi c語(yǔ)言標(biāo)準(zhǔn)支持c語(yǔ)言的所有標(biāo)準(zhǔn)特性,另外還增加了幾個(gè)可以直接支持80c51結(jié)構(gòu)的特性。keil a51宏匯編器支持80c51及其派生系列的所有指令集:3. lib51庫(kù)管理器lib5
39、1 庫(kù)管理器可以從由匯編和編譯器創(chuàng)建的目標(biāo)文件建立目標(biāo)庫(kù),這些庫(kù)是按規(guī)定格式排列的目標(biāo)模塊,可在以后被鏈接器所使用當(dāng)鏈接器處理一個(gè)庫(kù)時(shí)僅僅使用了庫(kù)中程序使用了的目標(biāo)模塊而不是全部加以引用;4. bl51鏈接器定位器bl51鏈接器使用從庫(kù)中提取出來(lái)的目標(biāo)模塊和由編譯器匯編器生成的目標(biāo)模塊創(chuàng)建一個(gè)絕對(duì)地址目標(biāo)模塊,絕對(duì)地址目標(biāo)文件或模塊包括不可重定位的代碼和數(shù)據(jù)所有的代碼和數(shù)據(jù)都被固定在具體的存儲(chǔ)器單元中。絕對(duì)地址目標(biāo)文件可以用于:編程eprom或其他存儲(chǔ)器設(shè)備;由vision2 ide調(diào)試器對(duì)目標(biāo)進(jìn)行調(diào)試和模擬;使用在線仿真器進(jìn)行程序測(cè)試。5. vision2 軟件調(diào)試器vision2軟件調(diào)試器
40、能十分理想地進(jìn)行快速可靠地程序調(diào)試。調(diào)試器包括一個(gè)高速模擬器,可以使用它模擬整個(gè)80c52系統(tǒng)包括片上外圍器件和外部硬件;6. vision2硬件調(diào)試器vision2 調(diào)試器向您提供了幾種在實(shí)際目標(biāo)硬件上測(cè)試程序的方法。安裝mon51目標(biāo)監(jiān)控器到目標(biāo)系統(tǒng)并通過(guò)monitor-51 接口下載程序,使用高級(jí)gdi接口將vision2調(diào)試器同tks系列仿真器的硬件系統(tǒng)相連接,通過(guò)vision2 的人機(jī)交互環(huán)境指揮連接的硬件完成仿真操作。vision2 操作界面 vision2 調(diào)試界面7. 利用keil開(kāi)發(fā)系統(tǒng)軟件流程利用keil開(kāi)發(fā)和調(diào)試系統(tǒng)軟件流程大致如下:1. 啟動(dòng)vision2,進(jìn)入keil
41、軟件的集成開(kāi)發(fā)環(huán)境;2. 利用keil內(nèi)置的文本編輯器進(jìn)行程序源文件的編輯,因?yàn)閗eil集成的文本編輯器對(duì)中文支持不是很好,可以選擇其他的編輯器,vision2能夠自動(dòng)識(shí)別外部改變了的源文件;3. 建立工程指定針對(duì)那種單片機(jī)進(jìn)行開(kāi)發(fā),指定對(duì)源程序的編譯,鏈接參數(shù),指定調(diào)試方式,然后對(duì)工程進(jìn)行相關(guān)設(shè)置;4. 設(shè)置好的工程后即可進(jìn)行編譯,鏈接。連接仿真器對(duì)軟件進(jìn)行調(diào)試。也可以生成下載到單片機(jī)存儲(chǔ)器上的hex文件。第四章 系統(tǒng)設(shè)計(jì)軸溫報(bào)警器是以單片機(jī)at89c52為核心的系統(tǒng)進(jìn)行設(shè)計(jì)的。主要分為測(cè)量輸入模塊,運(yùn)算處理模塊,顯示模塊,鍵盤設(shè)置模塊和報(bào)警模塊。其系統(tǒng)框圖如下:測(cè)量輸入模塊鍵盤設(shè)置模塊單片
42、機(jī)運(yùn)算處理模塊顯示模塊報(bào)警模塊系統(tǒng)框圖軟件部分設(shè)計(jì)用c語(yǔ)言進(jìn)行單片機(jī)程序設(shè)計(jì),采用結(jié)構(gòu)化程序設(shè)計(jì)思想:在總體設(shè)計(jì)中采用“自頂而下”(top-down)的方法,在程序設(shè)計(jì)中采用模塊化編程。把整體任務(wù)分成一個(gè)個(gè)子任務(wù),子任務(wù)再分子任務(wù),逐層細(xì)分,每個(gè)子程序都完成其規(guī)定的功能,明確輸入輸出。將這些程序連接起來(lái)就構(gòu)成整體流程圖。模塊化編程,每個(gè)模塊結(jié)構(gòu)完整,相互獨(dú)立的程序段。如液晶模塊的寫控制指令、寫顯示數(shù)據(jù)、清屏;數(shù)據(jù)處理中的工程量轉(zhuǎn)換,均值濾波等。這些程序可以任意調(diào)用、修改,使整個(gè)程序結(jié)構(gòu)清晰,組合靈活,維護(hù)調(diào)試方便。主程序流程圖如圖所示,其功能是完成系統(tǒng)的初始化,循環(huán)不斷地查詢個(gè)按鍵值,將顯示緩
43、沖區(qū)的內(nèi)容送到液晶顯示器,以維持對(duì)按鍵的及時(shí)響應(yīng)和數(shù)據(jù)顯示,并即時(shí)對(duì)軸溫信號(hào)進(jìn)行比較判斷,當(dāng)軸溫超過(guò)指定溫度是啟動(dòng)警報(bào)程序。開(kāi)始系統(tǒng)初始化開(kāi)中板鍵1是否按下?鍵2是否按下?鍵3是否按下?軸溫顯示程序軸溫指定溫度外溫采集處理平動(dòng)切換采集軸溫跟蹤比較程序報(bào)警程序nnnnyyyy主程序流程圖4.1溫度部分軟件設(shè)計(jì)開(kāi)始初始化啟動(dòng)ds18b20讀溫度計(jì)算溫度顯示器顯示溫度部分系統(tǒng)程序流程圖dsl8b20的一線工作協(xié)議流程是:初始化一rom操作指令存儲(chǔ)器操作指令數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序。故主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫之前都要對(duì)dsl8b20進(jìn)行復(fù)
44、位。復(fù)位成功后發(fā)送一條rom指令,最后發(fā)送ram指令,這樣才能對(duì)dsl8b20進(jìn)行預(yù)定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放dsl8b20收到信號(hào)后等待16-60微秒左右。后發(fā)出60-240微秒的存在低脈沖,主cpu收到此信號(hào)表示復(fù)位成功。初始化函數(shù)readonechar(void)unsigned char i=0;unsigned char dat=0;for(i=8;i0;i-)dq=0;/給脈沖信號(hào)dat=;dq=l;/給脈沖信號(hào) if(dq) dat=0x80;delay(4); return(dat); /寫一個(gè)字節(jié)函數(shù) writeonechar(unsigned
45、 char dat)unsignedchar i=0;for(i=8;i0;i-)dq=0;dq=dat&0x01;delay(5);dq=1;dat=1;4.2 顯示部分程序設(shè)計(jì)開(kāi)始lcd初始化延時(shí)ds18b20設(shè)第一行顯示位置顯示第一行內(nèi)容設(shè)第二行顯示位置顯示第二行內(nèi)容顯示流程圖#ifndef _lcd1602_h_#define _lcd1602_h_#include#define uchar unsigned char#define uint unsigned int#define lcd_data p1sbit lcd_en=p35;sbit lcd_rs=p36;sbit lcd_
46、rw=p37;#endifvoid lcd_init(void);/初始化void lcd_cmd(uchar cmd);/寫入控制命令void lcd_string(char *s);/寫入要顯示的字符串void lcd_char(char str);/寫入要顯示的字符void setxy(char x,char y);/設(shè)定顯示位置,行x=1/2,列y=116的任意整數(shù)void wait_until_ready(void);/檢測(cè)忙標(biāo)志,忙則等待void delay(void);#includelcd1602.hsbit bflag=acc7;void lcd_init(void)lcd_
47、cmd(0x38);/8位數(shù)據(jù),2行顯示lcd_cmd(0x08);/顯示關(guān)閉lcd_cmd(0x01);/清屏 lcd_cmd(0x06);/寫入數(shù)據(jù)后光標(biāo)右移lcd_cmd(0x0c);/顯示開(kāi),不顯示光標(biāo)void lcd_cmd(uchar cmd)/*寫入控制命令lcd_rs=0;lcd_rw=0;lcd_data=cmd;en_toggle(); wait_until_ready();void lcd_char(char str)/寫入要顯示的字符 lcd_rs=1; lcd_rw=0; lcd_data=str;en_toggle();wait_until_ready();void
48、 setxy(char x,char y) /*設(shè)定顯示位置,行x=1/2,列y=116的任意整數(shù)*/char temp;if(x=1)temp=0x80+y-1;lcd_cmd(temp);elsetemp=0xc0+y-1;lcd_cmd(temp);void lcd_string(char *s)for(;*s!=0;s+)lcd_char(*s);void wait_until_ready(void) /檢測(cè)忙標(biāo)志,忙則等待lcd_rs=0;lcd_rw=1;lcd_data=0x0ff;lcd_en=1;delay();doacc=lcd_data;while(bflag=1);lc
49、d_en=0;4.3 報(bào)警部分程序設(shè)計(jì)本設(shè)計(jì)中,報(bào)警電路選用蜂鳴器+發(fā)光二極管實(shí)現(xiàn)聲光報(bào)警,他們性能穩(wěn)定,工作可靠及時(shí)?,F(xiàn)在應(yīng)用較為廣泛。部分程序如下:設(shè)定當(dāng)溫度大于45或者小于5時(shí),開(kāi)始報(bào)警。unsigned chari=0;unsigned int m,n;while(1)i=readtemperature();/讀溫度if(i0&i=45&m=5)%(m=5)/判斷溫度的取值范圍,如果大于45或小于5度,則蜂鳴器叫,發(fā)光二極管閃爍inta,b;q1=1;/蜂鳴器叫for(a=0;a1000;a+)/發(fā)光二極管閃爍for(b=0;b1000;b+)q2=1;for(a=0;a1000;a+)for(b=0;b1000;b+)q2=0;4.4 本章小結(jié)用c語(yǔ)言進(jìn)行單片機(jī)程序設(shè)計(jì),采用結(jié)構(gòu)化程序設(shè)計(jì)思想:在總體設(shè)計(jì)中采用“自頂而下”(top-down)的方法,在程序設(shè)計(jì)中采用模塊化編程。把整體任務(wù)分成一個(gè)個(gè)子任務(wù),子任務(wù)再分子任務(wù),逐層細(xì)分,每個(gè)子程序都完成其規(guī)定的功能,明確輸入輸出。將這些程序連接起來(lái)就構(gòu)成整體流程圖。模塊化編程,每個(gè)模塊結(jié)構(gòu)完整,相互獨(dú)立的程序段。如液晶模塊的寫控制指令、寫顯示數(shù)據(jù)、清屏;數(shù)據(jù)處理中
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 園林綠化服務(wù)合同樣本
- 工礦企業(yè)采購(gòu)合同范本
- 批量物料采購(gòu)合同格式
- 招標(biāo)文件中的摩托車選購(gòu)指南
- 焊接作業(yè)人員安全保證書
- 法律服務(wù)建議書撰寫要點(diǎn)
- 藥品物流跟蹤與監(jiān)控協(xié)議
- 寫出明了的保證書
- 換熱機(jī)組招標(biāo)項(xiàng)目招標(biāo)報(bào)名條件
- 標(biāo)準(zhǔn)建筑工程項(xiàng)目勞務(wù)
- 《大學(xué)物理學(xué)》精美課件(全)
- 規(guī)范權(quán)力運(yùn)行方面存在問(wèn)題及整改措施范文(五篇)
- 減壓孔板計(jì)算
- 博物館學(xué)概論課件:博物館與觀眾
- 著色滲透探傷檢測(cè)報(bào)告
- 反恐培訓(xùn)內(nèi)容
- 配套課件-計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)實(shí)踐教程-王秋華
- 農(nóng)產(chǎn)品質(zhì)量安全檢測(cè)機(jī)構(gòu)考核評(píng)審細(xì)則
- 裝修申請(qǐng)審批表
- 建筑施工安全檢查標(biāo)準(zhǔn)jgj59-2023
- GB/T 3098.1-2010緊固件機(jī)械性能螺栓、螺釘和螺柱
評(píng)論
0/150
提交評(píng)論