中文摘要 本設計是基于51系列的單片機進行的實時日歷和時鐘顯示設計,可以顯示年月日時分秒及周信息,具有可調整日期和時間功能。在設計的同時對單片機的理論基礎和外圍擴展知識進行了比較全面準備。 實時日歷和時鐘顯示的設計過程在硬件與軟件方面進行同步設計。硬件部分主要由AT89C52單片機,LED顯示電路,以及調時按鍵電路等組成,系統通過LED顯示數據,所以具有人性化的操作和直觀的顯示效果。軟件方面主要包括時鐘程序、鍵盤程序,顯示程序等。本系統以單片機的匯編語言進行軟件設計,為了便于擴展和更改,軟件的設計采用模塊化結構,使程序設計的邏輯關系更加簡潔明了,以便更簡單地實現調整時間及日期顯示功能。所有程序編寫完成后,在wave軟件中進行調試,確定沒有問題后,在Proteus軟件中嵌入單片機內進行仿真。 隨著微電子技術與大規模集成電路的發展,單片機的串行通信應用正在不斷的走向深入,由于它具有功能強、體積小、功耗低、價格便宜、工作可靠、使用方便等特點,廣泛使用與我們生活的各個領域。單片機往往是作為一個核心部件來使用,再根據具體硬件結構,以及針對各種具體的要求使用相應的外部擴展,來實現具體的實際要求。 本文通過對一個基于單片機的能實現萬年歷功能電子時鐘的設計,從而達到學習、了解單片機相關指令在各方面的應用。系統由主控制器AT89C52、時鐘電路DS1302、顯示電路、按鍵電路、和復合電路等部分構成,能實現時鐘日歷的顯示的功能,能進行時、分、秒的顯示。 2 硬件設計2.1電路設計框圖 (見附件)
2.2 電路原理圖 2.3.1時鐘電路 (1)DS1302引腳功能 DS1302引腳圖 VCC1.VCC2:電源引腳。 其中VCC2接主電源,VCC1接備用電源。 GND:接地。輸出數據。 X1、X2:32.768kHz。晶振引腳。 若采用外部振蕩信號時。32768Hz的信號從 X1腳輸入.x2腳懸空。 RST:片選端,高電平有效。RST端接通控制邏輯,當其為‘0”時 ,IO引腳變為高阻截狀態,所有的數據傳送中止,當其為‘1’時,允許數據傳送。RST由‘0’至‘1’時。SCIK必須為“0”。 DS1302每次操作時,須把RST置為高電平。再把提供地址和命令信息的8位裝入移位寄存器。數據在SCLK的上升沿串行輸入。在開始 8個時鐘周期把含有地址信息的命令字裝入移位寄存器之后。緊隨其后的時鐘在讀操作時輸出數據。 2.3.2串口電路 該微處理器采用AT89C52單片機作為主控芯片,在電路中單片機的P1.2控制DS1302的復位輸入端,P1.0與數據輸入/輸出引腳相連,P1.1用來作為DS1302的輸入時鐘SCLK控制端。為防止單片機復位時端口電平變化導致DS1302計時的不穩定,主電源(5 V)接 VCC2,備份電池采用可充電鎘鎳電池(3.6 V)接 VCC1。 2.3.3復位電路 單片機在開關機時都需要復位,以便中央處理器CPU及其他功能部件都RC構成處于一個確定的初始狀態,并從這個狀態開始工作。AT89C52的RST引腳是復位信號的輸入端。復位信號高電平有效,持續時間需要24個時鐘周期以上。 RC構成微分電路,在接電瞬間,產生一個微分脈沖,其寬度若大于2個機器周期,80C51型單片機將復位。為保證微分脈沖寬度足夠大,RC時間常數應大于2個機器周期。一般取10uF電容、8.2K歐姆電阻。 2.3.4鍵盤設置電路 (1)獨立式鍵盤 獨立式鍵盤是指直接用I/O口線構成單個按鍵電路,每個按鍵占用一條I/O口線,當某個鍵閉合時,相應的I/O口線變為低電平,當CPU查詢到為低電平的I/O口線時,就可以判別出與其對應的鍵處于釋放狀態。 (2)設置電路介紹 設置電路的功能主要是把時間和日期設置到當前的時間,可以在系統運行中進行。用4個獨立式按鍵完成,分別接到單片機P3口的高4位。 4個按鍵的功能設計如下: ①第1個按鈕表示是否進行設置,按下時表示設置,并且每按一次,在顯示器上分別在年、月、日等日期時間上跳轉,表示對相應的項進行更改; ②第2個按鈕按下表示對第1個按鈕選中的項進行加1操作; ③第3個按鈕按下表示對第1個按鈕選中的項進行減1操作; ④第4個按鈕按下表示停止設置; 3 軟件設計程序流程圖 主程序設計 從上面主程序看出,主程序的組成是通過分別調用各子程序組成總體系統功 能,能很直觀的看出主程序所要完成的功能,首先是初始化各模塊,之后調用鍵 盤完成時間的調整,調用日歷子程序完成日歷時鐘的初始化和時間數據的讀寫,調用顯示子程序顯示數據,最后又轉到鍵盤程序來回循環。 初始化部分主要有初始化定時器部分和和一些寄存器、標志位、初始化時間 等。 對定時器T0初始化時,首先置初值,CPU 開中斷,定時器 T0 開中斷,并且開始計數,而對定時器 T1 初始化時,首先置初值,定時器T1關中斷,并且停止,只有收到命令時才能產生中斷。 寄存器的初始化主要是初始化執行程序時用到的部分RAM空間,防止程序執行時帶來混亂。 標志位初始化是對時間調整時 判斷是調分還是調時等而專設的位 標志,初始化過程中標志位全部置0,即開始時是處于顯示狀態,而不是調整狀態,這一點在程序中相當明了 初始化時間是開機時顯示的時間,并通過調用日歷時鐘的寫程序來完成時間的置初值。 4 調試結果與討論
4.1硬件調試 4.1.1硬件調試方法 首先通過電路圖和和萬用表確認元件型號、規格、工作狀況和安裝情況是否正確,然后在通電的情況下,執行讀寫指令,對用戶樣機的存儲器、I/O端口進行讀寫和邏輯檢查等操作,用示波器等設備觀察波形(如輸出波形、讀/寫控制信號、地址數據波形和有關控制電平),通過波形的觀察分析,發現和排除故障。 4.2軟件調試 軟件調試方法與選用的軟件結構和程序設計技術有關。如果采用模塊設計技術,則逐個模塊調好以后,再進行系統程序總調試。在這里我們采用Protues仿真進行軟件測試,將主程序的HEX文件下載到AT89C52中,點擊開始仿真,結果如圖所示;點擊四個按鍵能實現上述功能 4.3調試結果分析與討論 在經過簡單的調試后,在液晶顯示屏上顯示了對應時間并且按鍵的對應功能都可實現。 實驗結束后,我們對這次實驗進行了反思和總結: 由于思路的不清晰以及相關知識的不充分,遇到了許多問題,在參考了文獻和和向他人請教后,理清思路,最終完成了這次實驗。通過這次實驗認識到了自己的不足也收獲了許多經驗,獲益匪淺。 5 主要參考文獻 [1]田富洋,李晉陽,基于單片機的日歷時鐘設計[J].常州信息職業技術學院學報,2012( 3) : 32-35。 [2]李光飛,51系列單片機設計實例[M].北京: 北京航 空航天大學出版社,2003: 24-28。 [3] 孫佳玲.基于單片機的多功能數字時鐘系統設計分析[J].吉林工 程技術師范學院學報,2009,(10):25-26. [4] 樓然苗.單片機課程設計指導[M]. 北京:北京航空航天大學出版社,2007.7 [5] 朱思榮.51單片機實現公歷與農歷、星期的轉換[Z].當當電子網 [6] 王越明.電子萬年歷的設計[J].黑龍江科技信息,2004年 [7]沈慶陽, 80C51單片機實踐與應用[M].北京: 清華大 學出版社,2003: 81-86。
完整的Word格式文檔51黑下載地址:
樓下有附件
|