簡易數(shù)字鐘設計_第1頁
簡易數(shù)字鐘設計_第2頁
簡易數(shù)字鐘設計_第3頁
簡易數(shù)字鐘設計_第4頁
簡易數(shù)字鐘設計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息與電氣工程學院課程設計說明書(2014 /2015 學年第二學期)課程名稱 : 單片機課程設計 題 目 : 簡易數(shù)字鐘設計 專業(yè)班級 : 學生姓名 : 學 號: 指導教師 : 設計周數(shù) : 2周 設計成績 : 2015年 6 月 25 日1、 課程設計目的(1)綜合利用所學單片機知識完成一個單片機應用系統(tǒng)設計并在實驗室實現(xiàn),從而加深對單片機軟硬知識的理解,獲得初步的應用經(jīng)驗。(2)學習A T 8 9 C 5 1定時/計數(shù)器的原理及基本應用。(3)掌握多為數(shù)碼管動態(tài)顯示方法。(4)掌握KeiluVision2IDE的使用方法。【包括項目文件的建立,給項目添加程序件,編譯、連接項目,形成目標文

2、件,運行調(diào)試觀察結果,多文件的處理,仿真環(huán)境的設置。】(5)掌握KeilC51的調(diào)試技巧?!景ㄈ绾卧O置和刪除斷點,如何查看和修改寄存器的內(nèi)容,如 何 觀 察 和 修 改 變 量,如 何 觀 察 存 儲 器 區(qū) 域,并 行 口 的 使 用, 定 時 器 /計數(shù)器的使用,串行口的使用,外中斷的使用?!浚?)掌握PROTEUS軟件使用過程。2、 簡易數(shù)字鐘的要求及軟硬件的分析2.1簡易數(shù)字鐘的設計要求 利 用電子電 路 構 成 一個簡 易 數(shù) 字 鐘 ,該 數(shù)字鐘電路主要由C51單片機、4位共陽極數(shù)碼管、時計數(shù)、分計數(shù)器、蜂鳴器、LED燈、NPN型和PNP型三極管、按鍵、若干電阻和導線組成。其中電

3、路系統(tǒng)的分計數(shù)器采用60進制,時計數(shù)器采用24進制,。譯碼器顯示電路將時、分計數(shù)器的輸出狀態(tài)通過三個兩位共陽數(shù)碼管顯示出來。整點報時電路根據(jù)計時系統(tǒng)的輸出狀態(tài)產(chǎn)生一個脈沖信號,用蜂鳴器輸出。相 對 機 械 鐘 而 言,數(shù) 字 鐘 能 達 到 準 確 計 時 ,并 顯 示 小 時 、分 鐘,同 時 通 過 不 同 按 鍵 的 不 同 功 能 對 該 數(shù) 字 鐘 進 行 小 時 和 分 鐘 調(diào) 整 ,也 可 通 過 按 鍵 來 接 她 通 蜂 鳴 器 來 發(fā) 出 響 聲 。2.2數(shù)字鐘的軟件分析2.1.1數(shù)字鐘軟件的系統(tǒng)分析 系統(tǒng)的軟件設計也是工具系統(tǒng)功能的設計。單片機軟件的設計主要包括執(zhí)行軟件(

4、完成 各種實質(zhì)性功能)的設計和監(jiān)控軟件的設計。單片機的軟件設計通常要考慮以下幾個方面的 問題:(1)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個相對獨立的部分,設計出合理的總體 結構,使軟件開發(fā)清晰、簡潔和流程合理;(2)培養(yǎng)良好的編程風格,如考慮結構化程序設計、實行模塊化、子程序化。既便于調(diào) 試、鏈接,又便于移植和修改;(3)建立正確的數(shù)學模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù);(4)繪制程序流程圖;(5)合理分配系統(tǒng)資源;(6)為程序加入注釋,提高可讀性,實施軟件工程;(7)注意軟件的抗干擾設計,提高系統(tǒng)的可靠性。 系統(tǒng)軟件設計流程圖 這次的數(shù)字電子鐘設計用到很多子程序,它們的流程圖如

5、下所示。 主程序是先開始,然后啟動定時器,定時器啟動后在進行按鍵檢測,檢測完后,就可以顯示時間。按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加 1,如果沒有按下,就檢 測分按鍵是否按下,分按鍵如果按下,分就加1,如果沒有按下,就檢測時按鍵是否按下,時按鍵如果按下,時就加1,如果沒有按下,就把時間顯示出來。2.2.2 簡易數(shù)字鐘程序 #include #define uchar unsigned char #define uint unsigned int sbit k1 = P35; /按鍵1 sbit k2 = P34; /按鍵2 sbit k3 = P33; /按鍵3 sbit k

