基于單片機的電子萬年歷設計畢業(yè)論文_第1頁
基于單片機的電子萬年歷設計畢業(yè)論文_第2頁
基于單片機的電子萬年歷設計畢業(yè)論文_第3頁
基于單片機的電子萬年歷設計畢業(yè)論文_第4頁
基于單片機的電子萬年歷設計畢業(yè)論文_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的能實現(xiàn)萬年歷功能電子時鐘的設計摘 要單片機應用技術飛速發(fā)展,從導彈的導航裝置,到飛機上各種儀表的控制,從計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,以及生活中廣泛使用的各種智能ic卡、電子寵物等,這些都離不開單片機。單片機是集cpu,ram,rom ,定時,計數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強,廣泛應用于智能產(chǎn)業(yè)和工業(yè)自動化上。本文通過對一個基于單片機的能實現(xiàn)萬年歷功能電子時鐘的設計,系統(tǒng)由主控制器at89s52、時鐘電路ds1302、顯示電路、按鍵電路、和復位電路等部分構(gòu)成,主控制系統(tǒng)作為控制中心,ds1302產(chǎn)生時鐘,12864液晶顯示

2、對日期時間等進行顯示,按鍵可以設置時間、鬧鐘等。能實現(xiàn)時鐘日歷和時間顯示的功能,能進行時、分、秒的顯示。未來,萬年歷將會朝著精準度更高,外觀更加美麗,價格更加實惠的方向發(fā)展,并且將會出現(xiàn)更多的輔助功能。關鍵詞:單片機,農(nóng)歷查詢,萬年歷abstractas the rapid development of single-chip microcomputer application technology, from the navigation device of missile to the various instruments on the aircraft control and from

3、 computer communication network and data transmission to industrial real-time automation process control and data processing, as well as the extensive use of the smart card and electronic pets in live, all of this is inseparable from the microcontroller. scm is set to cpu, ram, rom, timing, counting

4、 and multiple interfaces in one microcontroller. it has the advantages of small volume, low cost, strong function, widely used in smart industries, and industrial automation. this paper designed a electronic clock which can achieve calendar function based on microcontroller, the system consists of m

5、ain controller at89c51, clock circuit, display circuit, ds1302circuit, and a reset circuit components, the main control system as the control center, ds1302 generates a clock, a 12864 lcd display the date and time, the key can set the time, alarm clock, achieved the clock calendar and time display f

6、unction, can carry out the time, seconds display.in the future, the calendar will be more accurate, look more beautiful; more affordable prices of the direction of development, and will appear more auxiliary function.keywords: monolithic single-chip,lunar calendar demand, perpetual calendars目 錄 摘 要i

7、abstractii目 錄iii第1章 緒論11.1 課題的背景 11.2 電子萬年歷的發(fā)展11.3 本次電子萬年歷設計1第2章 設計要求與方案論證32.1 設計要求32.2 方案論證32.2.1 控制部分的方案選擇32.2.2 顯示部分的方案選擇32.2.3 單片機芯片的選擇方案和論證42.2.4 時鐘芯片的選擇方案和論證4第3章 硬件設計53.1 電路的設計框圖53.2 主要單元電路的設計53.2.1 單片機主控電路設計63.2.2 時鐘電路設計83.2.3 復位電路設計93.2.4 溫度傳感器電路設計103.2.5時鐘電路設計113.2.6 顯示電路設計133.2.7 按鍵調(diào)整系統(tǒng)電路設

8、計16第4章 軟件部分設計174.1 程序流程圖174.1.1 主程序流程174.1.2 計算陽歷流程174.1.3 時鐘芯片讀寫程序流程204.1.4溫度測量元件控制程序流程204.2 操作與調(diào)試214.2.1軟件調(diào)試214.2.2 單片機開發(fā)板實物圖22總結(jié)與展望25參考文獻26致 謝27附 錄28第1章 緒論 1.1 課題的背景 隨著社會、科技的發(fā)展,人類得知時間,從觀天陽、擺鐘到現(xiàn)在電子鐘,不斷研究、創(chuàng)新。為了觀測時間的同時,能夠了接其他與人類密切相關的信息,比如星期、日期等,電子萬年歷誕生了,它集時間、日期、星期等功能于一身,具有讀取方便、顯示直觀、功能多樣、電路簡單等諸多優(yōu)點,符合

9、電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。1.2 電子萬年歷的發(fā)展 二十一世紀的今天,最具代表性的計時產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺或擺輪游絲的機械鐘或表。第二次革命是石英晶體振蕩器的應用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機數(shù)碼計時技術的應用(電子萬年歷),使計時產(chǎn)品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,更加直觀明了,并增加了全自動日期、星期、溫

