基於微控制器的電子時鐘課程設計報告

2021-03-04 04:24:41 字數 3250 閱讀 6109

目錄一、 引言········

二、 設計課題·········

三、 系統總體方案·········

四、 系統硬體設計······

1.硬體電路原理圖

2.元件清單

五、 系統軟體設計·········

1.軟體流程圖

2.程式清單

六、 系統實物圖········

7、 課程設計體會········

八、 參考文獻及**

九、 附錄·········

一. 引言

微控制器因將其主要組成部分整合在乙個晶元上而得名,就是把**處理器、隨機儲存器、唯讀儲存器、中斷系統、定時器/計數器以及i/o介面電路等部件整合在乙個晶元上。

基於微控制器設計的數字鐘精確度較高, 因為在程式的執行過程中, 任何指令都不影響定時器的正常計數,即便程式很長也不會影響中斷的時間。

數字鐘是採用數位電路實現對日期、時、分、秒,數字顯示的計時裝置,由

於數字積體電路的發展和石英晶體振盪器的廣泛應用,使得數字鐘的精度,遠遠超過老式鐘錶,鐘錶的數位化給人們生產生活帶來了極大的方便,而且大大地擴充套件了鐘錶的報時功能。數字鐘已成為人們日常生活中的必需品,廣泛應用於家庭、車站、碼頭、劇院、辦公室等場所,給人們的生活、學習、工作帶來極大的方便。不僅如此,在現代化的程序中,也離不開電子鐘的相關功能和原理,比如機械手的控制、家務的自動化、定時自動報警、按時自動打鈴、時間程式自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力裝置、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘錶數位化為基礎的。

而且是控制的核心部分。因此,研究數字鐘及擴大其應用,有著非常現實的意義。

本設計使用12mhz晶振與微控制器at89c51相連線,以at89c51晶元為核心,採用動態掃瞄方式顯示,通過使用該微控制器,加之在顯示電路部分使用hd74ls373驅動電路,實現在8個led數碼管上顯示時間,通過4個按鍵進行調時、復位等功能,在實現各功能時數碼管進行相應顯示。軟體部分用c語言實現,分為顯示、延遲、調時、復位等部分。通過軟硬體結合達到最終目的。

二.設計課題:基於微控制器的數字時鐘設計

三.系統總體方案

圖2.1 整體設計思路

針對要實現的功能,擬採用at89c51微控制器進行設計,at89c51 微控制器是一款低功耗,高效能cmos8位微控制器,片內含4kb**可程式設計(isp)的可反覆擦寫1000次的flash唯讀程式儲存器,器件採用高密度、非易失性儲存技術製造,相容標準mcs- 51指令系統及80c51引腳結構。這樣,既能做到經濟合理又能實現預期的功能。在程式方面,採用分塊設計的方法,這樣既減小了程式設計難度、使程式易於理解,又能便於新增各項功能。

程式可分為鬧鐘的聲音程式、顯示程式、鬧鐘顯示程式、調時顯示、定時程式。運用這種方法,關鍵在於各模組的相容和配合,若各模組不匹配會出現意想不到的錯誤。

四、 系統硬體設計

1.硬體電路原理圖

(1)復位電路

微控制器有兩種基本復位方式:即上電復位和按鍵復位。本次設計用按鍵復位,如下圖所示,通過接通按鈕開關,使微控制器進入復位狀態。本次按鍵復位清零。各元件參考下圖。

(2)時鐘電路

(3)鍵盤電路

按鍵處理設定為:

如沒有按鍵,則時鐘正常走時。

按下k0鍵:進入調分狀態,時鐘停止走動;

按k1和k2鍵:可進行加1和減1操作;

繼續按k0鍵:可分別進行分和小時的調整;

最後按k0鍵:退出調整狀態,時鐘開始計時執行

電路圖如下:

(4)顯示電路

