全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)_第1頁
全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)_第2頁
全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)_第3頁
全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)_第4頁
全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)xxx公司全自動(dòng)電熱水壺的設(shè)計(jì)(包含原理圖和程序)文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度單片機(jī)控制電熱水壺溫度的設(shè)計(jì)中文摘要隨著微機(jī)測(cè)量和控制技術(shù)的迅速發(fā)展與廣泛應(yīng)用,以單片機(jī)為核心的溫度采集與控制系統(tǒng)的研發(fā)與應(yīng)用在很大程度上提高了生產(chǎn)生活中對(duì)溫度的控制水平。本設(shè)計(jì)論述了一種以STC89C52單片機(jī)為主控制單元,以DS18B20為溫度傳感器的溫度控制系統(tǒng)。該控制系統(tǒng)可以實(shí)時(shí)存儲(chǔ)相關(guān)的溫度數(shù)據(jù)并記錄當(dāng)前的時(shí)間。系統(tǒng)設(shè)計(jì)了相關(guān)的硬件電路和相關(guān)應(yīng)用程序。硬件電路主要包括STC89C52單片機(jī)最小系統(tǒng),測(cè)溫電路、實(shí)時(shí)時(shí)鐘電路、LCD液晶顯示電路以及通訊模塊電路等。系統(tǒng)程序主要包括主程序,讀出溫度子程序,計(jì)算溫度子程序、按鍵處理程序、LCD顯示程序以及數(shù)據(jù)存儲(chǔ)程序[關(guān)鍵詞]STC89C52單片機(jī);DS18B20;顯示電路目錄一、引言 4(一)課題研究的背景 4(二)課題研究的目的和意義 5二、硬件電路的設(shè)計(jì) 5(一)系統(tǒng)設(shè)計(jì)的框架 5(二)單片機(jī)最小系統(tǒng)電路 6(三)單片機(jī)的選型 6單片機(jī)簡(jiǎn)介 6單片機(jī)時(shí)序 7單片機(jī)引腳介紹 7(四)溫度傳感器電路 9(五)系統(tǒng)電源電路的設(shè)計(jì) 10(六)LCD顯示電路 11(七)串口通訊電路 12(八)按鍵接口電路 13(九)DS1302時(shí)鐘電路 13(十)存儲(chǔ)器接口電路 13三、系統(tǒng)軟件設(shè)計(jì) 14(一)計(jì)算溫度子程序 15(二)按鍵處理子程序 15(三)計(jì)算溫度子程序 16(四)顯示數(shù)據(jù)刷新子程序 17四、結(jié)束語 18參考文獻(xiàn) 19致謝 20附件1:系統(tǒng)原理圖 21附件2:系統(tǒng)相關(guān)程序 22一、DS18B20底層驅(qū)動(dòng)程序 22二、DS1302時(shí)鐘底層驅(qū)動(dòng)程序 27三、數(shù)據(jù)存儲(chǔ)底層驅(qū)動(dòng)程序 33一、引言(一)課題研究的背景工業(yè)控制是計(jì)算機(jī)的一個(gè)重要應(yīng)用領(lǐng)域,計(jì)算機(jī)控制系統(tǒng)正是為了適應(yīng)這一領(lǐng)域的需要而發(fā)展起來的一門專業(yè)技術(shù),它主要研究如何將計(jì)算機(jī)技術(shù)、通過信息技術(shù)和自動(dòng)控制理論應(yīng)用于工業(yè)生產(chǎn)過程,并設(shè)計(jì)出所需要的計(jì)算機(jī)控制系統(tǒng)。隨著微機(jī)測(cè)量和控制技術(shù)的迅速發(fā)展與廣泛應(yīng)用,以單片機(jī)為核心的溫度采集與控制系統(tǒng)的研發(fā)與應(yīng)用在很大程度上提高了生產(chǎn)生活中對(duì)溫度的控制水平。本設(shè)計(jì)就是基于單片機(jī)STC89C52溫度控制系統(tǒng)的設(shè)計(jì),通過本次課程實(shí)踐,我們更加的明確了單片機(jī)的廣泛用途和使用方法,以及其工作的原理。(二)課題研究的目的和意義隨著社會(huì)的發(fā)展,溫度的測(cè)量及控制變得越來越重要。本文采用單片機(jī)STC89C52設(shè)計(jì)了溫度實(shí)時(shí)測(cè)量及控制系統(tǒng)。單片機(jī)STC89C52能夠根據(jù)溫度傳感器DS18B20所采集的溫度在液晶屏上實(shí)時(shí)顯示,通過控制從而把溫度控制在設(shè)定的范圍之內(nèi)。所有溫度數(shù)據(jù)均通過液晶顯示器LCD顯示出來。系統(tǒng)可以根據(jù)時(shí)鐘存儲(chǔ)相關(guān)的數(shù)據(jù)。通過該課程的學(xué)習(xí)使我們對(duì)計(jì)算機(jī)控制系統(tǒng)有一個(gè)全面的了解、掌握常規(guī)控制算法的使用方法、掌握簡(jiǎn)單微型計(jì)算機(jī)應(yīng)用系統(tǒng)軟硬的設(shè)計(jì)方法,進(jìn)一步鍛煉同學(xué)們?cè)谖⑿陀?jì)算機(jī)應(yīng)用方面的實(shí)際工作能力。二、硬件電路的設(shè)計(jì)(一)系統(tǒng)設(shè)計(jì)的框架本課題設(shè)計(jì)的是一種以STC89C52單片機(jī)為主控制單元,以DS18B20為溫度傳感器的溫度控制系統(tǒng)。該控制系統(tǒng)可以實(shí)時(shí)存儲(chǔ)相關(guān)的溫度數(shù)據(jù)并記錄當(dāng)前的時(shí)間。其主要包括:電源模塊、溫度采集模塊、按鍵處理模塊、實(shí)時(shí)時(shí)鐘模塊、數(shù)據(jù)存儲(chǔ)模塊、LCD顯示模塊、通訊模塊以及單片機(jī)最小系統(tǒng)。圖1系統(tǒng)設(shè)計(jì)框架(二)單片機(jī)最小系統(tǒng)電路在課題設(shè)計(jì)的溫度控制系統(tǒng)設(shè)計(jì)中,控制核心是STC89C52單片機(jī),該單片機(jī)為51系列增強(qiáng)型8位單片機(jī),它有32個(gè)I/O口,片內(nèi)含4KFLASH工藝的程序存儲(chǔ)器,便于用電的方式瞬間擦除和改寫,而且價(jià)格便宜,其外部晶振為12MHz,一個(gè)指令周期為1μS。使用該單片機(jī)完全可以完成設(shè)計(jì)任務(wù),其最小系統(tǒng)主要包括:復(fù)位電路、震蕩電路以及存儲(chǔ)器選擇模式(EA腳的高低電平選擇),電路如下圖2所示:圖2單片機(jī)最小系統(tǒng)(三)單片機(jī)的選型本課題設(shè)計(jì)的溫度控制系統(tǒng)主控制芯片選型為STC89C52單片機(jī),其特點(diǎn)如下:89C單片機(jī)簡(jiǎn)介目前,51系列單片機(jī)在工業(yè)檢測(cè)領(lǐng)域中得到了廣泛的應(yīng)用,因此我們可以在許多單片機(jī)應(yīng)用領(lǐng)域中,配接各種類型的語音接口,構(gòu)成具有合成語音輸出能力的綜合應(yīng)用系統(tǒng),以增強(qiáng)人機(jī)對(duì)話的功能。STC89C52單片機(jī)是深圳宏晶科技有限公司生產(chǎn)的一種單片機(jī),在一小塊芯片上集成了一個(gè)微型計(jì)算機(jī)的各個(gè)組成部分。每一個(gè)單片機(jī)包括:一個(gè)8位的微型處理器CPU;一個(gè)512K的片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM;4K片內(nèi)程序存儲(chǔ)器;四個(gè)8位并行的I/O接口P0-P3,每個(gè)接口既可以輸入,也可以輸出;兩個(gè)定時(shí)器/記數(shù)器;五個(gè)中斷源的中斷控制系統(tǒng);一個(gè)全雙工UART的串行I/O口;片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率是12MHZ。以上各個(gè)部分通過內(nèi)部總線相連接。89C單片機(jī)時(shí)序STC89C52單片機(jī)的一個(gè)執(zhí)器周期由6個(gè)狀態(tài)(s1—s6)組成,每個(gè)狀態(tài)又持續(xù)2個(gè)震蕩周期,分為P1和P2兩個(gè)節(jié)拍。這樣,一個(gè)機(jī)器周期由12個(gè)振蕩周期組成。若采用12MHz的晶體振蕩器,則每個(gè)機(jī)器周期為1us,每個(gè)狀態(tài)周期為1/6us;在一數(shù)情況下,算術(shù)和邏輯操作發(fā)生在N期間,而內(nèi)部寄存器到寄存器的傳輸發(fā)生在P2期間。對(duì)于單周期指令,當(dāng)指令操作碼讀人指令寄存器時(shí),使從S1P2開始執(zhí)行指令。如果是雙字節(jié)指令,則在同一機(jī)器周期的s4讀人第二字節(jié)。若為單字節(jié)指令,則在51期間仍進(jìn)行讀,但所讀入的字節(jié)操作碼被忽略,且程序計(jì)數(shù)據(jù)也不加1。在加結(jié)束時(shí)完成指令操作。多數(shù)STC89C52指令周期為1—2個(gè)機(jī)器周期,只有乘法和除法指令需要兩個(gè)以上機(jī)器周期的指令,它們需4個(gè)機(jī)器周期。對(duì)于雙字節(jié)單機(jī)器指令,通常是在一個(gè)機(jī)器周期內(nèi)從程序存儲(chǔ)器中讀人兩個(gè)字節(jié),但Movx指令例外,Movx指令是訪問外部數(shù)據(jù)存儲(chǔ)器的單字節(jié)雙機(jī)器周期指令,在執(zhí)行Movx指令期間,外部數(shù)據(jù)存儲(chǔ)器被訪問且被選通時(shí)跳過兩次取指操作。89C單片機(jī)引腳介紹STC89C52單片機(jī)的40個(gè)引腳中有2個(gè)專用于主電源引腳,2個(gè)外接晶振的引腳,4個(gè)控制或與其它電源復(fù)用的引腳,以及32條輸入輸出I/O引腳。下面按引腳功能分為4個(gè)部分?jǐn)⑹鰝€(gè)引腳的功能。(1)電源引腳Vcc和VssVcc(40腳):接+5V電源正端;Vss(20腳):接+5V電源正端。(2)外接晶振引腳XTAL1和XTAL2XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳接地;對(duì)于CHOMS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。XTAL2(18腳):接外部晶體的另一端。在單片機(jī)內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。對(duì)于CHMOS芯片,該引腳懸空不接。(3)控制信號(hào)或與其它電源復(fù)用引腳控制信號(hào)或與其它電源復(fù)用引腳有RST/VPD、ALE/P、PSEN和EA/VPP等4種形式。(A).RST/VPD(9腳):RST即為RESET,VPD為備用電源,所以該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)復(fù)位到初始狀態(tài)。當(dāng)VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時(shí),該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。(B).ALE/P(30腳):當(dāng)訪問外部存儲(chǔ)器時(shí),ALE(允許地址鎖存信號(hào))以每機(jī)器周期兩次的信號(hào)輸出,用于鎖存出現(xiàn)在P0口的低(C).PSEN(29腳):片外程序存儲(chǔ)器讀選通輸出端,低電平有效。當(dāng)從外部程序存儲(chǔ)器讀取指令或常數(shù)期間,每個(gè)機(jī)器周期PESN兩次有效,以通過數(shù)據(jù)總線口讀回指令或常數(shù)。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器期間,PESN信號(hào)將不出現(xiàn)。(D).EA/Vpp(31腳):EA為訪問外部程序儲(chǔ)器控制信號(hào),低電平有效。當(dāng)EA端保持高電平時(shí),單片機(jī)訪問片內(nèi)程序存儲(chǔ)器4KB(MS—52子系列為8KB)。若超出該范圍時(shí),自動(dòng)轉(zhuǎn)去執(zhí)行外部程序存儲(chǔ)器的程序。當(dāng)EA端保持低電平時(shí),無論片內(nèi)有無程序存儲(chǔ)器,均只訪問外部程序存儲(chǔ)器。對(duì)于片內(nèi)含有EPROM的單片機(jī),在EPROM編程期間,該引腳用于接21V的編程電源Vpp。(4)輸入/輸出(I/O)引腳P0口、P1口、P2口及P3口(A).P0口(39腳~22腳):~統(tǒng)稱為P0口。當(dāng)不接外部存儲(chǔ)器與不擴(kuò)展I/O接口時(shí),它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展I/O口時(shí),P0口為地址/數(shù)據(jù)分時(shí)復(fù)用口。它分時(shí)提供8位雙向數(shù)據(jù)總線。對(duì)于片內(nèi)含有EPROM的單片機(jī),當(dāng)EPROM編程時(shí),從P0口輸入指令字節(jié),而當(dāng)檢驗(yàn)程序時(shí),則輸出指令字節(jié)。(B).P1口(1腳~8腳):~統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O接口使用。對(duì)于MCS—52子系列單片機(jī),和還有第2功能:口用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖輸入端T2;用作定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。對(duì)于EPROM編程和進(jìn)行程序校驗(yàn)時(shí),P0口接收輸入的低8位地址。(C).P2口(21腳~28腳):~統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O接口。當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展I/O接口且尋址范圍超過256個(gè)字節(jié)時(shí),P2口用于高8位地址總線送出高8位地址。對(duì)于EPROM編程和進(jìn)行程序校驗(yàn)時(shí),P2口接收輸入的8位地址。(D).P3口(10腳~17腳):~統(tǒng)稱為P3口。它為雙功能口,可以作為一般的準(zhǔn)雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨(dú)立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見下表表1單片機(jī)管腳含義引腳第2功能RXD(串行口輸入端0)TXD(串行口輸出端)INT0(部中斷0請(qǐng)求輸入端,低電平有效)INT1(中斷1請(qǐng)求輸入端,低電平有效)T0(時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖端)T1(時(shí)器/計(jì)數(shù)器1數(shù)脈沖端)WR(部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸出端,低電平有效)RD(部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效)綜上所述,MCS—51系列單片機(jī)的引腳作用可歸納為以下兩點(diǎn):1).單片機(jī)功能多,引腳數(shù)少,因而許多引腳具有第2功能;2).單片機(jī)對(duì)外呈3總線形式,由P2、P0口組成16位地址總線;由P0口分時(shí)復(fù)用作為數(shù)據(jù)總線。(四)溫度傳感器電路采用一線制數(shù)字溫度傳感器DS18B20來作為本課題的溫度傳感器。傳感器輸出信號(hào)進(jìn)的上拉電阻直接接到單片機(jī)的引腳上。DS18B20溫度傳感器是美國達(dá)拉斯(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲(chǔ)器等做在一個(gè)很小的集成電路芯片上。本設(shè)計(jì)中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過多方面比較和考慮后決定的,主要有以下幾方面的原因:(1)系統(tǒng)的特性:測(cè)溫范圍為-55℃~+125℃,測(cè)溫精度為士℃;溫度轉(zhuǎn)換精度9~12位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進(jìn)制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時(shí)間為750ms;可以(2)系統(tǒng)成本:由于計(jì)算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,新型大規(guī)模集成電路功能越來越強(qiáng)大,體積越來越小,而價(jià)格也越來越低。一支DS18B20的體積與普通三極管相差無幾,價(jià)格只有十元人民幣左右。(3)系統(tǒng)復(fù)雜度:由于DS18B20是單總線器件,微處理器與其接口時(shí)僅需占用1個(gè)I/O端口且一條總線上可以掛接幾十個(gè)DS18B20,測(cè)溫時(shí)無需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少工程的施工量。(4)系統(tǒng)的調(diào)試和維護(hù):由于引線的減少,使得系統(tǒng)接口大為簡(jiǎn)化,給系統(tǒng)的調(diào)試帶來方便。同時(shí)因?yàn)镈S18B20是全數(shù)字元器件,故障率很低,抗干擾性強(qiáng),因此,減少了系統(tǒng)的日常維護(hù)工作。DS18B20溫度傳感器只有三根外引線:?jiǎn)尉€數(shù)據(jù)傳輸總線端口DQ,外供電源線VDD,共用地線GND。DS18B20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時(shí)VDD接地,它是通過內(nèi)部電容在空閑時(shí)從數(shù)據(jù)線獲取能量,來完成溫度轉(zhuǎn)換,相應(yīng)的完成溫度轉(zhuǎn)換的時(shí)間較長。這種情況下,用單片機(jī)的一個(gè)I/O口來完成對(duì)DS18B20總線的上拉。另一種是外部供電方式(VDD接+5V),相應(yīng)的完成溫度測(cè)量的時(shí)間較短。在本設(shè)計(jì)中采用外部供電方式實(shí)現(xiàn)DS18B20傳感器與單片機(jī)的連接,其接口電路如圖4所示。圖4溫度傳感器接口(五)系統(tǒng)電源電路的設(shè)計(jì)本系統(tǒng)采用電源穩(wěn)壓芯片是LM2596,該開關(guān)電壓調(diào)節(jié)器是降壓型電源管理單片集成電路,能夠輸出3A的驅(qū)動(dòng)電流,輸入電壓是+5v,輸入電壓是+24v,同時(shí)具有很好的線性和負(fù)載調(diào)節(jié)特性。該器件內(nèi)部集成頻率補(bǔ)償和固定頻率發(fā)生器,開關(guān)頻率為150KHz,與低頻開關(guān)調(diào)節(jié)器相比較,可以使用更小規(guī)格的濾波元件。該器件還有其他一些特點(diǎn):在特定的輸入電壓和輸出負(fù)載的條件下,輸出電壓的誤差可以保證在±4%的范圍內(nèi),振蕩頻率誤差在±15%的范圍內(nèi);可以用僅80μA的待機(jī)電流,實(shí)現(xiàn)外部斷電;具有自我保護(hù)電路(一個(gè)兩級(jí)降頻限流保護(hù)和一個(gè)在異常情況下斷電的過溫完全保護(hù)電路)在該溫度控制系統(tǒng)中,其電源電路設(shè)計(jì)如下圖10所示。圖5系統(tǒng)電源模塊(六)LCD顯示電路本課題設(shè)計(jì)的溫度控制系統(tǒng)是采用液晶屏128*64作為顯示模塊,其接口原理圖如下圖6所示:圖6液晶顯示接口電路(七)串口通訊電路本課題設(shè)計(jì)的通訊采用的是常見的串口通訊,協(xié)議轉(zhuǎn)換芯片是采用MAX232A,其接口原理圖如下圖7所示:圖6串口通訊接口電路(八)按鍵接口電路本課題設(shè)計(jì)采用的鍵盤模塊,其接口原理圖如下圖8所示:圖8鍵盤模塊電路(九)DS1302時(shí)鐘電路本課題設(shè)計(jì)的時(shí)鐘是采用時(shí)鐘芯片DS1302,其接口原理圖如下圖9所示:圖9時(shí)鐘接口電路(十)存儲(chǔ)器接口電路本課題設(shè)計(jì)的存儲(chǔ)器采用的是AT24C256,其接口原理圖如下圖十所示:圖10存儲(chǔ)器電路三、系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的軟件主要是采用C語言,對(duì)單片機(jī)進(jìn)行變成實(shí)現(xiàn)各項(xiàng)功能。主程序?qū)δK進(jìn)行初始化,而后調(diào)用讀溫度、處理溫度、顯示、鍵盤等模塊。用的是循環(huán)查詢方式,來顯示和控制溫度,主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值并負(fù)責(zé)調(diào)用各子程序,其程序流程如圖10系統(tǒng)程序流程圖。開始初始化開始初始化啟動(dòng)啟動(dòng)DB18B20讀溫度計(jì)算溫度LCD顯示圖10系統(tǒng)程序流程圖(一)計(jì)算溫度子程序讀出溫度子程序的主要功能包括初始化,判斷DS18B20是否存在,若存在則進(jìn)行一系列的讀操,作若不存在則返回。其程序流程圖如圖11所示。圖11讀溫度流程圖(二)按鍵處理子程序按鍵處理子程序主要是負(fù)責(zé)參數(shù)的設(shè)置,主程序每循環(huán)一次都要對(duì)按鍵進(jìn)行掃描,判斷是否有輸入鍵按下則進(jìn)行一系列的按鍵輸入操作。其程序流程框圖如圖12所示。圖12溫度轉(zhuǎn)換流程圖(三)計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖13所示。開始溫度零下溫度值取補(bǔ)碼置“—”標(biāo)志計(jì)算小數(shù)位溫度BCD值計(jì)算整數(shù)位溫度BCD值結(jié)束置“+”標(biāo)志NY圖13計(jì)算溫度子程序(四)顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖14。溫度數(shù)據(jù)移入顯示寄存器溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0百位數(shù)0十位數(shù)顯示符號(hào)百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號(hào))結(jié)束NNYY圖14數(shù)據(jù)刷新子程序四、結(jié)束語通過此次畢業(yè)論文的課題設(shè)計(jì),我們學(xué)會(huì)了怎樣把所學(xué)的書本知識(shí)應(yīng)用于實(shí)踐中去,并學(xué)會(huì)了如何去思考整個(gè)控制系統(tǒng)的軟硬件設(shè)計(jì)。實(shí)踐過程中我們遇到了一些困難,但在解決問題的過程中,我們學(xué)會(huì)了團(tuán)隊(duì)合作精神和怎樣發(fā)現(xiàn)問題、分析問題,進(jìn)而解決問題。此次課程設(shè)計(jì)不僅增強(qiáng)了我們學(xué)習(xí)專業(yè)課的興趣,而且給了我們勇氣和信心,更重要的是它為我們以后的學(xué)習(xí)指明了方向。參考文獻(xiàn)[1]李廣弟,朱月秀,王秀山.《單片機(jī)基礎(chǔ)》北京航空航天大學(xué)出版社,2001(07).[2]蔡美琴,張為民等.《MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用》高等教育出版社,2004(06).[3]張毅剛,等.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱工業(yè)大學(xué)出版社,1997.[4]劉瑞星,胡健等.《ProtelDXP實(shí)用教程》機(jī)械工業(yè)出版社,2003(04).[5]于海生.《計(jì)算機(jī)控制技術(shù)》機(jī)械工業(yè)出版社2007(05).[6]譚浩強(qiáng).《C程序設(shè)計(jì)》清華大學(xué)出版社.[7]康華光.《電子技術(shù)基礎(chǔ)模擬部分》高等教育出版社1998(08).[8]余錫存.《單片機(jī)原理與接口技術(shù)》西安電子科技大學(xué)出版社,2003.致謝本論文是在我的指導(dǎo)老師密切關(guān)心和悉心指導(dǎo)下完成的。老師在課題開題期間和論文寫作的過程中給予了我許多指導(dǎo),導(dǎo)師總是以認(rèn)真負(fù)責(zé)、一絲不茍的工作態(tài)度閱讀并修改文章中不足的地方,他優(yōu)良的作風(fēng)和嚴(yán)謹(jǐn)治學(xué)的態(tài)度深深影響著我,至此,向恩師致以最真摯的感謝和最崇高的敬意!同時(shí)我要感謝我的同學(xué),特別是我的室友們,正是他們?cè)谶@幾年里陪我一起成長,一起學(xué)習(xí),才讓我有了今天的成績(jī)。他們?cè)谄綍r(shí)的學(xué)習(xí)和生活中他們給予了我無私的關(guān)懷和幫助,在此表示我最誠摯的謝意。附件1:系統(tǒng)原理圖附件2:系統(tǒng)相關(guān)程序一、DS18B20底層驅(qū)動(dòng)程序0c0c7f24c;程序名稱:HtoB