6、4 = P32; /按鍵4 sbit LED = P10; /LED顯示 sbit beep = P36; /蜂鳴器 int m1 = 0, m2 = 0, m3 = 0, m4 = 0; /數(shù)碼管要顯示的數(shù)字 int time_n = 0; /1s時間到標志位 int smg_n = 0; /位選控制哪個數(shù)碼管閃 int xz_flg = 0; /選擇鍵是否被按下 int shi = 0, fen = 0; miao = 0; int zd_flg = 0; /整點標志 char duan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0

7、xff;/段選編碼09null; /- /本文件函數(shù) void System_Init();/初始化函數(shù) void Smg_Scan(); /數(shù)碼管動態(tài)掃描 void Delay_1ms(uint z); /延時函數(shù) void Blink(uint wei); /數(shù)碼管閃爍函數(shù) void Key_Scan(); /按鍵掃描函數(shù) void Bao_Shi(); /整點報時/*/ void main() System_Init(); while(1) Smg_Scan(); Key_Scan(); Bao_Shi(); /*初始化子函數(shù) void System_Init() /初始化函數(shù) TMOD

8、 = 0X01; /定時器0 工作方式1 TH0 = 0X4C; /定時50000us TL0 = 0X00; EA = 1; ET0 = 1; TR0 = 1; /*延時子函數(shù) void Delay_1ms(uint z)/1ms延時函數(shù) uint x,y; for(x = z;x 0;x-) for(y = 110;y 0;y-); /*數(shù)碼管掃描子函數(shù) void Smg_Scan() P2_0= 0; /數(shù)碼管1位選通 P0 = duanm1; /送段選 Delay_1ms(1); /延時1msP2_0=1; /數(shù)碼管1位關斷P2_1=0; /數(shù)碼管2位選通 P0 = (duanm2&

9、0x7f); /送段選 Delay_1ms(1); /延時1msP2_1=1; P2_2=0; /數(shù)碼管3位選通 P0 = duanm3; /送段選 Delay_1ms(1); /延時1msP2_2=1; P2_3= 0; /數(shù)碼管4位選通 P0 = duanm4; /送段選 Delay_1ms(1); /延時1msP2_3=1; /*中斷子函數(shù) void time0() interrupt 1 /yanshi zi chengxu TH0 = 0X4C; /定時50000us TL0 = 0X00; time_n+; if(time_n = 10) /0.5s 到了嗎? LED = LED;

10、 if(xz_flg = 1) switch(smg_n) /到了0.5s 對應位的數(shù)碼管滅 case 0 : m1 = 10;Delay_1ms(500); break; case 1 : m2 = 10; Delay_1ms(500); break; case 2 : m3 = 10; Delay_1ms(500);break; case 3 : m4 = 10;Delay_1ms(500); break; if(time_n = 20) /1s 到了 time_n = 0; miao+; if(miao = 60) miao = 0; fen+; if(fen =60) zd_flg =

11、 1; /整點標志 shi+; if(shi = 24) shi = 0; m4 = fen % 10; /數(shù)碼管4顯示分鐘的低位 m3 = fen / 10; /數(shù)碼管3顯示分鐘的高位 m2 = shi % 10; /數(shù)碼管2顯示小時的低位 m1 = shi / 10; /數(shù)碼管1顯示小時的高位 /*鍵盤掃描子函數(shù)void Key_Scan() if(k1 = 0) /選擇鍵 Delay_1ms(21); /延時20ms if(k1 = 0) /按鍵1確實被按下 xz_flg = 1; /選擇鍵按下 EA = 0; smg_n+; /改變選擇的數(shù)碼管 if(smg_n = 4) smg_n

12、= 0; while(!k1) /松手檢測 Smg_Scan(); /使按下鍵時所有數(shù)碼管都亮 Delay_1ms(21); while(!k1); if(xz_flg = 1) if(k2 = 0) /加1鍵 Delay_1ms(21); if(k2 = 0)switch(smg_n)case 0 : m1+;if(m1 = 2)m1 = 0;break;case 1 : m2+;if(m2 = 10)m2 = 0;break;case 2 : m3+;if(m3 = 6)m3 = 0;break;case 3 : m4+;if(m4 = 10)m4 = 0;break;while(!k2)

13、 /松手檢測Smg_Scan(); Delay_1ms(21); while(!k2); if(k3 = 0) /減1鍵 Delay_1ms(21); if(k3 = 0) switch(smg_n) case 0 : m1-; if(m1 = -1) m1 = 2; break; case 1 : m2-; if(m2 = -1) m2 = 9; break; case 2 : m3-; if(m3 = -1) m3 = 5; break; case 3 : m4-; if(m4 = -1) m4 = 9; break; while(!k3) Smg_Scan(); Delay_1ms(21

14、); while(!k3); if(k4 = 0) /確定鍵 Delay_1ms(21); if(k4 = 0) xz_flg = 0; EA = 1; while(!k4) Smg_Scan(); Delay_1ms(21); while(!k4); /*/void Bao_Shi() uint i,j; /定義循環(huán)變量 if(zd_flg = 1) for(j=0;j3;j+) for(i=0;im1;i+) beep=!beep; /蜂鳴器開關 Delay_1ms(80); /延時80ms Delay_1ms(1000); zd_flg = 0; 2.3 簡易數(shù)字鐘硬件分析2.3.1 數(shù)

