已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
任務(wù)書題目基于51單片機(jī)和8279芯片的電子時(shí)鐘設(shè)計(jì)時(shí)間安排目的通過單片機(jī)原理與應(yīng)用這門課的課程設(shè)計(jì),學(xué)生應(yīng)能對MCS51單片機(jī)有一個(gè)全面的認(rèn)識(shí),掌握以MCS51單片機(jī)為核心的電子電路的設(shè)計(jì)方法和應(yīng)用技術(shù)。1進(jìn)一步掌握8279鍵盤顯示電路的編程方法。2進(jìn)一步掌握定時(shí)器的使用和編程方法。3進(jìn)一步掌握中斷處理程序的編程方法。要求(1)利用AT89C51作為主控器組成一個(gè)電子鐘并具有鬧鐘功能。(2)利用8位LED用于顯示當(dāng)前時(shí)間。(3)利用8279芯片進(jìn)行鍵盤和LED的管理和顯示。(4)發(fā)揮自己的創(chuàng)造力,實(shí)現(xiàn)盡可能多的功能??傮w方案實(shí)現(xiàn)用AT89C51作為主控制器,并采用8279作為輔助芯片,控制鍵盤、LED數(shù)碼管等的操作和顯示。指導(dǎo)教師評(píng)語評(píng)分等級(jí)()指導(dǎo)教師簽名目錄一、系統(tǒng)總體設(shè)計(jì)方案規(guī)劃與選定3二、系統(tǒng)硬件功能及參數(shù)簡介421AT89C51單片機(jī)簡介422AT89C51單片機(jī)的引腳說明523LED簡介7248279基本原理說明1025DS1302介紹及基本原理說明1326DS18B20介紹及基本工作方式說明17三、系統(tǒng)硬件電路設(shè)計(jì)1931PROTEUS仿真接線圖1932分塊硬件電路射界204、軟件設(shè)計(jì)及實(shí)現(xiàn)過程2541程序設(shè)計(jì)簡述2542系統(tǒng)程序流程圖設(shè)計(jì)26五、系統(tǒng)的調(diào)試過程2751程序性問題及解決2752調(diào)試過程出現(xiàn)問題及解決27六、新增功能及實(shí)現(xiàn)方法2961新增功能2962實(shí)現(xiàn)方法297、小節(jié)與體會(huì)31參考文獻(xiàn)33附錄34硬件連接圖34程序清單36一、系統(tǒng)總體設(shè)計(jì)方案規(guī)劃與選定首先,我們對于整個(gè)系統(tǒng)做了總體的規(guī)劃,大致列了一下我們設(shè)想中的一些附加功能。由于附加功能較多,我們最終決定,先實(shí)現(xiàn)基本功能,然后在基本功能的基礎(chǔ)上,對系統(tǒng)進(jìn)行改進(jìn),逐步加入我們設(shè)想的拓展功能。其次,是編程語言的選擇,我們學(xué)習(xí)過的編程語言有兩種C語言與匯編語言。經(jīng)過比較后決定使用C51編程,因?yàn)镃語言結(jié)構(gòu)整齊,各個(gè)子函數(shù)可以獨(dú)立來寫,思路更加清晰顯得簡單,所以選用C語言來進(jìn)行編程。同時(shí),利用C語言進(jìn)行編程也有利于我們后續(xù)對系統(tǒng)的改進(jìn),也就是增加輔助功能,只要利用子函數(shù)實(shí)現(xiàn)就行,并且可以獨(dú)立于整個(gè)系統(tǒng)運(yùn)行,可以單獨(dú)對子函數(shù)進(jìn)行測試。對于所設(shè)想的附加功能,我們首先進(jìn)行相關(guān)資料的查詢,然后可以對子函數(shù)進(jìn)行編寫,并進(jìn)行單獨(dú)的調(diào)試。可以說,使用C語言編程在軟件方面增加了我們系統(tǒng)的可拓展性。最后,是有關(guān)硬件的設(shè)計(jì),為了實(shí)現(xiàn)基本功能,我們對8979芯片以及DS1302芯片進(jìn)行了仔細(xì)的學(xué)習(xí),從網(wǎng)上查閱了不少資料。對于電路圖的設(shè)計(jì),我們也是按照老師的要求,先實(shí)現(xiàn)按照實(shí)現(xiàn)基本功能進(jìn)行設(shè)計(jì),按照課本進(jìn)行電路圖的鏈接,同時(shí)查閱了關(guān)于8279芯片的使用說明書?;倦娐穲D設(shè)計(jì)完成之后,便查閱有關(guān)資料,對我們設(shè)想的附加功能所用到的DS1302時(shí)鐘芯片和DS18B20溫度傳感器進(jìn)行學(xué)習(xí)了解硬件的連接和測試過程。而且由于一開始對軟件的使用不熟練,在頁面的排版布局上也沒有計(jì)劃,最終顯得整個(gè)電路硬件仿真連接圖較亂,最后有進(jìn)行了重新整理和布局,并配上詳細(xì)說明,是的整體看起來協(xié)調(diào)、美觀。二、系統(tǒng)硬件功能及參數(shù)簡介21AT89C51單片機(jī)簡介AT89C51單片機(jī)是在一塊芯片中集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多種功能的I/O線等一臺(tái)計(jì)算機(jī)所需要的基本功能部件,AT89C51單片機(jī)內(nèi)包含下列幾個(gè)部件(1)一個(gè)8位CPU;(2)一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;(3)4K字節(jié)ROM程序存儲(chǔ)器;(4)128字節(jié)RAM數(shù)據(jù)存儲(chǔ)器;(5)兩個(gè)16位定時(shí)器/計(jì)數(shù)器;(6)可尋址64K外部數(shù)據(jù)存儲(chǔ)器和64K外部程序存儲(chǔ)器空間的控制電路;(7)32條可編程的I/O線(四個(gè)8位并行I/O端口);(8)一個(gè)可編程全雙工串行口;(9)具有五個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。其內(nèi)部機(jī)構(gòu)框圖如圖21所示圖21MCS51單片機(jī)內(nèi)部機(jī)構(gòu)框圖22AT89C51單片機(jī)的引腳說明AT89C51單片機(jī)采用40條引腳雙列直插式器件,引腳除5V(40腳)和電源地(20腳)外,其功能分為時(shí)鐘電路、控制信號(hào)、輸入/輸出三大部分,邏輯框圖及引腳圖分別如圖22(A)(B)所示AB圖22AT89C51單片機(jī)邏輯圖與引腳圖AT89C51單片機(jī)的管腳說明如下(1)VCC供電電壓(2)GND接地(3)時(shí)鐘電路XTAL1(19腳)芯片內(nèi)部振蕩電路(單級(jí)反相放大器)輸入端。XTAL2(18腳)芯片內(nèi)部振蕩電路(單級(jí)反相放大器)輸出端。(4)控制信號(hào)RST(9腳)復(fù)位信號(hào)時(shí)鐘電路工作后,在此引腳上將出現(xiàn)兩個(gè)機(jī)器周期的高電平,芯片內(nèi)部進(jìn)行初始復(fù)位,P0口P3口輸出高電平,將初值07H寫入堆棧指針。ALE(30腳)地址鎖存信號(hào)當(dāng)訪問外部存儲(chǔ)器時(shí),P0口輸出的低8位地址由ALE輸出的控制信號(hào)鎖存到片外地址鎖存器,P0口輸出地址低8位后,又能與片外存儲(chǔ)器之間傳送信息。另外,ALE可驅(qū)動(dòng)4個(gè)TTL門。(29腳)片外程序存儲(chǔ)器讀選通低電平有效,PSENPSEN作為程序存儲(chǔ)器的讀信號(hào),輸出負(fù)脈沖,將相應(yīng)的存儲(chǔ)單元的指令讀出并送到P0口,可驅(qū)動(dòng)8個(gè)TTL門。PSEN/VPP30腳)當(dāng)為高電平且PC值小于0FFFH時(shí),CPUEAA執(zhí)行內(nèi)部程序存儲(chǔ)器程序;當(dāng)為低電平時(shí),CPU僅執(zhí)行外部程序存儲(chǔ)器程序。23LED簡介LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖23A是共陰和共陽極數(shù)碼管的內(nèi)部電路圖,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽極接上正電源,該段即會(huì)發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將“B“和“C“段接上正電源,其它端接地或懸空,那么“B“和“C“段發(fā)光,此時(shí),數(shù)碼管顯示將顯示數(shù)字“1”。而將“A“、“B“、“D“、“E“和“G“段都接上正電源,其它引腳懸空,此時(shí)數(shù)碼管將顯示“2”。其它數(shù)字的顯示原理與此類同。LED的7段數(shù)碼管利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來顯示出09的數(shù)字。在這次的設(shè)計(jì)中采用的均是共陰極的LED顯示,當(dāng)I/O口輸出為高電平的時(shí)候,對應(yīng)段就被點(diǎn)亮。LED數(shù)碼管的結(jié)構(gòu)圖如圖23B所示。(A)B圖23LED分類結(jié)構(gòu)圖和結(jié)構(gòu)圖這次設(shè)計(jì)的顯示部分采用AT89C51單片機(jī)動(dòng)態(tài)掃描完成,在多數(shù)的應(yīng)用場合中,我們并不希望使用多I/O端口的單片機(jī),原則上是使用盡量少引腳的器件。在沒有富余端口的情況下,應(yīng)通過優(yōu)化設(shè)計(jì)程序和擴(kuò)展電路達(dá)到預(yù)期的目的。動(dòng)態(tài)掃描的頻率有一定的要求,頻率太低,LED將出現(xiàn)閃爍現(xiàn)象。如頻率太高,由于每個(gè)LED點(diǎn)亮的時(shí)間太短,LED的亮度太低,肉眼無法看清,所以一般均取幾個(gè)MS左右為宜,這就要求在編寫程序時(shí),選通某一位LED使其點(diǎn)亮并保持一定的時(shí)間,程序上常采用的是調(diào)用延時(shí)子程序。LED顯示電路1靜態(tài)顯示電路LDE顯示器工作在靜態(tài)顯示時(shí),其公共陽極或陰極接VCC或GND,一直處于顯示有效狀態(tài),所以每一位的顯示內(nèi)容必須由鎖存器加以鎖存,顯示各位相互獨(dú)立。2動(dòng)態(tài)顯示電路將所有位的段選線的同名端聯(lián)在一起,由一個(gè)8位I/O口控制,形成段選線的多位復(fù)用。而各位的公共陽極或公共陰極則分別由相應(yīng)的I/O口線控制,實(shí)現(xiàn)各位的分時(shí)選通,即同一時(shí)刻只有被選通位是能顯示相應(yīng)的字符,而其他所有位都是熄滅的。由于人眼有視覺暫留現(xiàn)象,只要每位顯示間隔足夠短,則會(huì)造成多位同時(shí)點(diǎn)亮的假象。這就需要單片機(jī)不斷地對顯示進(jìn)行控制,CPU需要不斷地進(jìn)行顯示刷新,動(dòng)態(tài)顯示電路參見圖24,圖24中是擴(kuò)展了五位的LED數(shù)碼管顯示,用一個(gè)74LS04作為五個(gè)LED的段選輸入,采用動(dòng)態(tài)顯示的方式連接。類似地,16位的LED數(shù)碼管顯示也可以用這種方法來實(shí)現(xiàn)。圖24五位LED數(shù)碼管的動(dòng)態(tài)顯示248279基本原理說明8279顯示部分按掃描的方式工作,可以顯示8或16位LED顯示塊。8279電路工作原理1I/O控制及數(shù)據(jù)緩沖器數(shù)據(jù)緩沖器是雙向緩沖器,連接內(nèi)、外總線,用于傳送CPU和8279之間的命令或數(shù)據(jù);I/O控制線是CPU對8279進(jìn)行控制的引線。CS是8279的片選信號(hào),CS0時(shí),8279才被允許讀出或?qū)懭胄畔?。WR、RD為來自CPU的控制信號(hào)。A0用于區(qū)別信息特性A01時(shí),表示數(shù)據(jù)緩沖器輸入為指令、輸出為狀態(tài)字;A0時(shí),輸入、輸出皆為數(shù)據(jù)。2控制與定時(shí)寄存器及定時(shí)控制控制與定時(shí)寄存器用來寄存鍵盤及顯示的工作方式,以及由CPU編程的其它操作方式。這些寄存器一旦接受并鎖存送來的命令,就通過譯碼產(chǎn)生相應(yīng)的信號(hào),從而完成相應(yīng)的控制功能。定時(shí)控制包含基本記數(shù)鍵。首級(jí)計(jì)數(shù)器是一個(gè)可編程的N級(jí)計(jì)數(shù)器。N可以231之間由軟件編程,以便從外界時(shí)鐘CLK分頻得到內(nèi)部所需要的100KHZ時(shí)鐘。然后再經(jīng)過分頻為鍵盤掃描提供適當(dāng)?shù)闹鹦袙呙桀l率和顯示掃描時(shí)間。3掃描計(jì)數(shù)器掃描計(jì)數(shù)器有兩種工作方式。按編碼方式工作時(shí),計(jì)數(shù)器作二進(jìn)制記數(shù)。4位記數(shù)狀態(tài)從掃描線SL0SL3輸出,經(jīng)外部譯碼器譯碼后,為鍵盤和顯示器提供掃描線;按譯碼方式工作時(shí),掃描計(jì)數(shù)器的最低二位被譯碼后,從SL0SL3輸出。因此,SL0SL3提供了4中取1的掃描譯碼。4回復(fù)緩沖器、鍵盤去抖及控制來自RL0RL3的8根回復(fù)線的回復(fù)信號(hào),由回復(fù)緩沖器緩沖并鎖存。在鍵盤工作方式中,回復(fù)線作為行列式鍵盤的行列輸入線。在逐行列輸入時(shí),在逐行列掃描時(shí),回復(fù)線用來搜索每一行列中閉合的鍵。當(dāng)某一鍵閉合時(shí),去抖電路被置位,延時(shí)等待10MS后,再檢驗(yàn)該鍵是否繼續(xù)閉和,并將該鍵的地址和附加的移位、控制狀態(tài)一起形成鍵盤數(shù)據(jù)被送入8279內(nèi)部FIFO(先進(jìn)先出)存儲(chǔ)器。鍵盤數(shù)據(jù)格式如下D7D6D5D4D3D2D1D0控制移位掃描回復(fù)控制和移位(D6、D7)的狀態(tài)由兩個(gè)獨(dú)立的附加開關(guān)決定,而掃描(D5、D4、D3)和回復(fù)(D2、D1、D0)則是被按鍵置位的數(shù)據(jù)。D5、D4、D3來自動(dòng)掃描計(jì)數(shù)器,是按下鍵的行列編碼,而(D7D7D7)則來自行/列計(jì)數(shù)器,它們是根據(jù)回復(fù)信號(hào)而確定的行/列編碼。在傳感器開關(guān)狀態(tài)矩陣方式中,回復(fù)線的內(nèi)容直接被送往和相應(yīng)的傳感器RAM(即FIFO存儲(chǔ)器)。在選通輸入方式中,回復(fù)線的內(nèi)容在CNTL/STB線的脈沖上升沿被送入FIFO存儲(chǔ)5FIFO/傳感器及其狀態(tài)寄存器FIFO/傳感器RAM是一個(gè)雙重功能的88RAM。在鍵盤或選通方式工作時(shí),它是FIFO存儲(chǔ)器,其輸入或讀出遵循先入先出的原則。FIFO狀態(tài)寄存器用于存放FIFO的工作狀態(tài)。例如,RAM是滿還是空;其中存有多少數(shù)據(jù);是否操作出錯(cuò)等。當(dāng)FIFO存儲(chǔ)器不空,狀態(tài)邏輯將產(chǎn)生IRQ1信號(hào)向CPU申請中斷。在傳感器矩陣方式工作時(shí),這個(gè)存儲(chǔ)器以是傳感器不是存儲(chǔ)器。它存放著傳感器矩陣中的每一個(gè)傳感器狀態(tài)。在此方式中,若檢索出傳感器的變化,IRQ信號(hào)變?yōu)楦唠娖?,向CPU申請中斷。6顯示RAM和顯示地址寄存器顯示RAM用來存儲(chǔ)顯示數(shù)據(jù)。容量為168位。在顯示過程中,存儲(chǔ)的顯示數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器分別為A、B兩組,OUTA03和OUTB03可以單獨(dú)送數(shù),也可以組成一個(gè)8位的字。顯示寄存器的輸出與顯示掃描配合,不斷從顯示RAM中讀出顯示數(shù)據(jù),同時(shí)輪流驅(qū)動(dòng)被選中的顯示器件,以達(dá)到多路復(fù)用的目的,使顯示器件呈現(xiàn)穩(wěn)定的顯示狀態(tài)。顯示地址寄存器用來寄存由CPU進(jìn)行讀/寫顯示RAM的地址,它可以由命令設(shè)定,也可以設(shè)置成每次讀寫或?qū)懭胫笞詣?dòng)遞減。25DS1302介紹及基本原理說明251主要功能DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為25V55V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時(shí)提供了對后備電源進(jìn)行涓細(xì)電流充電的能力。特性實(shí)時(shí)時(shí)鐘,可對秒、分、時(shí)、日、周、月以及帶閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù)用于高速數(shù)據(jù)暫存的318RAM2引腳的串行I/O2555V滿度工作范圍用于時(shí)鐘或RAM數(shù)據(jù)讀寫的單字節(jié)或多字節(jié)數(shù)據(jù)傳送雙電源引腳可選慢速充電至VCC1252內(nèi)部結(jié)構(gòu)及引腳功能DS1302內(nèi)部主要包括實(shí)時(shí)時(shí)鐘(REALTIMECLOCK)、輸入移位寄存器(INPUTSHIFTREGISTERS)、31字節(jié)靜態(tài)RAM、電源控制部分(POWERCONTROL)、命令控制邏輯(COMMANDANDCONTROLLOGIC)、振蕩器和分頻器(OSCILLATORANDDIVIDER)等部分。DS1302內(nèi)部結(jié)構(gòu)如圖25所示。圖25DS1302內(nèi)部結(jié)構(gòu)26DS1302引腳排列DS1302具有8腳DIP引腳排列如圖26所示。VCC1后備電源,在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行;當(dāng)VCC2大于VCC102V時(shí),VCC2給DS1302供電。VCC2主電源,當(dāng)VCC2小于VCC1時(shí),DS1302由VCC1供電。X1、X2振蕩源,外接32768HZ晶振。GND接地端SCLK串行時(shí)鐘輸入端I/O串行數(shù)據(jù)輸入輸出端雙向。RST復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。253工作原理DS1302工作時(shí)為了對任何數(shù)據(jù)傳送進(jìn)行初始化,需要將復(fù)位腳(RST)置為高電平且將8位地址和命令信息裝入移位寄存器。數(shù)據(jù)在時(shí)鐘(SCLK)的上升沿串行輸入,前8位指定訪問地址。命令字裝入移位寄存器后,在之后的時(shí)鐘周期,讀操作時(shí)輸出數(shù)據(jù),寫操作時(shí)輸入數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為88(8位地址8位數(shù)據(jù)),在多字節(jié)方式下最多可達(dá)8248。254控制字節(jié)及寄存器DS1302的一次數(shù)據(jù)傳送是從發(fā)送控制字節(jié)開始的。控制字節(jié)的最高有效位位7必須是邏輯1,如果該位為0,則無法把數(shù)據(jù)寫入到DS1302中;位6表示要讀寫的數(shù)據(jù)類型,為0表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示要操作單元的地址;最低有效位位0表示命令類型,為0表示要進(jìn)行寫操作,為1表示要進(jìn)行讀操作。控制字節(jié)總是從最低位開始輸出。其控制字節(jié)格式如圖27所示。圖27控制字節(jié)格式255時(shí)鐘/日歷存儲(chǔ)區(qū)(時(shí)分秒)256數(shù)據(jù)的傳送向DS1302寫入數(shù)據(jù)時(shí),數(shù)據(jù)在控制字節(jié)輸入后的下一個(gè)SCLK周期的上升沿被寫入,多余的SCLK將被忽略。數(shù)據(jù)寫入時(shí)從低位位0開始;同樣,從DS1302讀取數(shù)據(jù)時(shí),數(shù)據(jù)在緊跟控制字節(jié)后的下一個(gè)SCLK的下降沿讀出,讀出數(shù)據(jù)時(shí)也是從低位0位到高位7位,只要RST保持高電平,額外的SCLK將導(dǎo)致數(shù)據(jù)字節(jié)的持續(xù)讀出,這個(gè)特性用于實(shí)現(xiàn)該芯片的突發(fā)讀模式。對DS1302的每一次讀寫需16個(gè)時(shí)鐘脈沖,前8個(gè)脈沖輸入操作地址和讀寫命令,后8個(gè)脈沖寫入或讀出數(shù)據(jù)。數(shù)據(jù)傳送時(shí)序如圖28。圖28數(shù)據(jù)讀寫時(shí)序圖26DS18B20介紹及基本工作方式說明DS18B20總體介紹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)的特性測溫范圍為55128,測溫精度為士05;溫度轉(zhuǎn)換精度912位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進(jìn)制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時(shí)間為750MS;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。(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,測溫時(shí)無需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少工程的施工量。(4)系統(tǒng)的調(diào)試和維護(hù)由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調(diào)試DS18B20的復(fù)位時(shí)序圖由上位機(jī)拉低總線480960US的時(shí)間然后拉高總線,等待1560US的時(shí)間,如果在總線上有DS18B20這個(gè)器件,并且將總線拉低60240US的話,就證明該器件復(fù)位成功,已經(jīng)準(zhǔn)備好發(fā)送或接受數(shù)據(jù)了。圖29復(fù)位時(shí)序圖DS18B20的寫時(shí)序圖DS18B20的寫時(shí)序分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。DS18B20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序是,單總線要被拉低至少60US,保證DS18B20能夠在15US45US之間能夠正確地采樣I/O總線上的低電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15US之內(nèi)就得釋放單總線。圖210寫時(shí)序圖DS18B20的讀時(shí)序圖DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。對于DS18B20的讀時(shí)序是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20完成一個(gè)讀時(shí)序過程,至少需要60US。三、系統(tǒng)硬件電路設(shè)計(jì)31PROTEUS仿真接線圖全圖除了分塊電路之外,沒有明線,看起來簡潔明了,并且各個(gè)電路的區(qū)域不同,也便于查找。將鍵盤、數(shù)碼管、二極管電路整合在一塊,對系統(tǒng)的調(diào)試可以方便很多。32分塊硬件電路射界321DS1302時(shí)鐘電路通過P13口將時(shí)鐘芯片內(nèi)部RAM的內(nèi)容讀到單片機(jī)內(nèi)部進(jìn)而進(jìn)行顯示,內(nèi)部RAM的內(nèi)容即為當(dāng)前日期322DS18B20溫度傳感器電路通過P10口將溫度傳感器內(nèi)部RAM的溫度讀入單片機(jī),進(jìn)而進(jìn)行顯示。3238279電路經(jīng)測驗(yàn),將SHIFT和CTRL/STB口接地,可以使鍵盤的前兩位為1,進(jìn)而可以方便的讀出鍵盤位置,P0口的數(shù)據(jù)通過圖中藍(lán)色總線傳入8279芯片。P20口通過輸出0或1控制8279用法。324二極管電路第一部分二極管直接與單片機(jī)中P14P17相連,顯示溫度的溫馨提示。第二部分的二極管電路通過38譯碼器與單片機(jī)中P30、P31、P34相連,控制燈的開關(guān),進(jìn)行節(jié)日顯示。325數(shù)碼管顯示電路段選部分直接與8279芯片中OUTA和OUTB相連,用于控制每一位的顯示,而片選部分則通過38譯碼器與8279中SL0SL2相連,用于控制位的選擇。32645鍵盤電路鍵盤部分的行部分通過38譯碼器與8279中SL0SL2相連,用于返回行值,鍵盤列部分直接與RL0RL4相連,用于返回列值。327鬧鐘及音樂播放電路第一部分為鬧鐘電路,通過控制P32口低電平與高電平的交替輸出,進(jìn)行鬧鐘響鈴和整點(diǎn)報(bào)時(shí)功能。第二部分為音樂電路,通過控制P35口高低電平輸出的頻率產(chǎn)生不同節(jié)拍的音符,進(jìn)而構(gòu)成音樂。5、軟件設(shè)計(jì)及實(shí)現(xiàn)過程41程序設(shè)計(jì)簡述主程序先進(jìn)行8279初始化,輸出HELLO及開機(jī)音樂后,再進(jìn)行整個(gè)系統(tǒng)的初始化。進(jìn)入如圖所示的程序循環(huán)過程,并在循環(huán)過程中不斷判斷是否滿足相應(yīng)的判斷語句,進(jìn)行鬧鐘的響鈴和節(jié)日以及溫度的提示,并且等待中斷、進(jìn)行鍵盤掃描。當(dāng)檢測到鍵值時(shí),進(jìn)入中斷,根據(jù)鍵值判斷所需要進(jìn)行的功能,轉(zhuǎn)到相應(yīng)的子函數(shù)中進(jìn)行。42系統(tǒng)程序流程圖設(shè)計(jì)主函數(shù)程序設(shè)計(jì)流程圖顯示子函數(shù)流程圖五、系統(tǒng)的調(diào)試過程51程序性問題及解決1由于WORD的編寫功能較為強(qiáng)大,開始使用WORD進(jìn)行編寫,然后復(fù)制如KEIL進(jìn)行調(diào)試,由于使用WORD的原因,導(dǎo)致程序中出現(xiàn)了很多中問字符的空格,進(jìn)行了仔細(xì)查找將空格抹去之后,方可正常運(yùn)行。2用PROTEUS話電路,進(jìn)行程序調(diào)試時(shí),發(fā)現(xiàn)提示硬件錯(cuò)誤,出現(xiàn)器件重名,導(dǎo)致無法運(yùn)行。52調(diào)試過程出現(xiàn)問題及解決1數(shù)碼管輸出錯(cuò)誤,與所要輸出的相反。分析原因程序中數(shù)碼管輸出部分順序不對。改進(jìn)方法為了防止對程序進(jìn)行大改,將命令字改為左端輸入。2鬧鐘時(shí)明明輸出高電平,但喇叭并不響。分析原因上網(wǎng)查詢之后發(fā)現(xiàn)所用喇叭需要震蕩,及高低電平交替輸出才行。改進(jìn)方法在程序中加入VOIDDI()子函數(shù),使用時(shí)進(jìn)行引用。3對網(wǎng)上找的歌曲代碼進(jìn)行截取時(shí)發(fā)現(xiàn)截取后的蜂鳴器亂響。分析原因歌曲代碼中沒兩位表示一個(gè)音符,截取過程中將兩位拆開,出現(xiàn)混亂,改進(jìn)方法以兩位字符為單位進(jìn)行截取。4節(jié)日提示的二極管不亮。分析原因運(yùn)行時(shí),發(fā)現(xiàn)二極管相應(yīng)的端口顯示低電平,故程序沒有問題,最終發(fā)現(xiàn)馬虎大意導(dǎo)致二極管接反。改進(jìn)方法反接二極管。5溫度顯示錯(cuò)誤,正值時(shí)正常顯示,負(fù)值時(shí)顯示零。分析原因溫度讀取子函數(shù)有錯(cuò)誤,但無論怎么修改,扔無法解決上述問題。將0I/開機(jī)唱歌函數(shù)/VOIDTIME0_INITTMOD0X10IE0X88TH10XDCTL10X00VOIDTIME0_INTINTERRUPT3TH10XDCTL10X00COUNT/長度加1VOIDDELAY_XMSUINTXUINTI,JFORI0I0IDQ0/給脈沖信號(hào)DATT1DQ1/給脈沖信號(hào)IFDQDATT|0X80YANSHI5RETURNDATTVOIDWRITE1UNSIGNEDCHARDATT/寫字節(jié)UNSIGNEDCHARI0FORI8I0IDQ0DQDATTYANSHI5DQ1DATT1VOIDREADTEMPERATUREUNSIGNEDCHARTL0,TH0,I100WHILEIINITWRITE10XCC/跳過讀序號(hào)列號(hào)的操作WRITE10X44/啟動(dòng)溫度轉(zhuǎn)換YANSHI100INITWRITE10XCC/跳過讀序號(hào)列號(hào)的操作WRITE10XBE/讀取溫度寄存器等YANSHI100TLREAD/讀取溫度值低位THREAD/讀取溫度值高位TEMPTH4/右移4位,相當(dāng)于乘00625,將溫度化為十進(jìn)制ELSETEMPTEMPTEMP1/經(jīng)測試,溫度零下時(shí),直接在此函數(shù)中除16影響顯示,故在顯示函數(shù)中除16TEMP1TEMP100/用于溫度顯示VOIDWENDUTISHIIFT15LED10LED30LED20ELSELED11LED20LED30LED40/節(jié)日提示/VOIDJIERITISHIIFCTIMEMONTH1D0C0ELSEIFCTIMEMONTH5D0C0ELSEIFCTIMEMONTH6D1C0ELSEIFCTIMEMONTH7D1C0ELSEIFCTIMEMONTH8D0C1ELSEIFCTIMEMONTH9D0C1ELSEIFCTIMEMONTH10D1C1/鬧鐘響鈴函數(shù)/VOIDDIUCHARIFORI0I0IDIDELAY140/時(shí)鐘函數(shù)/VOIDWRITEUCHARADDR,UCHARDATUCHARIRST0SCK0RST1FORI0I1SCK1FORI0I1SCK1RST0UCHARREADUCHARADDRUCHARI,DATRST0SCK0RST1FORI0I1SCK1FORI0I1IFSDADAT|0X80SCK1RST0DATDAT/1610DATRETURNDATVOIDREAD_TIMECTIMESECONDREAD0X81CTIMEMINUTEREAD0X83CTIMEHOURREAD0X85CTIMEDAYREAD0X87CTIMEMONTHREAD0X89CTIMEWEEKREAD0X8BCTIMEYEARREAD0X8DVOIDSET_TIMEIFFLAGWRITE0X8E,0X00WRITE0X80,CTIMESECOND/1059CTIMESECONDCTIMESECOND10BREAKCASE3CTIMEMINUTECTIMEMINUTE/10ABREAKCASE4CTIMEMINUTEA10CTIMEMINUTE10IFCTIMEMINUTE59CTIMEMINUTECTIMEMINUTE10BREAKCASE5CTIMEHOURACTIMEHOUR/10IFCTIMEHOUR23CTIMEHOURCTIMEHOUR/10BREAKCASE6CTIMEHOURA10CTIMEHOUR10IFCTIMEHOUR23CTIMEHOURCTIMEHOUR10BREAKDEFAULTGB0BREAKBREAKCASE1SWITCHGBCASE1CTIMEDAYCTIMEDAY/10AIFCTIMEDAY30CTIMEDAYCTIMEDAY/10BREAKCASE2CTIMEDAYA10CTIMEDAY10IFCTIMEDAY30CTIMEDAYCTIMEDAY10BREAKCASE3CTIMEMONTHCTIMEMONTH/10AIFCTIMEMONTH12CTIMEMONTHCTIMEMONTH/10BREAKCASE4CTIMEMONTHA10CTIMEMONTH10IFCTIMEMONTH12CTIMEMONTHCTIMEMONTH10BREAKCASE5CTIMEYEARACTIMEYEAR/10BREAKCASE6CTIMEYEARA10CTIMEYEAR10IFCTIMEYEAR99CTIMEYEARCTIMEYEAR10BREAKDEFAULTGB0BREAKBREAKCASE2SWITCHGBCASE1CTIMEWEEKAIFCTIMEWEEK7CTIMEWEEK1BREAKDEFAULTGB0BREAKBREAKCASE3SWITCHGBCASE1ASECASEC/10ABREAKCASE2A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人體能量需要課件
- 2026年關(guān)于南通江海大數(shù)據(jù)管理有限公司公開招聘軟件開發(fā)人員備考題庫及答案詳解參考
- 2026年東莞新興產(chǎn)業(yè)投資有限公司招聘備考題庫及參考答案詳解一套
- 2026年東北林業(yè)大學(xué)計(jì)算機(jī)與控制工程學(xué)院實(shí)驗(yàn)技術(shù)派遣人才公開招聘備考題庫參考答案詳解
- 2026年廣西上林縣建林產(chǎn)業(yè)投資有限責(zé)任公司招聘備考題庫完整答案詳解
- 2026年臺(tái)州市黃巖全域資源開發(fā)管理有限公司公開招聘市場化工作人員的備考題庫及一套參考答案詳解
- 2026年中國聯(lián)合網(wǎng)絡(luò)通信有限公司河北省分公司招聘備考題庫及1套完整答案詳解
- 浦口安全工程師培訓(xùn)課件
- 浦東新區(qū)消防安全培訓(xùn)課件
- 流通食品安全培訓(xùn)資料課件
- 智能水杯行業(yè)狀況分析報(bào)告
- 電力部門春節(jié)安全生產(chǎn)培訓(xùn)
- 公司財(cái)務(wù)部門工作職責(zé)
- 原輔材料領(lǐng)料申請單
- 人教版九年級(jí)數(shù)學(xué)上冊22 3 3拱橋問題和運(yùn)動(dòng)中的拋物線 一課一練 (含答案)
- 2023年個(gè)稅工資表
- 網(wǎng)球運(yùn)動(dòng)基本知識(shí)及規(guī)則課件
- 2023新青年新機(jī)遇新職業(yè)發(fā)展趨勢白皮書-人民數(shù)據(jù)研究院
- 管理學(xué)原理教材-大學(xué)適用
- 變電站一次側(cè)設(shè)備溫度在線監(jiān)測系統(tǒng)設(shè)計(jì)
- GB/T 6579-2007實(shí)驗(yàn)室玻璃儀器熱沖擊和熱沖擊強(qiáng)度試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論