;功能:十六進(jìn)制轉(zhuǎn)BCD

;入口參數(shù):A

;出口參數(shù):R7HtoB:MOVB,#064H;100DIVAB;a/100MOVR7,A;MOVA,#0AHXCHA,BDIVABSWAPAORLA,BRET

;程序名稱:INIT_TEMP

;功能:初始化DS18B20,確定DS18B20是否是存在的

;入口參數(shù):無

;出口參數(shù):FLAG

INIT_TEMP:

SETBP_DS18B20

NOP

CLRP_DS18B20;主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖

MOVR0,#6BH

MOVR1,#04H

TSR1:DJNZR0,$

MOV40,#6BH

DJNZR1,TSR1

SETBP_DS18B20;然后拉高數(shù)據(jù)線,釋放總線進(jìn)入接受狀態(tài)

NOP

NOP

NOP

MOVR0,#32H

TSR2:JNBP_DS18B20,TSR3;等待DS18B20回應(yīng)

DJNZR0,TSR2

LJMPTSR4;延時(shí)

TSR3:SETBFLAG;置標(biāo)志位,表示DS1820存在

LJMPTSR5

TSR4:CLRFLAG;清標(biāo)志位,表示DS1820不存在

LJMPTSR7

TSR5:MOVR0,#06BH