10、度以及其他日常附屬信息的顯示功能,電子萬年歷的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進步。如今電子萬年歷飛入了尋常百姓家,掛式、臺式以及帶裝飾畫面等豐富的電子萬年歷數(shù)不勝數(shù),不但滿足了精準的計時需求,還將計時帶上了科技時尚的味道。單片機技術所應用的功能控制芯片可進行多種功能的設置,如鬧鐘、報時、日歷查詢、語音等;并改善了很多原有石英鐘不能解決的問題,例如:數(shù)字夜光顯示、數(shù)據(jù)存儲以及全自動溫度檢測等功能;這給傳統(tǒng)計時消費帶來了新的動力,越來越多的消費者選擇了電子萬年歷。1.3 本次電子萬年歷設計 對于本次畢業(yè)設計,首先,本課題對系統(tǒng)主要功能進行分析,確定該系統(tǒng)的主要功能是:陽歷日期顯示、時間顯示、農(nóng)歷日

11、期顯示、星期顯示、環(huán)境溫度顯示和定時鬧鈴,并可以修改時間,在修改時間的過程中,可以對月份天數(shù)自動判斷。其次,要對選用的芯片進行學習,尤其是其工作時序,這是實現(xiàn)系統(tǒng)的關鍵。溫度檢測采用ds18b20,由于ds18b20是單總線溫度傳感器,所以,對其控制需要較嚴格的時序。通過查閱資料和仿真掌握單總線數(shù)字溫度傳感器的時序要求和工作流程,該系統(tǒng)主要應用了ds18b20的跳過rom匹配、溫度轉(zhuǎn)換、讀取溫度指令等。最后,時鐘芯片采用ds1302,ds1302為三總線時鐘芯片,為了能夠使其正常工作,要學習其中的寄存器格式、寄存器特殊位作用、讀取時間寄存器數(shù)據(jù)、寫入時間寄存器數(shù)據(jù)等。ds1302時鐘芯片內(nèi)部沒

12、有集成備用電源,所以,要對其掉電保護環(huán)節(jié)進行考慮和設計。顯示器件選用12864液晶模塊,由于液晶模塊在寫入指令或數(shù)據(jù)后,要經(jīng)過一段時間才能完成內(nèi)部動作,所以,對其讀寫控制時要有必要的延時,以等待液晶模塊完成內(nèi)部動作,才能使寫入的數(shù)據(jù)或指令有效。帶字庫型液晶模塊有基本指令集和擴充指令集,本設計不需要顯示圖片,所以,采用基本指令集。在時間設定環(huán)節(jié),要有設定提示,本系統(tǒng)以游標閃爍方式提示用戶當前所修改的數(shù)據(jù)。 第2章 設計要求與方案論證 2.1 設計要求 基本要求:(1)具有顯示年、月、日、星期、時、分、秒等功能;(2)萬年歷具有閏月識別顯示功能;(3)具備年、月、日、星期、時、分、秒校準功能;(4

13、)具備溫度報警、節(jié)日提醒、鬧鐘功能。2.2 方案論證 2.2.1 控制部分的方案選擇 方案一:用可編程邏輯器件設計??刹捎胊ltera公司的flex10k系列pld器件。設計起來結(jié)構(gòu)清晰,各個模塊,從硬件上設計起來相對簡單,控制與顯示的模塊間的連接也會比較方便。但是考慮到本設計的特點,eda在功能擴展上比較受局限,而且eda占用的資源也相對多一些。但是用可編程邏輯器件設計成本較高。方案二:用8位單片機設計。8位單片機有豐富的中斷源和時基,方便設計。它的準確度相當高,并且c語言和匯編兼容的編程環(huán)境也很方便來實現(xiàn)一些遞歸調(diào)用。i/o口功能也比較強大,方便使用。用8位單片機做控制器最有特色的就是它的

14、可編程音頻處理,可完成語音的錄制播放和識別。這些都方便對設計進行擴展,使設計更加完善。成本也相對低一些。所以本次設計選用8位單片機設計。2.2.2 顯示部分的方案選擇 方案一:led數(shù)碼管動態(tài)掃描。相對于液晶顯示比較經(jīng)濟實惠,但液晶顯示比數(shù)碼管顯示美觀,led數(shù)碼管在操作上比較繁瑣。方案二:點陣式數(shù)碼管顯示。點陣式數(shù)碼管顯示對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。方案三:液晶顯示方式。顯示功能強,效果直觀,可用菜單項來方便操作。所以本次設計選擇液晶顯示。2.2.3 單片機芯片的選擇方案和論證方案一:采用89c51芯片作為硬件核心,采用flas