本次數碼管採用共陰極8段式led數碼管qh5011as。該數碼管引數見附錄本系統共用8個數碼管,從右到左依次顯示秒個位、秒十位、橫線、分個位、分十位、橫線、時個位和時十位。數碼管顯示的資訊用8個記憶體單元存放,這8個記憶體單元稱為顯示緩衝區,其中秒個位和秒十位、分個位和分十位、時個位和時十位分別由秒資料、分資料和小時資料分拆得到。

在本系統中數碼管顯示採用軟體解碼動態顯示。在儲存器中首先建立一張顯示資訊的字段碼表,顯示時,先從顯示緩衝區中取出顯示的資訊,然後通過查表程式在字段碼表中查出所顯示的資訊的字段碼,從p0口輸出,同時在p2口將對應的位選碼輸出選中顯示的數碼管,就能在相應的數碼管上顯示顯示緩衝區的內容。

同時採用npn型三極體,三極體接法如下圖,其中當三極體基極高電平時,數碼管共陰極為高電平,三極體基極接低電平時,數碼管共陰極為低電平,該位選中。還採用了74ls373鎖存器,用來快取輸入數碼管段選的高低電平,提高電路穩定性。

電路圖如下:

(5)總原理圖:

2.元件清單

5、 系統軟體設計

1.軟體流程圖

(1)主程式執行流程如圖,主程式先對顯示單元和定時器/計數器初始化,然後重複呼叫數碼管顯示模組和按鍵處理模組,當有鍵按下,則轉入相應的功能程式

否是(2)中斷服務流程圖否是

否 是

否 是否

是是中斷服務程式流程圖

(3)按鍵掃瞄流程圖

否 是

否 是

否 是是

否否是 是

否否 是

是(4)顯示函式流程圖

2.程式清單

採用c語言描寫

//採用8位led軟體解碼動態顯示程式

//使用89c51微控制器,12mhz晶振,p0輸出欄位碼,p2輸出位選碼

//用共陰極led數碼管,key0為調時位選擇鍵,key1為加1鍵,key2為減1鍵

#include

#define char unsigned char

char code

dis_7[12]=;

//共陰極led數碼管"0~9","滅"和"-"的字段碼

char code scan_con[8]=;

//位選擇碼

char data dis[8]=;

//顯示緩衝區,時,分,秒初始為0,0x0b為"-"的編碼

char data timedata[3]=;

//分別為秒,分和小時的值

char data ms50=0x00,con=0x00,con1=0x00,con2=0x00;

sbit key0=p1^0;

sbit key1=p1^1;

sbit key2=p1^2;

//1ms延時函式

delay1ms(int t)

//按鍵處理函式

keyscan()

}if(con!=0)

}}if(con!=0)

}}ea=1;

}//數碼管顯示函式

scan()}

//主函式

main()

}//定時器、計數器t0中斷服務函式

基於微控制器的電子時鐘設計

ds1302時鐘晶元具有通電自動計時的功能。向ds1302中寫入乙個初值,如寫入2011 05 01 00 00 00 星期日,在通電時,時間就會自動走 過60秒分加1 過60分時加1 過24小時天加1,星期日變成星期一 一周有7天,晶元內的周資訊每7天一迴圈 晶元能夠自動判斷每月有多少天,5月有3...

基於微控制器的電子時鐘設計報告 LCD顯示

微控制器原理及應用課程設計任務書 題目 電子時鐘 lcd顯示 1 設計要求以at89c51微控制器為核心的時鐘,在lcd顯示器上顯示當前的時間 使用字元型lcd顯示器顯示當前時間。顯示格式為 時時 分分 秒秒 用3個功能鍵操作來設定當前時間。功能鍵k1 k4功能下。k1 設定小時。k2 設定分鐘。k...

微控制器電子時鐘課程設計

鄭州華信學院 課程設計任務書 題目 簡單數字電子時鐘課程設計 專業 電氣工程及其自動化 姓名 王恆超 學號 1002120133 班級 10級電氣工程 1 班 完成期限 2013年01月05日 指導教師簽名 課程負責人簽名 2012年12月25日 課程設計報告撰寫格式 1 課程設計說明書用紙一律採用...