TSR6:DJNZR0,TSR6;時(shí)序要求延時(shí)一段時(shí)間

TSR7:SETBP_DS18B20

RET

;程序名稱:READ_TEMP

;功能:讀取DS18B20的數(shù)據(jù)

;入口參數(shù):TEMPERATURE_L,TEMPERATURE_H

;出口參數(shù):無

READ_TEMP:

SETBP_DS18B20

LCALLINIT_TEMP;先復(fù)位DS18B20

JBFLAG,TSS2

RET;判斷DS1820是否存在若DS18B20不存在則返回

TSS2:MOVA,#0CCH;跳過ROM匹配

LCALLWRITE_18B20

MOVA,#44H;發(fā)出溫度轉(zhuǎn)換命令

LCALLWRITE_18B20

LCALLDISPLAY;等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒

LCALLINIT_TEMP;準(zhǔn)備讀溫度前先復(fù)位

MOVA,#0CCH;跳過ROM匹配

LCALLWRITE_18B20

MOVA,#0BEH;發(fā)出讀溫度命令

LCALLWRITE_18B20

LCALLREAD_18B20;將讀出的溫度數(shù)據(jù)保存到35H/36H

RET

程序名稱:WRITE_18B20

;功能:將A保存的數(shù)值寫入DS1820中,;入口參數(shù):A寄存器

