版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘要 </b></p><p> 在當(dāng)代繁忙的工作與生活中,時(shí)間與我們每一個(gè)人都有非常親密的關(guān)系,每個(gè)人都收到時(shí)間的影響,為了更好的利用我們自己的時(shí)間,我們必須對時(shí)間有一個(gè)度量,因此產(chǎn)生了鐘表。隨著社會、科技的發(fā)展,人類得知時(shí)間,從觀太陽、擺鐘到現(xiàn)在電子鐘,不斷研究、創(chuàng)新。為了在觀測時(shí)間的同時(shí)能夠了解其他與人類密切相關(guān)的信息,比如溫度、星期、日期等,電子萬年歷
2、誕生了,它集時(shí)間、日期、星期和溫度于一身,具有讀取方便、顯示直觀、功能多樣、電路簡潔等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。</p><p> 該電子萬年歷主要采用AT89S52單片機(jī)作為主控核心,由DS1302時(shí)鐘芯片提供時(shí)鐘、LED動態(tài)掃描顯示屏顯示,AT89S52單片機(jī)具有功耗小,片內(nèi)ROM全都采用FlashROM:能以3V的超低電壓工作,同時(shí)也與MCS-51系列單片機(jī)完全兼容,該芯片
3、內(nèi)部存儲器為8KB ROM存儲空間,同時(shí)具有89C51的功能,且具有在線編程可擦除技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或程序的新增功能需要燒入程序時(shí),不需要對芯片進(jìn)行多次插拔,所以不會對芯片造成損壞。DS1302時(shí)鐘芯片是美國DALLAS公司推出的具有涓流電流充電功能的低功耗實(shí)時(shí)時(shí)鐘芯片,它可以對年、月、日等進(jìn)行計(jì)時(shí),還有閏年補(bǔ)償?shù)裙δ?,而且使用壽命長,誤差小,數(shù)字顯示是采用的LCD液晶顯示,可以同時(shí)顯示各種需要的信息。此外,
4、該電子萬年歷還具有時(shí)間校準(zhǔn)等功能。</p><p> 關(guān)鍵字:時(shí)鐘電路 時(shí)鐘芯片DS1302 LCD液晶顯示 單片機(jī)AT89S52</p><p><b> 目 錄</b></p><p><b> 摘 要 Ⅰ</b></p><p><b> 第一章 緒論1&l
5、t;/b></p><p> 1.1 選題背景1</p><p> 1.2 系統(tǒng)目標(biāo)1</p><p> 1.3 設(shè)計(jì)意義1</p><p> 第二章 系統(tǒng)分析3</p><p> 2.1 系統(tǒng)總體結(jié)構(gòu)3</p><p> 2.2 系統(tǒng)功能分析3<
6、/p><p> 第三章 總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)5</p><p> 3.1 總體設(shè)計(jì)5</p><p><b> 3.2詳細(xì)設(shè)計(jì)5</b></p><p> 第四章 系統(tǒng)實(shí)現(xiàn)7</p><p> 第五章 調(diào)試與測試9</p><p><b>
7、總結(jié)與心得10</b></p><p><b> 附錄:</b></p><p><b> 1 源代碼11</b></p><p><b> 2 參考文獻(xiàn)19</b></p><p><b> 第一章 緒論</b></p&
8、gt;<p><b> 1.1選題背景:</b></p><p> 在社會迅速發(fā)展的今天,單片機(jī)的的運(yùn)用已經(jīng)滲透到我們生活的每個(gè)角落,也似乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的足跡。智能儀表、醫(yī)療器械,導(dǎo)彈的導(dǎo)航裝置,智能監(jiān)控、通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能 IC 卡,汽車的安全保障系統(tǒng),動控制領(lǐng)域的機(jī)器人,數(shù)碼像機(jī)、電視機(jī)、全自動洗衣機(jī)的控
9、制,電話機(jī)以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。</p><p> 所以,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將對于現(xiàn)代社會的發(fā)展,經(jīng)濟(jì)的繁榮,和提高滿足人類日益增長的物質(zhì)文化需求有著至關(guān)重要的作用。也成就了一批又一智能化控制的工程師和科學(xué)家??萍荚桨l(fā)達(dá),智能化的東西就越多。學(xué)習(xí)單片機(jī)是社會發(fā)展的必然需求,也是我們現(xiàn)代高級技工所必須要掌握的技能。</p><p> 1.1.1單片機(jī)的簡介
10、:</p><p> 1.1.1微型計(jì)算機(jī)(Single Chip Microcomputer)</p><p> 微型計(jì)算機(jī)的主要特點(diǎn):CPU集成于一個(gè)芯片中。</p><p> 單片機(jī)(Micro Controller Unit)是把組成微型計(jì)算機(jī)的各功能部件:CPU、RAM、ROM、定時(shí)/計(jì)數(shù)器、中斷控制器、并行和串行接口均集成在一個(gè)芯片中。其一個(gè)芯片就
11、構(gòu)成了一個(gè)比較完整的計(jì)算機(jī)系統(tǒng)。</p><p> 微型計(jì)算機(jī)與單片機(jī)是微電子領(lǐng)域的兩個(gè)分支。微型計(jì)算機(jī)的特點(diǎn)是運(yùn)算速度快、存儲容量大,適合于信息管理、科學(xué)計(jì)算等領(lǐng)域;而單片機(jī)的特點(diǎn)為體積小、價(jià)格低,適合于儀器、設(shè)備的控制,常常嵌入到儀器、設(shè)備中。故單片機(jī)也稱作微控制器(Microcontroller)。</p><p> 1.1.2單片機(jī)的生產(chǎn)與發(fā)展</p><p
12、> ?。?).單片機(jī)的生產(chǎn):</p><p> 目前世界上單片機(jī)的生產(chǎn)公司有上百家,如Intel、Philips、Microchip、Motorola、Siemens、NEC、AMD、Zilog、TI、Atmel等。但在國內(nèi)廣泛應(yīng)用的只有Intel 系列和Microchip PIC系列,</p><p> ?。?).單片機(jī)的發(fā)展:</p><p> 第1階
13、段(1976~1980):單片機(jī)發(fā)展初級階段。集成了8位CPU、RAM、ROM、定時(shí)器、并行口(無串行口)等部件,但性能低,尋址范圍?。ā?KB),中斷系統(tǒng)、定時(shí)器也簡單。典型機(jī)型:Intel MCS-48系列。</p><p> 第2階段(1980~1983):高性能單片機(jī)階段。此階段的單片機(jī)普遍帶有串行口,有多級中斷處理系統(tǒng),多個(gè)16位定時(shí)/計(jì)數(shù)器,片內(nèi)ROM、RAM的容量加大,尋址范圍達(dá)64KB。典型機(jī)型
14、:Intel MCS-51系列。</p><p> 第3階段(1983~80年代末):16位單片機(jī)和高性能8位機(jī)并行發(fā)展階段。此階段Intel推出16位單片機(jī)MCS-96系列,其他公司也推出了各種16位單片機(jī)。同時(shí)高性能8位單片機(jī)的性能更為完善。</p><p> 第4階段(90年代):單片機(jī)在集成度、功能、速度、可靠性等方面全面發(fā)展,如采用Flash ROM,加入了一些特殊功能部件(
15、AD轉(zhuǎn)換器,PWM輸出,監(jiān)視定時(shí)器WDT,DMA,調(diào)制解調(diào)器,通信控制器,浮點(diǎn)運(yùn)算單元等)。</p><p> 至今,單片機(jī)的性能已比較完善,且專業(yè)化的特點(diǎn)很強(qiáng),為各種應(yīng)用提供了很大的方便。</p><p> 1.1.2單片機(jī)的應(yīng)用</p><p> 單片機(jī)由于體積小,價(jià)格低,功耗低、控制功能強(qiáng)且控制邏輯可由軟件來實(shí)現(xiàn),因此可以很方便地完成由一般數(shù)字電路很難實(shí)
16、現(xiàn)的控制邏輯。所以在測控系統(tǒng),智能儀表,機(jī)電一體化產(chǎn)品,智能接口,智能民用產(chǎn)品,機(jī)器人等領(lǐng)域得以廣泛應(yīng)用。</p><p> 1.在智能儀器儀表上的應(yīng)用(如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量)只需結(jié)合不同類型的傳感器即可控制,使得儀表達(dá)到數(shù)字化。智能化、微型化(示波器)。</p><p> 2.在工業(yè)控制中的應(yīng)用(如工廠流水線的智
17、能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等)多用于構(gòu)成多樣的控制系統(tǒng),數(shù)字采集系統(tǒng)。設(shè)計(jì)用于實(shí)現(xiàn)特定功能,從而在各種電路中進(jìn)行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu),在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡化了電路,降低了損壞、錯(cuò)誤率,也方便于更換。</p><p> 3.在家用電器中的應(yīng)用(洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、及其他音響視頻器材,電子秤量設(shè)備等)極大的方便了我
18、們的生活。</p><p> 4.在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用(手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動通信呼叫系統(tǒng)、列車無線通信、集群移動通信,無線電對講機(jī)等)利用單片機(jī)的通訊接口可以方便的與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通,為在計(jì)算機(jī)網(wǎng)絡(luò)通訊設(shè)備間的應(yīng)用提供了很好的物質(zhì)條件。</p><p> 7.單片機(jī)在汽車設(shè)備領(lǐng)域中的應(yīng)用(如汽車中的發(fā)動機(jī)控制器,基于CAN總線的汽車發(fā)動機(jī)智能電子控制器,GP
19、S導(dǎo)航系統(tǒng),abs防抱死系統(tǒng),制動系統(tǒng)等)</p><p> 此外,單片機(jī)在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。</p><p><b> 8.多機(jī)應(yīng)用</b></p><p> 利用單片機(jī)的串行接口和并行接口,多個(gè)單片機(jī)子系統(tǒng)可以彼此進(jìn)行通信,構(gòu)成一個(gè)網(wǎng)絡(luò)??梢詷?gòu)成一個(gè)集散式的控制系統(tǒng),從而控制和處理大量的控
20、制對象和信息,且可以通過并行運(yùn)算方式來提高處理速度。</p><p> 總之在單片機(jī)系統(tǒng)中,單片機(jī)是作為控制中樞,數(shù)字電路器件是作為外圍電路,二者是相輔相成的。</p><p> 1.1.3單片機(jī)的發(fā)展趨勢</p><p> 目前,為了適應(yīng)各種嵌入式系統(tǒng)的應(yīng)用需求,單片機(jī)將向著高集成度、增強(qiáng)工能。提高速度、降低成本和功耗等方向發(fā)展。這組要表現(xiàn)在以下幾個(gè)方面。&
21、lt;/p><p> 1處理性能的增強(qiáng):單片機(jī)的處理性能取決于其內(nèi)部數(shù)據(jù)總線寬度、指令執(zhí)行速度、片內(nèi)存儲器容量等指標(biāo)。近幾年發(fā)展起來的16位和32位單片機(jī)就體現(xiàn)了這個(gè)發(fā)展趨勢。</p><p> 2增強(qiáng)功能:未來單片機(jī)的增強(qiáng)功能主要在網(wǎng)絡(luò)功能。A/D和D/A功能、ISP功能、DMA功能、顯示器驅(qū)動等方面另外為了能有效地保護(hù)嵌入式系統(tǒng)的知識產(chǎn)權(quán),對單片機(jī)內(nèi)部軟件的加密是必要的,單片機(jī)的內(nèi)部的
22、程序代碼存儲器帶有加密特性是單片機(jī)的一種增強(qiáng)功能。 </p><p> 3高集成度:隨著集成電路技術(shù)的和工藝的不斷提高,單片機(jī)技術(shù)的發(fā)展及其應(yīng)用領(lǐng)域不斷拓展提高單片機(jī)的集成度,增加片內(nèi)功能器件,減少外圍器件的擴(kuò)展,實(shí)現(xiàn)真正的“單片”系統(tǒng)已成為發(fā)展趨勢集成更多的I/O端口和特殊接口,直接驅(qū)動LED、VFD、LCD等顯示器,帶有直接中斷方式鍵盤端口等
23、。</p><p> 近年來,單片機(jī)結(jié)合專用集成電路(Application Specific Integrated Circuit, ASIC)和精簡指令集計(jì)算機(jī)(Reduced Instruction Set Computer, RISC)技術(shù),發(fā)展為嵌入式處理器(Embedded Processor),適用于數(shù)據(jù)與數(shù)值分析、信號處理、智能機(jī)器人及圖像處理等高技術(shù)領(lǐng)域。</p><p&g
24、t; 由于我做的小實(shí)驗(yàn)用的是宏晶公司的STC89C54RD+單片機(jī)所以下面我就詳細(xì)介紹STC89C54通過它來反映單片機(jī)的開發(fā)應(yīng)用過程!</p><p> 我所用STC89C54RD+是一個(gè)低功耗,高性能的8位單片機(jī)片內(nèi)含有串行編程可反復(fù)擦寫1000次的Flash只讀程序存儲器器件采用高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)的MCS-51指令系統(tǒng)及80C51引腳的結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP F
25、lash存儲單元,功能強(qiáng)大的AT89C51可為許多嵌入式應(yīng)用式控制性應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案!</p><p> STC89C54RD+具有以下特性:</p><p> 兼容MCS-51指令系統(tǒng),32個(gè)雙向I/O口,2個(gè)16位可編程定時(shí)/計(jì)數(shù)器、全雙工UART串行中斷口線、兩個(gè)外部中斷源、中斷喚醒省電模式、看門狗(WDT)電路、靈活的ISP字節(jié)和分頁編程、4KB可反復(fù)擦寫(大于1
26、000次)ISP Flash ROM、4.5V—5.5V工作電壓、時(shí)鐘頻率0—3MHZ、128*8bit內(nèi)部RAM、低功耗空閑和省電模式、三級加密位、軟件空閑和省電功能、雙數(shù)據(jù)寄存器指針。</p><p> 增強(qiáng)型6時(shí)鐘/機(jī)器周期、12時(shí)鐘、機(jī)器周期任意設(shè)置。</p><p> 工作電壓:5.5V-3.4V(5V單片機(jī))/2.0V-3.8V(3V單片機(jī))</p><
27、p> 工作頻率:0-40MHz,相當(dāng)于普通8051單片機(jī);實(shí)際使用范圍為0-80MHz。</p><p> 16KB片內(nèi)Flash程序存儲器,擦寫次數(shù)10萬次以上。</p><p> 片上集成512RAM數(shù)據(jù)存儲器。</p><p> 四組通用I/O口,復(fù)位后為:P1、P2、P3、P4是弱上拉/準(zhǔn)雙向口;P0口是開漏輸出口,作為總線擴(kuò)展時(shí)用,不用加上拉
28、電阻;P0口作為I/O口用時(shí),需要加上拉電阻。</p><p> T0定時(shí)器0 TXAL2 接外部晶振 </p><p> T1定時(shí)器1 TXAL1 接外部晶振</p><p> 除此之外,STC89C54單片機(jī)自身還有很多獨(dú)特的優(yōu)點(diǎn):</p><p> ?。?)加密性強(qiáng),無法解密。</p
29、><p> ?。?)超強(qiáng)抗干擾。主要表現(xiàn)在:高抗經(jīng)典,可以輕松抗御2KV/4KV快速脈沖干擾,寬電壓、不怕電源抖動,寬溫度范圍,I/O口經(jīng)過特殊處理,單片機(jī)內(nèi)部的電源供電系統(tǒng)、時(shí)鐘電路、復(fù)位電路及看門狗電路都經(jīng)過特殊的處理。</p><p> (3)超低功耗:掉電模式,典型電流損耗<0.1uA,空閑模式,典型電流損耗為2mA;正常工作模式,典型電流損耗4-7毫安。</p>
30、<p> 1.2 選題目的:</p><p> 隨著人們生活水平的提高和生活節(jié)奏的加快,對時(shí)間的要求越來越高,精準(zhǔn)數(shù)字計(jì)時(shí)的消費(fèi)需求也是越來越多。</p><p> 二十一世紀(jì)的今天,最具代表性的計(jì)時(shí)產(chǎn)品就是電子萬年歷,它是近代世界鐘表界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機(jī)械振蕩頻率使鐘表的走時(shí)差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺和擺輪游絲的機(jī)械
31、表或鐘。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時(shí)精度更高的石英電子鐘表,使鐘表的走時(shí)月差從分級縮小到了秒級。第三次革命就是單片機(jī)數(shù)碼計(jì)時(shí)技術(shù)的應(yīng)用(電子萬年歷),使計(jì)時(shí)產(chǎn)品的走時(shí)日差從分級縮小到了百萬分之一秒,從原有傳統(tǒng)指針計(jì)時(shí)的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示式,直觀明了,并增加了全自動日期、星期、溫度以及其他日常附屬信息的顯示功能,他更符合消費(fèi)者的生活需求,因此,電子萬年歷的出現(xiàn)帶來了鐘表計(jì)時(shí)業(yè)跨越性的進(jìn)步。</p
32、><p><b> 1.3設(shè)計(jì)意義</b></p><p> 我國生產(chǎn)的電子萬年歷有很多種,總體上來說以研究多功能電子萬年歷為主,使萬年歷除了具有原來的顯示時(shí)間,日期等基本功能外,還具有鬧鈴,報(bào)警等功能,商家生產(chǎn)的電子萬年歷更從質(zhì)量,價(jià)格,使用上考慮,不斷的改進(jìn)電子萬年歷的設(shè)計(jì),使其更加具有市場。</p><p> 本設(shè)計(jì)為軟件,硬件相結(jié)合的
33、一組設(shè)計(jì),在軟件設(shè)計(jì)過程中,應(yīng)對硬件部分有相關(guān)的了解,這樣有助于對設(shè)計(jì)題目的更深了解,有助于軟件設(shè)計(jì),基本的要了解一些主要期間的基本功能和作用。</p><p> 除了采用集成化的時(shí)鐘芯片外,還有采用MCU的方案,利用AT89系列單片機(jī)微機(jī)制成萬年歷電路,采用軟件和硬件相結(jié)合的方法,控制液晶輸出顯示。其最大的特點(diǎn)是:硬件電路簡單,安裝方便易于實(shí)現(xiàn),軟件設(shè)計(jì)獨(dú)特,可靠。</p><p>
34、 本文介紹了基于AT89S52單片機(jī)設(shè)計(jì)的電子萬年歷。首先簡單介紹了單片機(jī)的發(fā)展和應(yīng)用。并且論述了在本次設(shè)計(jì)中的設(shè)計(jì)方案,并在此基礎(chǔ)上實(shí)現(xiàn)了萬年歷的基本電路設(shè)計(jì),然后使用單片機(jī)C語言程序的設(shè)計(jì),程序采用模塊化設(shè)計(jì),使得邏輯關(guān)系簡單明了,維護(hù)方便。</p><p> 一 設(shè)計(jì)要求與方案論證</p><p><b> 1.1 設(shè)計(jì)要求</b></p>&
35、lt;p><b> 1.1.1基本功能</b></p><p> 設(shè)計(jì)一個(gè)能夠顯示年、月、日、時(shí)、分、秒、星期功能的數(shù)字萬年歷。</p><p> 采用LED或LCD顯示并具備以下功能。</p><p> 能夠任意設(shè)定年、月、日、時(shí)、分、星期;</p><p> 能夠任意設(shè)定報(bào)時(shí)時(shí)間;</p>
36、<p> 能夠區(qū)分平年、閏年、大小月份。</p><p><b> 1.1.2發(fā)揮部分</b></p><p> ?。?)能夠完成掉電保護(hù)</p><p> ?。?)能夠在夜間自動關(guān)閉LCD 顯示</p><p> ?。?)具有溫度顯示功能和溫度報(bào)警功能。</p><p> 1
37、.2系統(tǒng)基本方案選擇和論證</p><p> 1.2.1單片機(jī)芯片的選擇和方案論證:</p><p><b> 方案一:</b></p><p> 采用89C51芯片作為硬件核心,內(nèi)部具有4KB ROM存儲空間,能于3V的超低電壓工作,而且與MCS-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備ISP在線編程技術(shù),當(dāng)在對電路進(jìn)行
38、調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對芯片的多次查吧會對芯片造成一定的損壞。</p><p><b> 方案二:</b></p><p> 采用AT89S52片內(nèi)ROM全都采用FlashROM:能以3V的超低電壓工作,同時(shí)也與MCS-51系列單片機(jī)完全兼容,該芯片內(nèi)部存儲器為8KB ROM存儲空間,同時(shí)具有89C51的功能,且具有在線編程可
39、擦除技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或程序的新增功能需要燒入程序時(shí),不需要對芯片進(jìn)行多次插拔,所以不會對芯片造成損壞。</p><p> 綜上所述,所以采用AT89S52作為主控系統(tǒng)。</p><p> 1.2.2顯示模塊選擇方案和論證:</p><p> 方案一:采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價(jià)格適中,對于顯示數(shù)字最合適,而且采用動態(tài)掃
40、描法與單片機(jī)相連接時(shí),占用的單片機(jī)口線少,但所需要的數(shù)碼管數(shù)量太多,焊接困難極易出錯(cuò),所以不采用LED數(shù)碼管作為顯示。</p><p> 方案二:采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較合適,如果用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對較高,所以也不用此種作為顯示。</p><p> 方案三:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量
41、文字,圖形,顯示多樣,清晰可見,但是價(jià)格昂貴,需要的接口線多,本設(shè)計(jì)所需顯示較多且需要文字,所以在本次設(shè)計(jì)中采用LCD液晶顯示屏。</p><p> 1.2.3時(shí)鐘芯片的選擇方案和論證:</p><p> 方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒技術(shù),采用此種方案雖然減小芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大,所以不采用此方案。<
42、;/p><p> 方案二:采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動對秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM作為數(shù)據(jù)暫存區(qū),工作電壓2.5V-5.5V范圍內(nèi),2.5V時(shí)耗電小于300Ma。</p><p> 1.2.4溫度傳感器的選擇方案論證:</p><p> 方案一:使用熱敏電阻作為傳感
43、器,用熱敏電阻與一個(gè)相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個(gè)電阻變化的分壓值,并進(jìn)行A/D轉(zhuǎn)換,此設(shè)計(jì)方案需要A/D轉(zhuǎn)換電路,增加了硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格性的,會產(chǎn)生較大的測量誤差。</p><p> 方案二:采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器,而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以去除A/D模塊,降低了硬件成本
44、,簡化系統(tǒng)電路。另外,數(shù)字式溫度傳感器還具有測量精度高,測量范圍廣等優(yōu)點(diǎn)。</p><p> 1.3電路設(shè)計(jì)最終方案決定:</p><p> 綜上各方案所述,對此次設(shè)計(jì)的方案選定:采用AT89S52作為主控系統(tǒng);DS1302提供時(shí)鐘;數(shù)字式溫度傳感器;LCD液晶顯示屏作為顯示。</p><p> 二 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn):</p><p&
45、gt; 2.1 系統(tǒng)硬件概述:</p><p> 本電路是由AT89S52單片機(jī)作為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、時(shí)、分、秒等進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V-5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部
46、有一個(gè)用于臨時(shí)存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、時(shí)、分、秒等,具有使用壽命長,精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動保存功能;溫度的采集由DS18B20構(gòu)成,顯示部分為LCD液晶顯示屏,能夠?qū)崿F(xiàn)字符與數(shù)字同時(shí)顯示的功能。</p><p> 2.2 主要單元電路的設(shè)計(jì):</p><p> 2.2.1 控制系統(tǒng)的設(shè)計(jì)</p><p> 使用AT89S52作
47、為單片機(jī)的主控芯片,AT89S52單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3,每一條I/O線都能獨(dú)立地作輸出或輸入。</p><p> 單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接時(shí)鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出,第9引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后構(gòu)成上
48、電復(fù)位電路,20引腳為接地端,40引腳為電源端,如圖2-1所示:</p><p> 圖 2-1主控制系統(tǒng)</p><p> 2.2.2時(shí)鐘電路模塊的設(shè)計(jì):</p><p> 圖2-2示出DS1302的引腳排列,其中VCC1為后備電源,VCC2為主電源,在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行,DS1302由VCC1或VCC2兩者中的較大者供電,當(dāng)VCC2大
49、于VCC1+0.2V時(shí),VCC2給DS1302供電,當(dāng)VCC2小于VCC1時(shí)候VCC1供電。X1和X2是振蕩源,外接32.768KHz晶振,RST是復(fù)位片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段,當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作,如果在傳送過程中RST置為
50、低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài),上電運(yùn)行時(shí),在VCC大于等于2.5V之前,RST必須保持低電平,中有在SCLK為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端,SCLK始終是輸入端。</p><p> 時(shí)鐘電路芯片DS1302引腳圖如下圖所示:</p><p> 圖2-2 DS1302的引腳圖 </p><p> 2.2.3 溫
51、度采集模塊設(shè)計(jì)</p><p> 如圖2-3所示,采用數(shù)字式溫度傳感器DS18B20,它是數(shù)字式溫度傳感器,具有測量精度高,電路連接簡單特點(diǎn),此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用I/O口與DS18B20連接加一上拉電阻,VCC接電源,VSS接地。芯片管腳圖如下圖所示:</p><p><b> -</b></p><p> 圖
52、2-3 DS18B20溫度采集</p><p> 2.2.4電路原理及說明</p><p> ?。?)時(shí)鐘芯片DS1302的工作原理</p><p> DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把SCLK端置“0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時(shí)序如下圖2-4所示,圖2-5為DS1302的控制字,此控制字的位7必須置1,若為0
53、則不能把對DS1302進(jìn)行讀寫數(shù)據(jù),對于位6,若對程序進(jìn)行讀/寫時(shí)RAM=1,對時(shí)間進(jìn)行讀/寫時(shí),CK=0,位1至位5指操作單元的地址。位0是讀/寫操作位,進(jìn)行讀操作時(shí),該位為1;該位為0則表示進(jìn)行的是寫操作,控制字節(jié)總是從最低開始輸入/輸出的?!癢P”為1時(shí),寫保護(hù)位防止對任一寄存器的寫操作。</p><p> (2)DS1302的控制字節(jié)</p><p> DS1302的控制字的高
54、有效位(位7)必須是邏輯,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果是0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指操作單元的地址;最低有效位如果為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。</p><p> 數(shù)據(jù)輸入輸出(I/O)</p><p> 在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸
55、入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0到高位7.如下圖所示:</p><p> 圖 2-4 DS1302讀/寫時(shí)序圖</p><p> 2.2.5 液晶顯示模塊概述</p><p> 本次設(shè)計(jì)采用由香港靜電公司的“MDLS-”字符型液晶顯示模塊,該系列是目前世界上品種最全的字符型
56、LCM系列,它具有各種規(guī)格,廣泛應(yīng)用于智能儀表、通訊、辦公自動化及軍工等領(lǐng)域。字符型液晶顯示模塊目前在國際上已經(jīng)規(guī)范化,無論顯示屏的規(guī)格如何變化,其電特性和接口形式都是統(tǒng)一的。因此只要設(shè)計(jì)出一種型號的接口電路,在指令設(shè)置上稍加改動即可使用各種規(guī)格的字符型液晶顯示模塊。在這次設(shè)計(jì)采用的MDLS系列接口特性如下表所示:</p><p> 表2-1 MDLS系列接口特性表</p><p>
57、 通過對MDLS的時(shí)序的了解后可知,在對DS1302讀或?qū)懖僮鞯倪^程中必需要保持RST為高電平,且在SCLK為低電平時(shí)置位RST,讀寫操作完畢后需要對RST復(fù)位,并且要置位SCLK避免時(shí)序錯(cuò)亂。另外由動作時(shí)序圖還可看出在讀寫數(shù)據(jù)前都要寫指令,且讀寫的數(shù)據(jù)是緊緊的跟在指令的后面,即在此過程中,時(shí)鐘信號是連續(xù)發(fā)送的,其占空比是相同的,如果寫完指令后將RST復(fù)位,再來讀寫數(shù)據(jù)是行不同的,因其占空比發(fā)生了變化,讀寫的數(shù)據(jù)不是緊緊的跟在指令的后面
58、的。從DS1302中讀出的數(shù)據(jù)均為BCD碼,要使其在LCD上顯示出來需要將其轉(zhuǎn)換成ASCII碼。在調(diào)時(shí)模式下,則需要將其轉(zhuǎn)換為十進(jìn)制數(shù)。相應(yīng)的要將一個(gè)數(shù)寫入DS1302中則需要先將數(shù)據(jù)轉(zhuǎn)換為BCD碼。</p><p> 在編程對芯片的了解后對其有以下總結(jié):</p><p><b> ?。?)引腳的認(rèn)識</b></p><p> 1:VSS
59、電源引腳 接+5V直流電源</p><p> 2: VDD 接地引腳 </p><p> 3:VEE 背光引腳 調(diào)節(jié)lcd亮度</p><p> 4:RS 數(shù)據(jù)/狀態(tài)引腳 1為數(shù)據(jù);0為狀態(tài)</p><p> 5: RW 讀/寫引腳 1為讀; 0為寫</p><p> 6:E 使能引
60、腳 高電平有效(可對其讀寫數(shù)據(jù))</p><p> 7~14:D0~D7 數(shù)據(jù)線 </p><p><b> ?。?)控制字</b></p><p> 0x02:光標(biāo)、畫面,及AC回首地址</p><p> 0x05:畫面平移(平移速度相當(dāng)快)</p><p>
61、0x06:AC自動加1,且畫面不動</p><p> 0x0c:顯示開即可顯示數(shù)據(jù)</p><p> 0x08:顯示關(guān)不可顯示數(shù)據(jù)及光標(biāo),但屏亮</p><p> 0x0e:顯示開且光標(biāo)顯示</p><p> 0x09:顯示開光標(biāo)顯示且閃爍</p><p> 0x18:畫面右移一位(*注 本人用時(shí)發(fā)現(xiàn)此指令不
62、可用,會使屏關(guān))</p><p> 0x1c:畫面左移一位</p><p> 0x10:光標(biāo)左移一位</p><p> 0x14:光標(biāo)右移一位</p><p> 0x38:lcd雙行顯示</p><p> 0x30:lcd單行顯示(第一行顯示)</p><p><b> 系
63、統(tǒng)的軟件設(shè)計(jì)’</b></p><p> 軟件系統(tǒng)在本次設(shè)計(jì)中尤其重要,基本功能大部分是由軟件完成的,發(fā)揮功能的關(guān)鍵控制部分同樣需要軟件的密切配合才能順利實(shí)現(xiàn)。鑒于軟件設(shè)計(jì)的復(fù)雜性和規(guī)模性,我們采用KEIL編譯器支持的C語言編程,放棄了效率高但可讀性不強(qiáng)的匯編語言。</p><p> 整個(gè)軟件系統(tǒng)采用規(guī)?;某绦蛟O(shè)計(jì)方法,共分為時(shí)間設(shè)定、鬧鈴設(shè)定、和溫度檢測系統(tǒng)。軟件系統(tǒng)的
64、主要特點(diǎn)是整個(gè)過程完全在鍵盤的控制之下,實(shí)現(xiàn)了完全的友好的人機(jī)交互功能。主程序通過判斷鍵盤的輸入情況調(diào)用不同的子程序。子程序的功能實(shí)現(xiàn)也是在鍵盤的配合下完成的。</p><p> http://wenku.baidu.com/view/c3b8b52458fb770bf78a55f3.html</p><p><b> 總 結(jié)</b></p><
65、;p> 本系統(tǒng)以AT89S52為核心部件,使用串行時(shí)鐘芯片DS1302,實(shí)現(xiàn)時(shí)間和鬧鐘的功能設(shè)置。通過鍵盤和液晶顯示屏可方便地校對時(shí)鐘和設(shè)置鬧鐘時(shí)間,本系統(tǒng)基本完成了實(shí)用電子鐘的功能,盡量做到了硬件電路簡單穩(wěn)定,減少電磁干擾和其他環(huán)境干擾。</p><p> 在該系統(tǒng)設(shè)計(jì),調(diào)試完成之后,對最后的成功進(jìn)行分析,同時(shí)結(jié)合在調(diào)試過程中出現(xiàn)的錯(cuò)誤進(jìn)行綜合分析,總結(jié)在實(shí)際系統(tǒng)設(shè)計(jì)和調(diào)試過程中的寶貴經(jīng)驗(yàn)。</
66、p><p> 在系統(tǒng)硬件設(shè)計(jì)之前,要結(jié)合當(dāng)前系統(tǒng)的發(fā)展趨勢和現(xiàn)狀對系統(tǒng)功能進(jìn)行定位,使系統(tǒng)在實(shí)際應(yīng)用中具有競爭力。該系統(tǒng)最大的特點(diǎn)就是界面友好,走時(shí)準(zhǔn)確,和現(xiàn)在使用LED顯示數(shù)據(jù)的萬年歷相比,體積更小,可以作為轎車車載顯示裝置,系統(tǒng)采用液晶顯示器,可以使系統(tǒng)應(yīng)用到更加現(xiàn)代化的地方,使系統(tǒng)采用模塊化程序設(shè)計(jì)犯法,同時(shí)保留了很多的微控制器I/O口,擴(kuò)展十分方便,以往的采用LED顯示數(shù)據(jù)的萬年歷要想實(shí)現(xiàn)的功能擴(kuò)展,除需要
67、對系統(tǒng)程序進(jìn)行修改,還必須增加或減少LED數(shù)碼管,同時(shí)要對LED圖片界面進(jìn)行更換,硬件改動較大,該系統(tǒng)的顯示部分除可以顯示數(shù)據(jù)外,還可以顯示圖片,所以說,其界面改動非常靈活,僅僅改動程序就能實(shí)現(xiàn)界面的修改,用戶還可以選擇自己喜歡的界面,這是以LED作為顯示裝置的數(shù)字萬年歷所不能實(shí)現(xiàn)的。</p><p> 系統(tǒng)具有溫度檢測功能,可以作為工業(yè)溫度檢測裝置,同時(shí)可提供溫度報(bào)警,系統(tǒng)的按鍵輸入功能,可以讀取決策,我們可
68、以通過按鍵發(fā)送指令,控制工業(yè)現(xiàn)場機(jī)器的動作,實(shí)現(xiàn)遠(yuǎn)程控制。</p><p> 可見,該系統(tǒng)本身不僅具有很大的靈活性,友好的界面,方便的可擴(kuò)展性,同時(shí),在其基礎(chǔ)上的系統(tǒng)市場需求也很客觀,工業(yè)控制的很多場合對時(shí)間要求比較嚴(yán)格,在實(shí)際系統(tǒng)中,系統(tǒng)各裝置按照預(yù)定的時(shí)間動作,本系統(tǒng)可以很好的滿足這些系統(tǒng)的要求。</p><p> 在該系統(tǒng)進(jìn)行軟件設(shè)計(jì)的時(shí)候,采用模塊化設(shè)計(jì)方法,除了便于升級外,在
69、調(diào)試過程中,模塊化的程序設(shè)計(jì)將使系統(tǒng)更容易調(diào)試,我們在調(diào)試的過程中,可以分塊調(diào)試,最后總組裝,如果不采用模塊化設(shè)計(jì)方法,將很難找出調(diào)試中的錯(cuò)誤,無論是在系統(tǒng)硬件焊接還是在軟件編程時(shí),都要細(xì)心,比如在開始的時(shí)候,時(shí)鐘芯片主電源和別用電源焊接顛倒,不能寫入數(shù)據(jù)。這樣很小的錯(cuò)誤,卻很大影響系統(tǒng)的性能,甚至導(dǎo)致系統(tǒng)根本無法工作。</p><p> 在本次單片機(jī)控制課程設(shè)計(jì)過程當(dāng)中,指導(dǎo)老師張風(fēng)濤和其他老師以及同學(xué)們都給
70、予了很大的幫助支持,張老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和務(wù)實(shí)的求知精神給我留下了很深的印象,他們鼓勵(lì)我孜孜不倦,銳意進(jìn)取,特別是在困難的時(shí)候,他有意識地培養(yǎng)我獨(dú)立思考和解決問題的能力。張老師的嚴(yán)格要求,令我以后的工作和生活當(dāng)中受益匪淺。在此,對他們所給予的指導(dǎo)和幫助表示最衷心的感謝。</p><p><b> 致謝 </b></p><p> 大學(xué)四年的學(xué)習(xí)和生活就要隨著這篇
71、論文的答辯而結(jié)束了。有許許多多的不舍,也有許許多多的感謝要說。畢業(yè)設(shè)計(jì),實(shí)時(shí)上就是綜合的運(yùn)用四年所學(xué)知識去分析、解決一個(gè)問題,在做畢業(yè)設(shè)計(jì)的過程中,把所學(xué)知識梳理一遍,它既是一次檢閱,又是一次鍛煉。在設(shè)計(jì)中,我遇到過很多問題,比如課題需要用什么元器件,主電路圖如何設(shè)計(jì),子程序該怎么編寫等都是一點(diǎn)頭緒都沒有,但是我在設(shè)計(jì)的這一段時(shí)間里查詢了大量的資料:硬件設(shè)計(jì)、原理圖繪制、程序編寫測試與調(diào)試,并且在指導(dǎo)老師的幫助下我學(xué)會和懂得了很多,逐漸
72、完成了對硬件電弧與軟件編程兩方面設(shè)計(jì),掌握了硬件調(diào)試、軟件調(diào)試基本方法,掌握了從子程序到總程序、從基本功能到復(fù)雜功能等程序編寫的基本思路及方法。</p><p> 首先要衷心的感謝的事我的指導(dǎo)老師,xx老師!在我學(xué)習(xí)期間不僅傳授了知識上的秘訣,更教育了我做人的準(zhǔn)則。這些都將使我終生受益。無論是在理論學(xué)習(xí)階段,還是在論文的選題、資料的查詢、開題、研究和撰寫的每一個(gè)環(huán)節(jié),都得到了羅薇老師無微不至的悉心指導(dǎo)和幫助。我
73、愿借此機(jī)會向?qū)煴硎局孕牡母兄x!</p><p> 其次要感謝所有教育過我的老師!是你們纏手給我的專業(yè)知識是我不斷成長的源泉,也是完成本論文的基礎(chǔ)。我還要向關(guān)心和支持我學(xué)習(xí)的朋友們表示真摯的謝意!感謝他們對我的關(guān)系、關(guān)注和支持!</p><p> 大學(xué)的生活讓我有了堅(jiān)強(qiáng)的性格,冷靜的頭腦和永遠(yuǎn)樂觀的態(tài)度。最重要的是讓我有了責(zé)任感,對自己、對家人和對社會的責(zé)任感。</p>
74、<p> 我愿在未來的學(xué)習(xí)過程中,以更加豐厚的成果來答謝曾經(jīng)關(guān)心、幫助和支持我的所有領(lǐng)導(dǎo)、老師、同學(xué)和朋友。永遠(yuǎn)以一顆為人民服務(wù)的心來回報(bào)社會。</p><p><b> 附錄</b></p><p> 參考文獻(xiàn)][1] 胡乾斌 李光斌 李玲 喻紅. 單片微型計(jì)算機(jī)原理及應(yīng)用[M]. 華中科
75、技大學(xué)出版社. 2005年8月第2版.[2] 任為民. 電子技術(shù)基礎(chǔ)課程設(shè)計(jì)[M]. 中央廣播電視大學(xué)出版社. 1997年5月第1版.[3] 譚浩強(qiáng). C程序設(shè)計(jì)(第二版).[M] 清華大學(xué)出版社. 1999年12月第2版.。[4] 趙亮,候國銳.單片機(jī)c語言編程與實(shí)例[M].北京:人民郵電出版社, 2003[5]
76、60;范風(fēng)強(qiáng),蘭嬋麗. 單片機(jī)語言C51應(yīng)用實(shí)戰(zhàn)集錦[M](修訂版). 電子工業(yè)出版社.[6] 劉振海.單片機(jī)原理及應(yīng)用技術(shù)[M].北京:高等教育出版社,2003 [7] 沈紅衛(wèi).單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析[M].北京:北京航空航天大學(xué)出版社,2002[8] 于復(fù)生,宋現(xiàn)春等,時(shí)鐘芯片DS1302及其在數(shù)據(jù)記錄中的應(yīng)用 電子技術(shù)應(yīng)用[M
77、] 2000年3月[9] 李宏.液晶顯示器件應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2004[10] John P.Uyemura. 數(shù)字系統(tǒng)設(shè)計(jì)入門教程——集成方法(英文影印版)[M].科學(xué)出版社.2002年3月第1版第1次印刷[11</p><p><b> 參考文獻(xiàn)</b></p><p> 【1】.Ma
78、xim公司,1-Wire單總線的基本原理【EB/OL]1-13</p><p> 【2】.于永學(xué)、葛健,1-WIRE總線數(shù)字溫度傳感器DS18B20及應(yīng)用[J],電子產(chǎn)品 世界2003(4)16-24</p><p> 【3】.馬云峰、陳子夫、李全培,數(shù)字溫度傳感器DS18B20的原理與應(yīng)用[EB/OL]1-25</p><p> 【4】.胡振宇、劉魯源、杜振
79、輝,DS18B20接口的C語言程序設(shè)計(jì)[J],單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002-24-43</p><p> 【5】.李鋼,1-WIRE總線數(shù)字溫度傳感器DS18B20原理及應(yīng)用,現(xiàn)代電子ijishu[J],2005(8)21-23</p><p> 【7】.廖常初,現(xiàn)場總線概述[J],電工技術(shù),1989,19-67</p><p> 【8】.閻 石,《數(shù)字電
80、子技術(shù)基礎(chǔ)》(第三版)[M],高等教育出版社,1989,19-67</p><p> 【9】.陳躍東,DS18B20集成溫度傳感器原理與應(yīng)用[J],安徽教育出版社,2002(4)5-23</p><p> 【10】.李廣弟,《單片機(jī)基礎(chǔ)》[M],北京航空航天大學(xué)出版社,1994,1-56</p><p> 【11】.Dallas Corp,DS18B20[EB
81、/OL]1-24</p><p> 【12】.李朝青,《單片機(jī)原理及接口技術(shù)》(簡明修訂版)[M],北京航空航天大學(xué)出版社,1998.17-227</p><p> 【13】.金偉正,單線數(shù)字溫度傳感器的原理與應(yīng)用[L].電子技術(shù)應(yīng)用,2000(6)3-24</p><p> 【14】.沙占友,智能化集成溫度傳感器原理與應(yīng)用,2002.84-105</p
82、><p> #include<reg51.h></p><p> /********位定義*********/</p><p> sbit io=P1^5; //ds1302的串行數(shù)據(jù)I/O口</p><p> sbit clk=P1^6; //ds1302的時(shí)鐘口&l
83、t;/p><p> sbit rst=P1^7; //ds1302的復(fù)位口</p><p> sbit acc0=ACC^0; //移位時(shí)的第0位</p><p> sbit acc7=ACC^7; //移位時(shí)用的第7位</p><p> sbit busy=P0
84、^7; //lcd 忙標(biāo)志位</p><p> sbit rs=P2^0; //lcd 數(shù)據(jù)狀態(tài)位</p><p> sbit rw=P2^1; //lcd 讀寫控件位</p><p> sbit re=P2^2; //lcd 使能位</p
85、><p> sbit menu=P3^0; //菜單</p><p> sbit inc=P3^1; //加一</p><p> sbit dec=P3^2; //減一</p><p> sbit quit=P3^3; //退出&l
86、t;/p><p> /************全局變量***********/</p><p> unsigned char sec,min,hour,day,month,week,year; //秒,分,時(shí),日,月,星期,年</p><p> char newsec,newmin,newhour,newday,newmonth,newweek,newyea
87、r; //重寫數(shù)據(jù)用的秒,分,時(shí)——</p><p> unsigned char bksec,bkmin,bkhour,bkweek,bkday,bkmonth,bkyear,down,count; //閃爍標(biāo)志位</p><p> unsigned char flag,daflag; // 加減標(biāo)志位,時(shí)間日期標(biāo)志位</p><p> unsigned
88、char timete[8],timede[10]; //分別存放,時(shí)分秒;年月日</p><p> unsigned char week1[3]="SUN"; //星期日</p><p> unsigned char week2[3]="MON"; // 一</p><p> uns
89、igned char week3[3]="TUE"; // 二</p><p> unsigned char week4[3]="WED"; // 三</p><p> unsigned char week5[3]="THU"; // 四</p><
90、;p> unsigned char week6[3]="FRI"; // 五</p><p> unsigned char week7[3]="SAT"; // 六</p><p> unsigned char name[]="WanLi"; //制作者(本人)的名
91、字</p><p> /************函數(shù)申明***************/</p><p> void delay(unsigned char ms); //延時(shí)</p><p> void writebyte(unsigned char wdat);//寫一字節(jié)到ds1302</p><p> u
92、nsigned char readbyte(); //從ds1302中讀一字節(jié)</p><p> unsigned char readdat(); //讀ds1302某地址數(shù)據(jù)</p><p> void writedat(unsigned char waddr,unsigned char x);//寫數(shù)據(jù)到ds1302的某地址</p>
93、<p> void ifprotect(flag); //是否寫允許</p><p> void timebuf(); //時(shí)間緩沖區(qū)</p><p> void checkbusy(); //測試lcd忙碌狀態(tài)</p><p
94、> void wrcom(unsigned char com); //寫指令到lcd</p><p> void wrdat(unsigned char dat); //寫數(shù)據(jù)到lcd</p><p> void lcdinit(); //lcd初始化</p><p>
95、 void scanmenu(); //menu掃描</p><p> void funcmenu(); //menu功能</p><p> void scaninc(); //掃描加能函數(shù)</p><p> void s
96、candec(); //掃描減一函數(shù)</p><p> void scanquit(); //掃描退出函數(shù)</p><p> void funcinc(); //加一功能函數(shù)</p><p> void funcdec(
97、); //減一功能函數(shù)</p><p> void funcquit(); //退出功能函數(shù)</p><p> void turn_sub(unsigned char newval,unsigned char newbk,unsigned char newaddr); //調(diào)時(shí)子函數(shù)&l
98、t;/p><p> void sub_buf(unsigned char subk,unsigned char bfte,unsigned char fda); //時(shí)間緩沖子函數(shù)</p><p> void sub_week(unsigned char num); //顯示星期子函數(shù)</p><
99、p> /**********************ds1302函數(shù)部分***************************/</p><p> void delay(unsigned char ms) //延時(shí)函數(shù)</p><p><b> {</b></p><p> unsigned ch
100、ar i;</p><p> unsigned char m=4;</p><p> while(ms--)</p><p><b> {</b></p><p> for(i=0;i<5;i++)</p><p><b> {</b></p>
101、<p><b> do</b></p><p> {}while(m--);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
102、void writebyte(unsigned char wdat) //寫一字節(jié)到ds1302</p><p><b> {</b></p><p> unsigned char i;</p><p><b> ACC=wdat;</b></p><p> for(i=8;
103、i>0;i--)</p><p><b> {</b></p><p> io=acc0; //從最低位開始傳送</p><p> clk=1; //產(chǎn)生一個(gè)邊沿 在寫指令時(shí)供產(chǎn)生上升沿,在寫數(shù)據(jù)時(shí)供產(chǎn)生緊挨著的下降沿</p><p><b> clk=0;</b>&l
104、t;/p><p><b> ACC>>=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> unsigned char readbyte() //從ds1302中讀一字節(jié)&
105、lt;/p><p><b> {</b></p><p> unsigned char i1;</p><p> for(i1=8;i1>0;i1--)</p><p><b> {</b></p><p> ACC>>=1; //保證最低位傳送
106、至最低位</p><p> acc7=io; //從最低位開始傳送</p><p> clk=1; //產(chǎn)生一個(gè)邊沿 在讀數(shù)據(jù)時(shí)供產(chǎn)生上升沿</p><p><b> clk=0;</b></p><p><b> }</b></p><p>
107、return(ACC);</p><p><b> }</b></p><p> unsigned char readdat(unsigned char raddr) //讀ds1302某地址數(shù)據(jù)</p><p><b> {</b></p><p> unsigned char val
108、ue;</p><p> rst=0; //在讀寫前何證rst為低電平</p><p><b> clk=0;</b></p><p> rst=1; //在讀寫期間保證rst為高電平 且只有在clk為低 電平時(shí)才能變?yōu)楦唠娖?lt;/p><p> writebyte(radd
109、r);</p><p> value=readbyte();</p><p> rst=0; //讀寫完畢后保證rst為低,clk為高</p><p><b> clk=1;</b></p><p> return(value);</p><p><b>
110、}</b></p><p> /*******寫數(shù)據(jù)到ds1302的某地址********/</p><p> void writedat(unsigned char waddr,unsigned char x)</p><p><b> {</b></p><p><b> rst=0;
111、</b></p><p><b> clk=0;</b></p><p><b> rst=1;</b></p><p> writebyte(waddr);</p><p> writebyte(x);</p><p><b> rst=0;
112、</b></p><p><b> clk=1;</b></p><p><b> }</b></p><p> /********是否寫保護(hù)********/</p><p> void ifprotect(flag)</p><p><b>
113、; {</b></p><p> if(flag) //flag=1時(shí)禁止寫入</p><p> writedat(0x8e,0x10);</p><p> else //flag=0時(shí)允許寫入</p><p> writedat(0
114、x8e,0x00);</p><p><b> }</b></p><p> void readtime() //讀時(shí)間</p><p><b> {</b></p><p> unsigned char
115、time;</p><p> time=readdat(0x81); //讀秒</p><p> sec=((time&0x70)>>4)*10+(time&0x0f); //將bcd碼轉(zhuǎn)換成十進(jìn)制數(shù)</p><p> time=readdat(0x83);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子萬年歷畢業(yè)設(shè)計(jì)
- 電子萬年歷畢業(yè)設(shè)計(jì)
- 電子萬年歷畢業(yè)設(shè)計(jì)
- 數(shù)字萬年歷設(shè)計(jì)論文
- 數(shù)字萬年歷設(shè)計(jì)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)---電子萬年歷設(shè)計(jì)
- 電子萬年歷畢業(yè)設(shè)計(jì)稿
- 萬年歷畢業(yè)設(shè)計(jì)---基于stc89c52萬年歷的設(shè)計(jì)
- 數(shù)碼萬年歷的畢業(yè)設(shè)計(jì)
- 數(shù)碼萬年歷的畢業(yè)設(shè)計(jì)
- 電子萬年歷畢業(yè)設(shè)計(jì)2
- 數(shù)字萬年歷設(shè)計(jì)論文資料
- 數(shù)字萬年歷課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----電子萬年歷論文設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)--萬年歷電子時(shí)鐘
- 畢業(yè)設(shè)計(jì)---電子萬年歷的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---電子萬年歷的設(shè)計(jì)
- 電子萬年歷設(shè)計(jì)
- 萬年歷設(shè)計(jì)畢業(yè)論文
- 電子鐘萬年歷畢業(yè)設(shè)計(jì)
評論
0/150
提交評論