15、h rom,內(nèi)部具有4kb rom 存儲空間,而且與mcs-52系列單片機完全兼容,但是運用于電路設計中時由于不具備isp在線編程技術;當在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰尤氤绦驎r,對芯片的多次拔插會對芯片造成一定的損壞。方案二:采用at89s52,片內(nèi)rom全都采用flash rom;同時也與mcs-52系列單片機完全該芯片內(nèi)部存儲器為8kb rom 存儲空間,同樣具有89s51的功能,且具有在線編程可擦除技術,當在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獙懭氤绦驎r,不需要對芯片多次拔插,所以不會對芯片造成損壞。所以選擇采用at89s52作為主控

16、制系統(tǒng)。2.2.4 時鐘芯片的選擇方案和論證 方案一:直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。方案二:采用ds1302時鐘芯片實現(xiàn)時鐘,ds1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M行計數(shù),而且精度高,工作電壓2.5v5.5v范圍內(nèi)。所以本次設計采用ds1302時鐘芯片實現(xiàn)時鐘。第3章 硬件設計 3.1 電路的設計框圖 本設計采用at89s52 作為主控制系統(tǒng);采用 ds1302 提供時鐘;采用12864液晶顯示作為顯示部

17、分;采用24c02c作為存儲模塊;采用ds18b20溫度傳感作為溫度采集系統(tǒng);采用四按鍵調(diào)整系統(tǒng);采用蜂鳴器報警系統(tǒng)。本電路是由at89s52 單片機為控制核心,具有操作簡單的優(yōu)點;時鐘電路由ds1302提供,它是一種高性能、低功耗、帶ram 的實時時鐘電路,它可以對年、月、日、周、日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與cpu 進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram 數(shù)據(jù)。ds1302 內(nèi)部有一個31*8 的用于臨時性存放數(shù)據(jù)的ram 寄存器??僧a(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具

18、有掉電自動保存功能;溫度的采集由ds18b20構(gòu)成;由于24c02c 采用i2c總線結(jié)構(gòu),操作簡單而且具有掉電保存數(shù)據(jù)的能力,所有鬧鐘的定時時間以及鬧鐘的開關用24c02c來存儲。圖3.1電路的設計框圖3.2 主要單元電路的設計本次電路設計主要包括以下幾個模塊:單片機主控電路設計;時鐘電路設計;溫度傳感器電路設計;實時時鐘電路設計;顯示電路設計以及按鍵系統(tǒng)設計。3.2.1 單片機主控電路設計(1)at89s52的簡介 at89s52是一種低功耗,高性能的cmos 8位微處理器,內(nèi)部有8k字節(jié)的閃速perom ,該芯片采用atmel公司高密度、非揮發(fā)性存儲器工藝制成且與工業(yè)標準的mcs-51系列

19、的引腳及指令兼容,flash系列存儲器為快速擦寫存貯器。相對于mcs-51系列芯片而言,其特點如下:可擦寫1000次全靜態(tài)操作:0hz33mhz 32根可編程i/o口線內(nèi)部ram為256字節(jié)三個16位的定時/計數(shù)器8個中斷源at89s52有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,at89s52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復擦寫的flash存儲器可有效地降低開發(fā)成本。(2)at89s52芯片的管腳、引線與功能引腳信號介紹:p0.

20、0p0.7 :p0口8位雙向口線 p1.0p1.7 :p1口8位雙向口線 p2.0p2.7 :p2口8位雙向口線 p3.0p3.7 :p3口8位雙向口線 p1口的第二功能如表3-1:表3.1 p1口第二功能表引腳號第二功能p1.0t2(定時器計數(shù)器t2的外部記數(shù)輸入),時鐘輸出p1.1t2ex(定時器計數(shù)器t2的捕捉重載觸發(fā)信號和方向控制)p1.5mosi(在系統(tǒng)編程用)p1.6miso(在系統(tǒng)編程用)p1.7mck(在系統(tǒng)編程用)訪問程序存儲器控制信號:當信號為低電平時,對rom的讀操作限定在外部程序存儲器;而當信號為高電平時,則對rom的讀操作是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器

21、。 ale地址鎖存控制信號:在系統(tǒng)擴展時,ale用于控制把p0口輸出低8位地址鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。此外由于ale是以晶振六分之一的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖作用。外部程序存儲器讀選取通信號:在讀外部rom時有效(低電平),以實現(xiàn)外部rom單元的讀操作。 xtal1和xtal2外接晶體引線端:當使用芯片內(nèi)部時鐘時,此二引線端用于外接石英晶體和微調(diào)電容;當使用外部時鐘時,用于拉外部的時鐘脈沖信號。 rst復位信號:當輸入的復位信號延續(xù)2個機器周期以上高電平時即為有效,用以完成單片機的復位初始化操作。 vss:地線 vcc:+5v電源 p3口的第二功能如

22、表3-2: 表3.2 p3口第二功能表引腳號第二功能p3.0rxd(串行輸入)p3.1txd(串行輸出)p3.2int0(外部中斷0)p3.3int0外部中斷0)p3.4t0(定時器0外部輸入)p3.5t1(定時器1外部輸入)p3.6wr(外部數(shù)據(jù)存儲器寫選通)p3.7rd(外部數(shù)據(jù)存儲器寫選通)at89s52的總線結(jié)構(gòu): at89s52的管腳除了電源、復位、時鐘接入、用戶i/o口部分p3外,其余管腳都是為實現(xiàn)系統(tǒng)擴展而設置的。這些管腳構(gòu)成了三總線形式,即:地址總線(ab):地址總線寬度為16位,因此,其外部存儲器直接地址外圍為64k字節(jié)。16位地址總線由p0經(jīng)地址鎖存器提供低8位地址(a0a

23、7);p2口直接提供高8位地址(a8a15)。 數(shù)據(jù)總線(db):數(shù)據(jù)總線寬度為8位,由p口提供。 控制總線 (cb):由部分p3口的第二功能狀態(tài)和4根獨立控制線rst、ale、組成。at89s52結(jié)構(gòu)框圖如圖3.2所示。 圖3.2 at89s52芯片圖圖3.3 at89s52結(jié)構(gòu)圖3.2.2 時鐘電路設計 時鐘電路用于產(chǎn)生單片機工作所需要的時鐘信號,而時序所研究的是指令執(zhí)行中各信號之間的相互關系。單片機本身就如一個復雜的同步時序電路,為了保證同步工作方式的實現(xiàn),電路應在唯一的時鐘信號控制下嚴格地作。(1)時鐘信號的產(chǎn)生 單片機內(nèi)部有一個高增益反相放大器,其輸入端為芯片引腳xtal1,其輸出端