;出口參數(shù):無WRITE_18B20:

MOVR2,#8;一共8位數(shù)據(jù),串行通信CLRCWR1:CLRP_DS18B20

MOVR3,#07

DJNZR3,$

RRCA;循環(huán)右移

MOVP_DS18B20,C

MOVR3,#3CH

DJNZR3,$;23*2=46微妙

SETBP_DS18B20

NOP

DJNZR2,WR1;A里面一共是8位,所以要送8次

SETBP_DS18B20;釋放總線RET;程序名稱:READ_18B20;功能:讀取18B20中的數(shù)據(jù),由于是串行通信,每次讀取一個(gè),循環(huán)8次讀取;入口參數(shù):TEMPRATURE_L;出口參數(shù):無READ_18B20:

MOVR4,#4;將溫度高位和低位從DS18B20中讀出MOVR1,#TEMPERATURE_LRE00:MOVR2,#8;數(shù)據(jù)一共有8位RE01:CLRCSETBP_DS18B20NOPNOPCLRP_DS18B20NOPNOPNOPSETBP_DS18B20MOVR3,#09RE10:DJNZR3,RE10MOVC,P_DS18B20MOVR3,#3CHRE20:DJNZR3,RE20RRCADJNZR2,RE01MOV@R1,ADECR1DJNZR4,RE00RET;程序名稱:SCAN_KEY;功能:掃描鍵盤;入口參數(shù):DIS_BUF_G,DIS_BUF_S,DIS_BUF_B;出口參數(shù):KEY_BUF_G,KEY_BUF_S,kEY_BUF_BSCAN_KEY:

JBK_ENTER,QUIT;如果又Enter鍵入,則開始鍵盤輸入

LCALLK_DELAY

JBK_ENTER,QUIT

CLRENTER_FLAG;每次進(jìn)來都賦值輸入標(biāo)志,設(shè)置為0

MOVKEY_BUF_G,DIS_BUF_G;將當(dāng)前的溫度賦值給KEY_BUFMOVKEY_BUF_S,DIS_BUF_SMOVKEY_BUF_B,DIS_BUF_BK_LOOP:

JBENTER_FLAG,QUIT;如果輸入完成,ENTER_FLAG則為1,退出鍵盤程;序JBK_ENTER,KUPCALLPRO_ENTERKUP:JBK_UP,KDOWNCALLPRO_UPKDOWN:JBK_DOWN,LOOPACALLPRO_DOWNLOOPA:LCALLDISPLAYSJMPK_LOOPQUIT:RET;程序名稱:PRO_ENTER;功能:確認(rèn)鍵盤輸入和退出鍵盤輸入;入口參數(shù):ENTER_FLAG;出口參數(shù):ENTER_FLAGPRO_ENTER:

CALLK_DELAY

JBK_ENTER,K_LOOP;按鈕抖動(dòng)處理SETBENTER_FLAGCALLK_DELAYRET;程序名稱:PRO_UP;功能:數(shù)值上調(diào)處理;入口參數(shù):KEY_BUF_G,KEY_BUF_S,KEY_BUF_B;出口參數(shù):DIS_BUF_G,DIS_BUF_S,DIS_BUF_BPRO_UP:

CALLK_DELAY

JBK_UP,K_LOOP;按鈕抖動(dòng)處理

INCKEY_BUF_G;個(gè)位增一

MOVA,KEY_BUF_G

CJNEA,#0AH,UPNEXT;個(gè)位增加到10,回0

MOVKEY_BUF_G,#00H

INCKEY_BUF_S;十位加一

MOVA,KEY_BUF_S

CJNEA,#0AH,UPNEXT;十位超過99,溢出了MOVR0,#200ERROR1:LCALLERR;出錯(cuò),顯示8888

DJNZR0,ERROR1

DECKEY_BUF_S;退回99MOVKEY_BUF_G,#09HUPNEXT:MOVDIS_BUF_G,KEY_BUF_GMOVDIS_BUF_S,KEY_BUF_SMOVDIS_BUF_B,KEY_BUF_BCALLK_DELAYRET;程序名稱:PRO_DOWN;功能:數(shù)值下調(diào)處理;入口參數(shù):KEY_BUF_G,KEY_BUF_S,KEY_BUF_B;出口參數(shù):DIS_BUF_G,DIS_BUF_S,DIS_BUF_BPRO_DOWN:

CALLK_DELAY

JBK_DOWN,K_LOOP;按鈕抖動(dòng)處理

DECKEY_BUF_G;個(gè)位減一