15、字鐘的總電路圖2.3.2數(shù)字鐘的硬件單元電路分析(1)最小系統(tǒng)設計圖1 單片機最小系統(tǒng)的結構圖(2)晶體 (3)常用的復位電路如下圖所示: 圖3 常用復位電路圖(4)最常用的顯示器數(shù)碼管,如下圖所示。圖4 顯示器的符號圖(5)顯示電路顯示模塊需要實時顯示當前的時間,即時、分,因此需要 4個數(shù)碼管。采用動態(tài)顯示方式顯示時間,硬件連接如下圖所示,時的十位和個位 分別顯示在第一個和第二個數(shù)碼管,分的十位和個位分別顯示在第四個和第五個數(shù)碼管,顯示器的顯示 控制方式按驅(qū)動方式可分成靜態(tài)顯示方式和動態(tài)顯示方式兩種。對于多位顯示器,通常 都是采用動態(tài)掃描的方法進行顯示,其硬件連接方式如下圖所示。圖5 數(shù)碼管

16、的硬件連接示意圖(6) 鍵盤控制電路該設計需要校對時間,所以用三個按鍵來實現(xiàn)。按 k1 來調(diào)節(jié)小時的時間,按k2來調(diào)節(jié)分針的時間。下圖是按鍵硬件連接圖。圖6 按鍵控制電路的硬件連接圖2.2.3 系統(tǒng)調(diào)試各功能模塊均調(diào)整通過后,進行整機調(diào)試,其過程如下:將調(diào)好的各功能模塊連接在一起,用函數(shù)信號發(fā)生器模擬交流電壓信號,先用仿真機代AT89C2051 單片機進行模擬調(diào)試,對每一芯片的片選、啟動進行檢測,并對數(shù)據(jù)線和地址線也進行檢測。調(diào)試成功后再將程序?qū)懙絾纹瑱C中進行調(diào)試。3 、課程設計總結 設計之初沒有一點信心,感覺設計復雜沒有一絲頭緒,但是后來結合所學的數(shù)字電子技術知識,并且與同學進行交流開始逐步

17、構想、設計、運行檢測。現(xiàn)將心得體會總結如下:(1)開始設計之前必須有一個整體的構想,考慮周到,由于接線較多一旦出現(xiàn)錯誤較難發(fā)現(xiàn)和改正,這樣可以避免后期調(diào)試時出現(xiàn)較少的問題。(2)列出幾個方案進行比較選出最簡單易行的方案,并進行理論上的排檢(3)在設計某些模塊的時候無法把握住整體,這時可以先進行小部分功能的實現(xiàn),在此基礎上進行改進,雖然可能會多花一些時間,但這比空想要有效的多。(4)電路連接盡量整潔有序,使各項功能的連接一目了然,方便查看及排查故障(5)很多難點的突破都來自于與同學的交流,交流使自己獲得更多信息,開拓了思路,因此要重視與別人的交流。(6)應該有較好的理論基礎,整個實驗都是在理論的指導下完成了,設計過程中使用了許多理論課上學的內(nèi)容,如真值表、卡諾圖等。本次設計把理論應用到了實踐中,同時通過設計,也加深了自己對理論知識的理解和掌握。總體來說,本 設 計 要 求 有 耐 心 和 細 心,有 效 合 了 理 論 與 實 踐,將 我 們 所 學

溫馨提示

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

評論

0/150

提交評論