24、為引腳xtal2。而在芯片的外部,xtal1和xtal2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個穩(wěn)定的自激振蕩器。 電容器c1和c2的作用是穩(wěn)定頻率和快速起振,電容值的范圍在5pf-30pf,典型值為30pf。晶振的頻率通常選擇兩種6mhz和12mhz。只要在單片機的xtal1和xtal2引腳外接晶體振蕩器就構(gòu)成了自激振蕩器并在單片機內(nèi)部產(chǎn)生時鐘脈沖信號。 (2)時鐘振蕩電路如圖3.4所示:圖3.4 時鐘振蕩電路3.2.3 復位電路設計 復位電路是使單片機的cpu或系統(tǒng)中的其他部件處于某一確定的初始狀態(tài),并從這上狀態(tài)開始工作。單片機常見的復位電路通常單片機復位電路有兩種:上電復位電路,按鍵復

25、位電路。上電復位電路:上電復位是單片機上電時復位操作,保證單片機上電后立即進入規(guī)定的復位狀態(tài)。它利用的是電容充電的原理來實現(xiàn)的。按鍵復位電路:它不僅具有上電復位電路的功能,同時它的操作比上電復位電路的操作要簡單的多。如果要實現(xiàn)復位的話,只要按下rst鍵即可。它主要是利用電阻的分壓來實現(xiàn)的,在此設計中,采用按鍵復位電路。電路圖如圖3.5所示。圖3.5 按鍵復位電路復位電路工作原理:上電復位要求接通電源后,單片機自動實現(xiàn)復位操作。上電瞬間rst引腳的高電平將逐漸下降。rst引腳的高電平只要保持足夠的時間(2個機器周期),單片機就可以進行復位操作。上電與按鍵均有效的復位電路不僅在上電時可以自動復位,

26、而且在單片機運行期間,利用按鍵也可以完成復位操作。本設計選用上電復位電路。3.2.4 溫度傳感器電路設計 溫度傳感器的種類眾多,dallas公司生產(chǎn)的ds18b20溫度傳感器適合在應用與高精度、高可靠性的場合。ds18b20的主要特點:超小的體積,超低的硬件開銷,抗干擾能力強,精度高。ds18b20的主要特征:全數(shù)字溫度轉(zhuǎn)換及輸出 先進的單總線數(shù)據(jù)通信最高12位分辨率,精度可達土0.5攝氏度 12位分辨率時的最大工作周期為750毫秒 可選擇寄生工作方式 檢測溫度范圍為55c +125c (67f +257f)內(nèi)置eeprom,限溫報警功能 64位光刻rom,內(nèi)置產(chǎn)品序列號,方便多機掛接 多樣封