MOVA,KEY_BUF_G

CJNEA,#0FFH,DOWNNEXT;個(gè)位減到0,回到9

MOVKEY_BUF_G,#09H

DECKEY_BUF_S;十位減一

MOVA,KEY_BUF_S

CJNEA,#0FFH,DOWNNEXT;十位低于0,溢出了MOVR0,#200ERROR2:LCALLERR;出錯(cuò),顯示8888

DJNZR0,ERROR2

INCKEY_BUF_S;退回00MOVKEY_BUF_G,#00HDOWNNEXT:

MOVDIS_BUF_G,KEY_BUF_G;增加完成后,賦值退出,然后DISPLAY;顯示出來MOVDIS_BUF_S,KEY_BUF_SMOVDIS_BUF_B,KEY_BUF_BCALLK_DELAYRETK_DELAY:;鍵盤抖動(dòng)延時(shí)子程序MOVR6,#250DL20MS_1:MOVR7,#200DJNZR7,$DJNZR6,DL20MS_1RET;可控硅控制SWITCH:

MOVA,KEY_BUF_G;三個(gè)Buffer都是0的話,說明還沒有輸入數(shù)值,直;接退出JNZSNEXTMOVA,KEY_BUF_SJNZSNEXTMOVA,KEY_BUF_BJZSQUITSNEXT:CALLSET_DIS_BUF

MOVA,KEY_BUF_S

SUBBA,DIS_BUF_S

JCCOOL

JNZHOT;十位如果相等,那么繼續(xù)比較個(gè)位MOVA,KEY_BUF_GSUBBA,DIS_BUF_GJCCOOLHOT:CLRP_SWITCH;P_SWITCH為0說明當(dāng)前溫度小于設(shè)定溫度,要升溫,;所以接電阻絲SETB;報(bào)警SJMPSQUITCOOL:SETBP_SWITCH;P_

溫馨提示

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

評(píng)論

0/150

提交評(píng)論