27、裝形式,適應不同硬件系統(tǒng) ds18b20工作原理及應用:ds18b20的溫度檢測與數(shù)字數(shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理。ds18b20共有三種形態(tài)的存儲器資源,分別是:rom 只讀存儲器:用于存放ds18b20的id編碼,其前8位是單線系列編碼(ds18b20的編碼是19h),后面48位是芯片唯一的序列號,最后8位是以上56位的crc碼(冗余校驗)。數(shù)據(jù)在出產(chǎn)時設置不由用戶更改。ds18b20共64位rom。ram 數(shù)據(jù)暫存器:用于內(nèi)部計算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,ds18b20共9個字節(jié)ram,每個字節(jié)為8位。第1、2個字

28、節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個字節(jié)是用戶eeprom(常用于溫度報警值儲存)的鏡像。在上電復位時其值將被刷新。第5個字節(jié)則是用戶第3個eeprom的鏡像。第6、7、8個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第9個字節(jié)為前8個字節(jié)的crc碼。eeprom 非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報警值和校驗數(shù)據(jù),ds18b20共3位eeprom,并在ram都存在鏡像,以方便用戶操作。 ds18b20芯片與單片機的接口:ds18b20只需要接到控制器(單片機)的一個i/o口上,由于單總線為開漏,所以需要外接一個4.7

29、k的上拉電阻。如要采用寄生工作方式,只要將vdd電源引腳與單總線并聯(lián)即可。但在程序設計中,寄生工作方式將會對總線的狀態(tài)有一些特殊的要求。微控制器控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前要對ds18b20進行復位,復位成功后發(fā)送一條rom指令,最后發(fā)送ram指令,這樣才能對ds18b20進行預定的操作。復位要求微控制器將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號后等待1660微秒左右,然后發(fā)出60240微秒的存在低脈沖,微控制器收到此信號表示復位成功,如果沒有收到復位成功信號,則表示ds18b20出現(xiàn)問題,可以用來作為系統(tǒng)設計時的故障提示、判斷信號。ds18b2

30、0的單總線數(shù)據(jù)傳輸特點,決定了它嚴格的控制時序。微控制器寫1時,數(shù)據(jù)線必須先被拉至低電平,然后就被釋放,使數(shù)據(jù)線在寫時間片開始之后的15微秒之內(nèi)拉至高電平。微控制器寫0時,數(shù)據(jù)線必須先被拉至低電平且至少保持邏輯低電平60微秒。微控制器把數(shù)據(jù)線從高電平拉至低電平時,產(chǎn)生讀時間片,數(shù)據(jù)線必須保持在邏輯低電平至少1微秒;來自ds18b20的輸出數(shù)據(jù)在讀時間片下降沿之后15微秒有效。因此,為了讀取從時間片開始算起15微秒的數(shù)據(jù)線狀態(tài),微控制器必須停止把數(shù)據(jù)線驅(qū)動至低電平。在讀時間片結(jié)束時,數(shù)據(jù)線經(jīng)過外部的上拉電阻拉回至高電平。所有讀時間片的最短持續(xù)期限為60微秒,各個讀時間片之間必須有最短為1微秒的恢

31、復時間。其讀寫時序如圖3.6所示。讀數(shù)據(jù)寫060微秒15微秒45微秒15微秒45微秒15微秒ds18b20寫時間間隙寫1圖3.6 ds18b20讀時間間隙3.2.5時鐘電路設計 ds1302是美國dallas公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)靜態(tài)ram,采用spi三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和ram數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調(diào)整,且具有閏年補償功能。工作電壓寬達2.55.5v。采用雙電源供電(主電源和備用電源),可設置備用電源充電方式,提供了對后背電源進行小電流充電的能力。ds1

32、302的外部引腳分配如圖3.7所示。ds1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄,因此廣泛應用于測量系統(tǒng)中。圖3.7 ds1302的外部引腳分配各引腳的功能為: vcc1:主電源;vcc2:備份電源。當vcc2vcc1+0.2v時,由vcc2向ds1302供電,當vcc2 vcc1時,由vcc1向ds1302供電。 sclk:串行時鐘,輸入,控制數(shù)據(jù)的輸入與輸出; i/o:三線接口時的雙向數(shù)據(jù)線; :輸入信號,在讀、寫數(shù)據(jù)期間,必須為高。該引腳有兩個功能:一、開始控制字訪問移位寄存器的控制邏輯;二、提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒?/p>

33、。 (1)ds1302的工作原理 ds1302工作時為了對任何數(shù)據(jù)傳送進行初始化,需要將復位腳(rst)置為高電平且將8位地址和命令信息裝入移位寄存器。數(shù)據(jù)在時鐘(sclk)的上升沿串行輸入,前8位指定訪問地址,命令字裝入移位寄存器后,在之后的時鐘周期,讀操作時輸出數(shù)據(jù),寫操作時輸出數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8+8(8位地址+8位數(shù)據(jù)),在多字節(jié)方式下最多可達248的數(shù)據(jù)。 (2)ds1302的寄存器和控制命令 ds1302有關日歷、時間的寄存器共有12個,其中有7個寄存器(讀時81h8dh,寫時80h8ch),存放的數(shù)據(jù)格式為bcd碼形式,如表3.3所示。 表3.3 ds1302有

34、關日歷、時間的寄存器讀寄存器寫寄存器bit7bit6bit5bit4bit3bit2bit1bit0范圍81h80hch10秒秒00-5983h82h10秒分00-5985h84h12/24010時時1-12/0-23am/pm87h86h0010日日1-3189h88h00010月月1-128bh8ah00000周日1-78dh8ch10年年00-998fh8ehwp0000000ds1302內(nèi)部的ram分為兩類,一類是單個ram單元,共31個,每個單元為一個8位的字節(jié),其命令控制字為cohfdh,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的ram,此方式下可一次性讀寫所有的ram的

35、31個字節(jié),命令控制字為feh(寫)、ffh(讀)。 (3)與單片機接口電路原理圖 電路原理圖如圖3.8所示,ds1302與單片機的連接也僅需要3條線:ce引腳、sclk串行時鐘引腳、i/o串行數(shù)據(jù)引腳,vcc2為備用電源,外接32.768khz晶振,為芯片提供計時脈沖。圖3.8 ds1302與單片機的連接電路原理圖3.2.6 顯示電路設計 液晶顯示的原理是利用利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已被廣泛應用在便攜式電腦、數(shù)字攝像機、pda移動通信工具等眾多領域。液晶顯示的分類方法有很

36、多種,通常可按其顯示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。在本萬年歷當中12864 液晶顯示顯示當前的實時時間和溫度及重要的陰陽歷節(jié)日等功能。12864 液晶顯示具有如下的特性:提供8 位,4 位并行接口及串行接口可選并行接口適配m6800 時序自動電源啟動復位功能內(nèi)部自建振蕩源6416 位字符顯示ram(ddram 最多16 字符4 行,lcd 顯示范圍162 行)(改為半角輸入)2m 位中文字型rom(cgrom),總共提供8192 個中文字型(1616 點陣)16k 位半寬字型rom(hcgrom),總共提供126 個西文字型(168 點陣)6

37、416 位字符產(chǎn)生ram(cgram)1516 位總共240 點的icon ram(iconram)其與單片機的連接電路如圖3.8 所示:圖3.8 12864與單片機的接線圖液晶顯示12864的引腳功能如表3.4所示。表3.4 液晶顯示12864的引腳功能引腳號引腳名稱方向功能說明1vss-模塊的電池地2vdd-模塊的電源正端3vo-lcd驅(qū)動電壓輸入端4rs(cs)h/l并行的指令數(shù)據(jù)選擇信號:串行的片選信號5r/w(sid)h/l并行的讀寫選擇信號:串行的數(shù)據(jù)口6e(clk)h/l并行的使能信號:串行的同步時鐘7db0h/l數(shù)據(jù)08db1h/l數(shù)據(jù)19db2h/l數(shù)據(jù)210db3h/l數(shù)據(jù)

38、311db4h/l數(shù)據(jù)412db5h/l數(shù)據(jù)513db6h/l數(shù)據(jù)614db7h/l數(shù)據(jù)715psbh/l并串行接口選擇:h-并行:l-串行16nc空腳17rsth/l復位 低電平有效18nc空腳19led_a-背光電源正極20led_k-背光電源負極對12864寫控制時,在使能信號e下降沿有效。在使能信號e下降沿后,為了保證數(shù)據(jù)或指令可靠寫入,需要在使能信號e下降沿后有一段延時,使12864完成內(nèi)部動作。12864的指令集分為基本指令集和擴充指令集,擴充指令集提供繪圖功能,可以顯示圖片;在本設計當中,僅需要基本指令集以顯示漢字、數(shù)字和字母,表3.4給出12864的基本指令集。清除顯示指令將d

39、dram填滿“20h”,并且設定ddram的地址計數(shù)器(ac)為“00h”。 地址歸位指令設定ddram的地址計數(shù)器(ac)為“00h”,并且將游標移到開頭原點位置,這個指令并不改變ddram的內(nèi)容。在顯示狀態(tài)開/關指令中,d=1,整體顯示on,c=1,游標on,b=1,游標位置on。在功能設定指令中dl=1(必須為1),re=1,擴充指令集動作,re=0,基本指令集動作。表3.5 12864的基本指令指令指令碼rsrwdb7db6db5db4db3db2db1db0設定ddram地址001ac6ac5ac4ac3ac2ac1ac0些資料到ram10d7d6d5d4d3d2d1d0清楚顯示00

40、00000001地址歸位000000001x顯示狀態(tài)開關0000001dcb游標或顯示移位控制000001s/cr/lxx功能設定00001dlxrexx3.2.7 按鍵調(diào)整系統(tǒng)電路設計 按鍵采用4個獨立的按鍵,一個功能鍵、一個確認鍵、一個加按鍵、一個減按鍵通過這四個按鍵可以來合理的設置時鐘的調(diào)整和鬧鈴的設定溫度報警的上下限數(shù)值。與單片機的連接電路如圖3.9所示:圖3.9 按鍵電路與單片機的鏈接第4章 軟件部分設計 4.1 程序流程圖 4.1.1 主程序流程 該系統(tǒng)軟件采用匯編語言設計,模塊化的設計方法使得該系統(tǒng)以后的升級改動更為靈活。系統(tǒng)軟件流程為:上電顯示制作者開機界面、讀寫時間日期和溫度

41、、分離時間日期溫度顯示值、顯示子程序、定時鬧鈴子程序、日期時間修改子程序、農(nóng)歷自動更新子程序、閏月子程序、返回。本系統(tǒng)采用四個按鍵和微處理器對話,可以修改時間,設定定時時間。微處理器采用查詢方式掃描按鍵狀態(tài)。主程序執(zhí)行流程如圖4.1所示。圖4.1 主程序執(zhí)行流程圖4.1.2 計算陽歷流程 計算陽歷流程為:所先置陽歷天數(shù)為30天,再判定是否月大,若為真則天數(shù)加一,若為否則此天數(shù)就是該月天數(shù),月大加月加一,在判定是否月大,若是則總天數(shù)中加入號數(shù),計算陽歷天數(shù)結(jié)束,總天數(shù)中的數(shù)據(jù)為當前日期在陽歷中的第幾天。 圖4.2 計算陽歷的流程圖4.1.1 時間調(diào)整程序流程圖時間調(diào)整程序中,在對數(shù)據(jù)加一處理程序

42、中,需要對各數(shù)據(jù)范圍進行判斷,年的最大值為99,即該系統(tǒng)最長可顯示到2099年的日期、時間。月的最大值為12,時的最大值為23,分的最大值為59,秒的最大值為59。該系統(tǒng)能夠?qū)γ吭碌奶鞌?shù)進行自動判斷,陽歷的月份信息為:1、3、5、7、8、10、12月,每月31天;4、6、9、11月,每月30天;二月最為特殊,非閏年為28天,閏年為29天,所以,要想實現(xiàn)日期加一,除了要判斷月份值外,還需要判斷年份是否為閏年。日期加一的程序流程如圖4.3所示。開始控制鍵有效,進入年調(diào)整程序等待按鍵程序加鍵有效減鍵有效年加一年減一控制鍵有效,進入日調(diào)整程序控制鍵有效,進入月調(diào)整程序等待按鍵程序加鍵有效減鍵有效月加一

43、月減一控制鍵有效,進入星期調(diào)整程序等待按鍵程序加鍵有效減鍵有效日加一日減一控制鍵有效,進入小時調(diào)整程序等待按鍵程序加鍵有效減鍵有效星期加一星期減一控制鍵有效,進入分鐘調(diào)整程序等待按鍵程序等待按鍵程序加鍵有效減鍵有效小時加一小時減一加鍵有效減鍵有效分鐘加一分鐘減一按鍵有效,跳出時間調(diào)整程序,進入主循環(huán)程序圖4.3 時間調(diào)整程序流程圖4.1.3 時鐘芯片讀寫程序流程在該系統(tǒng)中,微控制器所做的主要工作就是不斷的讀取時鐘芯片內(nèi)部的日歷寄存器數(shù)據(jù)并將其顯示在液晶屏幕上。ds1302采用三總線與微控制器對話,微控制器讀寫時鐘芯片內(nèi)日歷寄存器數(shù)據(jù)的程序流程如圖4.4、4.5所示。圖4.4 ds1302多字節(jié)

44、讀取數(shù)據(jù)程序流程圖4.5 ds1302多字節(jié)寫入程序流程4.1.4溫度測量元件控制程序流程室內(nèi)環(huán)境溫度和人們的生活息息相關,隨著人們生活水平的提高,人們對和氣候相關的數(shù)據(jù)越來越關心。本系統(tǒng)具有室內(nèi)溫度測量功能,并且通過液晶顯示器顯示出來,界面直觀,可以讓人們很方便的了解當前的環(huán)境溫度。該系統(tǒng)采用ds18b20作為溫度傳感器,一個微控制器引腳可以掛接多個ds18b20,在微控制器發(fā)送指令時,究竟哪一個ds18b20接收指令,由rom匹配環(huán)節(jié)確定。本設計只用到一片ds18b20,所以不需要rom匹配,直接發(fā)送跳過rom匹配指令即可。溫度傳感器ds18b20控制程序流程如圖4.6所示。圖4.6 ds

45、18b20控制程序流程4.2 操作與調(diào)試 4.2.1軟件調(diào)試 在本系統(tǒng)中,硬件電路全部采用集成芯片設計。每一個集成芯片都有相應的控制方法,即工作時序。在應用一個集成芯片的時候,首先要認真閱讀其讀寫時序,再了解它的初始化流程及指令集。該系統(tǒng)除含有單總線溫度傳感器芯片外,還含有液晶顯示模塊,其控制方式都非常麻煩,對軟件的設計要求很嚴格,尤其是溫度傳感器芯片,在對其讀寫過程中,要求有嚴格的延時。(1)時鐘芯片軟件調(diào)試 在開始的時鐘芯片讀寫過程中,發(fā)現(xiàn)不能正確讀出時鐘芯片數(shù)據(jù),讀出的時鐘芯片數(shù)據(jù)全部為0ffh。經(jīng)仔細閱讀資料發(fā)現(xiàn)時鐘芯片ds1302內(nèi)部含有寫保護寄存器,當其最高位為0時,可以寫入移位寄

46、存器,反之則不能寫入,而在開始初始化ds1302時,并沒有包含寫保護寄存器最高位清零的環(huán)節(jié),所以程序中的所有寫入、讀出語句全部無效,不能被ds1302所接收。在程序設計的開始加入關閉寫保護語句,可以正確寫入、讀出時鐘芯片日歷寄存器數(shù)據(jù)。(2)顯示部分軟件調(diào)試 為了使系統(tǒng)具有良好的人機交互界面,該系統(tǒng)采用液晶顯示器顯示所有數(shù)據(jù),但是,液晶顯示模塊的控制要比led數(shù)碼管復雜得多。液晶模塊采用8位并口和微控制器對話,在時鐘下降沿有效。在開始的顯示部分軟件調(diào)試過程中,液晶顯示模塊白屏,即所送指令和數(shù)據(jù)根本沒有被液晶模塊所接收。r/wrse延時有效低電平“寫”命令、數(shù)據(jù)選擇db0-db7db0-db7圖

47、4.8 液晶顯示模塊寫時序閱讀液晶模塊寫入時序,如圖4.8所示,發(fā)現(xiàn)在e下降沿后,要保持數(shù)據(jù)一段時間,以等待液晶模塊完成內(nèi)部動作。在每一個e下降沿之后加一段延時程序,發(fā)現(xiàn)顯示部分工作正常。(3)按鍵部分軟件調(diào)試 在本系統(tǒng)中,用戶可以使用鍵盤修改時間、設定鬧鈴時間。以前學習過讀取微控制器引腳狀態(tài)的基本語句。按照理論設計程序,并觀察按鍵按下之后顯示界面是否按照理論設計的結(jié)果變化,發(fā)現(xiàn)在按下一次“選擇”鍵之后,游標不是移動一位,而是移動很多位,這說明硬件有抖動。本設計在最后按鍵部分軟件設計過程中,采用軟件消抖和按鍵釋放判斷,很好的解決了這個問題。4.2.2 單片機開發(fā)板實物圖如圖4.9和4.10所示,本次設計的最終結(jié)果展示:圖4.9 實物結(jié)果參考1圖4.10實物結(jié)果參考2本次設計采用at89s52作為主控系統(tǒng),采用ds1302作為時鐘電路基礎,采用ds18b20作為溫度傳感器設計電路,采用12864作為顯示電路設計方案,采用四按鍵可調(diào)可設裝置。本萬年歷擁有年、月、日、星期、時、分、秒等功能,擁有閏月識別顯示功能,通過按鍵可以實現(xiàn)顯示年、月、日、星期、時、分、秒校準功能,擁有溫度報警、節(jié)日提醒、鬧鐘功能,達到了設計要求。實物設計采用單片機開發(fā)板。總結(jié)與展望 在該系統(tǒng)設計、調(diào)試完成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論