




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、信息與電氣工程學(xué)院課程設(shè)計(jì)說明書(2014 /2015 學(xué)年第二學(xué)期)課程名稱 : 單片機(jī)課程設(shè)計(jì) 題 目 : 簡易數(shù)字鐘設(shè)計(jì) 專業(yè)班級(jí) : 學(xué)生姓名 : 學(xué) 號(hào): 指導(dǎo)教師 : 設(shè)計(jì)周數(shù) : 2周 設(shè)計(jì)成績 : 2015年 6 月 25 日1、 課程設(shè)計(jì)目的(1)綜合利用所學(xué)單片機(jī)知識(shí)完成一個(gè)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)并在實(shí)驗(yàn)室實(shí)現(xiàn),從而加深對(duì)單片機(jī)軟硬知識(shí)的理解,獲得初步的應(yīng)用經(jīng)驗(yàn)。(2)學(xué)習(xí)A T 8 9 C 5 1定時(shí)/計(jì)數(shù)器的原理及基本應(yīng)用。(3)掌握多為數(shù)碼管動(dòng)態(tài)顯示方法。(4)掌握Keil uVision2 IDE的使用方法?!景?xiàng)目文件的建立,給項(xiàng)目添加程序件,編
2、譯、連接項(xiàng)目,形成目標(biāo)文件,運(yùn)行調(diào)試觀察結(jié)果,多文件的處理,仿真環(huán)境的設(shè)置。】(5)掌握Keil C51的調(diào)試技巧?!景ㄈ绾卧O(shè)置和刪除斷點(diǎn),如何查看和修改寄存器的內(nèi)容,如 何 觀 察 和 修 改 變 量,如 何 觀 察 存 儲(chǔ) 器 區(qū) 域,并 行 口 的 使 用, 定 時(shí) 器 /計(jì)數(shù)器的使用,串行口的使用,外中斷的使用?!浚?)掌握PROTEUS軟件使用過程。2、 簡易數(shù)字鐘的要求及軟硬件的分析2.1簡易數(shù)字鐘的設(shè)計(jì)要求 利 用電子電 路 構(gòu) 成 一個(gè)簡 易 數(shù) 字 鐘 ,該 數(shù)字鐘電路主要由C51單片機(jī)、4位共陽極數(shù)碼管、時(shí)計(jì)數(shù)、分計(jì)數(shù)器、蜂鳴器、LED燈、NPN型和PNP型三極
3、管、按鍵、若干電阻和導(dǎo)線組成。其中電路系統(tǒng)的分計(jì)數(shù)器采用60進(jìn)制,時(shí)計(jì)數(shù)器采用24進(jìn)制,。譯碼器顯示電路將時(shí)、分計(jì)數(shù)器的輸出狀態(tài)通過三個(gè)兩位共陽數(shù)碼管顯示出來。整點(diǎn)報(bào)時(shí)電路根據(jù)計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生一個(gè)脈沖信號(hào),用蜂鳴器輸出。相 對(duì) 機(jī) 械 鐘 而 言,數(shù) 字 鐘 能 達(dá) 到 準(zhǔn) 確 計(jì) 時(shí) ,并 顯 示 小 時(shí) 、分 鐘,同 時(shí) 通 過 不 同 按 鍵 的 不 同 功 能 對(duì) 該 數(shù) 字 鐘 進(jìn) 行 小 時(shí) 和 分 鐘 調(diào) 整 ,也 可 通 過 按 鍵 來 接 她 通 蜂 鳴 器 來 發(fā) 出 響 聲 。2.2數(shù)字鐘的軟件分析2.1.1數(shù)字鐘軟件的系統(tǒng)分析 系統(tǒng)的軟件設(shè)計(jì)也是工具系統(tǒng)功能的設(shè)計(jì)
4、。單片機(jī)軟件的設(shè)計(jì)主要包括執(zhí)行軟件(完成 各種實(shí)質(zhì)性功能)的設(shè)計(jì)和監(jiān)控軟件的設(shè)計(jì)。單片機(jī)的軟件設(shè)計(jì)通常要考慮以下幾個(gè)方面的 問題:(1)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個(gè)相對(duì)獨(dú)立的部分,設(shè)計(jì)出合理的總體 結(jié)構(gòu),使軟件開發(fā)清晰、簡潔和流程合理;(2)培養(yǎng)良好的編程風(fēng)格,如考慮結(jié)構(gòu)化程序設(shè)計(jì)、實(shí)行模塊化、子程序化。既便于調(diào) 試、鏈接,又便于移植和修改;(3)建立正確的數(shù)學(xué)模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù);(4)繪制程序流程圖;(5)合理分配系統(tǒng)資源;(6)為程序加入注釋,提高可讀性,實(shí)施軟件工程;(7)注意軟件的抗干擾設(shè)計(jì),提高系統(tǒng)的可靠性。 系統(tǒng)軟件設(shè)計(jì)流程圖 這次的數(shù)字電子
5、鐘設(shè)計(jì)用到很多子程序,它們的流程圖如下所示。 主程序是先開始,然后啟動(dòng)定時(shí)器,定時(shí)器啟動(dòng)后在進(jìn)行按鍵檢測(cè),檢測(cè)完后,就可以顯示時(shí)間。按鍵處理是先檢測(cè)秒按鍵是否按下,秒按鍵如果按下,秒就加 1,如果沒有按下,就檢 測(cè)分按鍵是否按下,分按鍵如果按下,分就加1,如果沒有按下,就檢測(cè)時(shí)按鍵是否按下,時(shí)按鍵如果按下,時(shí)就加1,如果沒有按下,就把時(shí)間顯示出來。2.2.2 簡易數(shù)字鐘程序 #include <regx52.h> #define uchar unsigned char #define uint unsigned int sbit k1 = P35; /按鍵1 sbit k2 = P
6、34; /按鍵2 sbit k3 = P33; /按鍵3 sbit k4 = 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時(shí)間到標(biāo)志位 int smg_n = 0; /位選控制哪個(gè)數(shù)碼管閃 int xz_flg = 0; /選擇鍵是否被按下 int shi = 0, fen = 0; miao = 0; int zd_flg = 0; /整點(diǎn)標(biāo)志 char duan=0xc0,0xf9,0xa4,0
7、xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/段選編碼09null; /- /本文件函數(shù) void System_Init();/初始化函數(shù) void Smg_Scan(); /數(shù)碼管動(dòng)態(tài)掃描 void Delay_1ms(uint z); /延時(shí)函數(shù) void Blink(uint wei); /數(shù)碼管閃爍函數(shù) void Key_Scan(); /按鍵掃描函數(shù) void Bao_Shi(); /整點(diǎn)報(bào)時(shí)/*/ void main() System_Init(); while(1) Smg_Scan(); Key_Scan(); Bao_Shi(); /*初始
8、化子函數(shù) void System_Init() /初始化函數(shù) TMOD = 0X01; /定時(shí)器0 工作方式1 TH0 = 0X4C; /定時(shí)50000us TL0 = 0X00; EA = 1; ET0 = 1; TR0 = 1; /*延時(shí)子函數(shù) void Delay_1ms(uint z)/1ms延時(shí)函數(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); /延時(shí)1msP2_
9、0=1; /數(shù)碼管1位關(guān)斷P2_1=0; /數(shù)碼管2位選通 P0 = (duanm2& 0x7f); /送段選 Delay_1ms(1); /延時(shí)1msP2_1=1; P2_2=0; /數(shù)碼管3位選通 P0 = duanm3; /送段選 Delay_1ms(1); /延時(shí)1msP2_2=1; P2_3= 0; /數(shù)碼管4位選通 P0 = duanm4; /送段選 Delay_1ms(1); /延時(shí)1msP2_3=1; /*中斷子函數(shù) void time0() interrupt 1 /yanshi zi chengxu TH0 = 0X4C; /定時(shí)50000us TL0 = 0X00
10、; time_n+; if(time_n = 10) /0.5s 到了嗎? LED = LED; if(xz_flg = 1) switch(smg_n) /到了0.5s 對(duì)應(yīng)位的數(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
11、(miao = 60) miao = 0; fen+; if(fen =60) zd_flg = 1; /整點(diǎn)標(biāo)志 shi+; if(shi = 24) shi = 0; m4 = fen % 10; /數(shù)碼管4顯示分鐘的低位 m3 = fen / 10; /數(shù)碼管3顯示分鐘的高位 m2 = shi % 10; /數(shù)碼管2顯示小時(shí)的低位 m1 = shi / 10; /數(shù)碼管1顯示小時(shí)的高位 /*鍵盤掃描子函數(shù)void Key_Scan() if(k1 = 0) /選擇鍵 Delay_1ms(21); /延時(shí)20ms if(k1 = 0) /按鍵1確實(shí)被按下 xz_flg = 1; /選擇鍵按
12、下 EA = 0; smg_n+; /改變選擇的數(shù)碼管 if(smg_n = 4) smg_n = 0; while(!k1) /松手檢測(cè) Smg_Scan(); /使按下鍵時(shí)所有數(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
13、;case 3 : m4+;if(m4 = 10)m4 = 0;break;while(!k2) /松手檢測(cè)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
14、 = 9; break; while(!k3) Smg_Scan(); Delay_1ms(21); 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;j<3;j+) for(i=0;i<m1;i+) beep=!beep; /蜂鳴器開關(guān) Delay_1ms(80); /
15、延時(shí)80ms Delay_1ms(1000); zd_flg = 0; 2.3 簡易數(shù)字鐘硬件分析2.3.1 數(shù)字鐘的總電路圖2.3.2數(shù)字鐘的硬件單元電路分析(1)最小系統(tǒng)設(shè)計(jì)圖1 單片機(jī)最小系統(tǒng)的結(jié)構(gòu)圖(2)晶體 (3)常用的復(fù)位電路如下圖所示: 圖3 常用復(fù)位電路圖(4)最常用的顯示器數(shù)碼管,如下圖所示。圖4 顯示器的符號(hào)圖(5)顯示電路顯示模塊需要實(shí)時(shí)顯示當(dāng)前的時(shí)間,即時(shí)、分,因此需要 4個(gè)數(shù)碼管。采用動(dòng)態(tài)顯示方式顯示時(shí)間,硬件連接如下圖所示,時(shí)的十位和個(gè)位 分別顯示在第一個(gè)和第二個(gè)數(shù)碼管,分的十位和個(gè)位分別顯示在第四個(gè)和第五個(gè)數(shù)碼管,顯示器的顯示 控制方式按驅(qū)動(dòng)方式可分成靜態(tài)顯示方式
16、和動(dòng)態(tài)顯示方式兩種。對(duì)于多位顯示器,通常 都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,其硬件連接方式如下圖所示。圖5 數(shù)碼管的硬件連接示意圖(6) 鍵盤控制電路該設(shè)計(jì)需要校對(duì)時(shí)間,所以用三個(gè)按鍵來實(shí)現(xiàn)。按 k1 來調(diào)節(jié)小時(shí)的時(shí)間,按k2來調(diào)節(jié)分針的時(shí)間。下圖是按鍵硬件連接圖。圖6 按鍵控制電路的硬件連接圖2.2.3 系統(tǒng)調(diào)試各功能模塊均調(diào)整通過后,進(jìn)行整機(jī)調(diào)試,其過程如下:將調(diào)好的各功能模塊連接在一起,用函數(shù)信號(hào)發(fā)生器模擬交流電壓信號(hào),先用仿真機(jī)代AT89C2051 單片機(jī)進(jìn)行模擬調(diào)試,對(duì)每一芯片的片選、啟動(dòng)進(jìn)行檢測(cè),并對(duì)數(shù)據(jù)線和地址線也進(jìn)行檢測(cè)。調(diào)試成功后再將程序?qū)懙絾纹瑱C(jī)中進(jìn)行調(diào)試。3 、課程設(shè)計(jì)總結(jié)
17、 設(shè)計(jì)之初沒有一點(diǎn)信心,感覺設(shè)計(jì)復(fù)雜沒有一絲頭緒,但是后來結(jié)合所學(xué)的數(shù)字電子技術(shù)知識(shí),并且與同學(xué)進(jìn)行交流開始逐步構(gòu)想、設(shè)計(jì)、運(yùn)行檢測(cè)?,F(xiàn)將心得體會(huì)總結(jié)如下: (1)開始設(shè)計(jì)之前必須有一個(gè)整體的構(gòu)想,考慮周到,由于接線較多一旦出現(xiàn)錯(cuò)誤較難發(fā)現(xiàn)和改正,這樣可以避免后期調(diào)試時(shí)出現(xiàn)較少的問題。(2)列出幾個(gè)方案進(jìn)行比較選出最簡單易行的方案,并進(jìn)行理論上的排檢(3)在設(shè)計(jì)某些模塊的時(shí)候無法把握住整體,這時(shí)可以先進(jìn)行小部分功能的實(shí)現(xiàn),在此基礎(chǔ)上進(jìn)行改進(jìn),雖然可能會(huì)多花一些時(shí)間,但這比空想要有效的多。(4)電路連接盡量整潔有序,使各項(xiàng)功能的連接一目了然,方便查看及排查故障(5)很多難點(diǎn)的突破都來自于與同學(xué)的交流,交流使自己獲得更多信息,開拓了思路,因此要重視與別人的交流。(6)應(yīng)該有較好的理論基礎(chǔ),整個(gè)實(shí)驗(yàn)都是在理論的指導(dǎo)下完成了,設(shè)計(jì)過程中使用了許多理論課上學(xué)的內(nèi)容,如真值表、卡諾圖等。本次設(shè)計(jì)把理論應(yīng)用到了實(shí)踐中,同時(shí)通過設(shè)計(jì),也加深了自己對(duì)理論知識(shí)的理解和掌握。總體來說,本 設(shè) 計(jì) 要 求 有 耐 心 和 細(xì) 心,有 效 合 了 理 論 與 實(shí) 踐,將 我 們 所 學(xué) 的 書 本 知 識(shí) 運(yùn) 用 于 實(shí) 踐,培養(yǎng)了我 們 發(fā) 現(xiàn) 和 解 決 問 題 的 能 力。 參考文獻(xiàn):
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- “十三五”重點(diǎn)項(xiàng)目-龍膽碳酸氫鈉項(xiàng)目可行性研究報(bào)告
- 專題07以拋物線為情境的定點(diǎn)問題-拋物線必會(huì)十大基本題型講與練(原卷版)-高考數(shù)學(xué)圓錐曲線部分必會(huì)十大基本題型
- 2024-2025學(xué)年高中物理第一章靜電場(chǎng)第9節(jié)帶電粒子在電場(chǎng)中的運(yùn)動(dòng)課時(shí)訓(xùn)練含解析新人教版選修3-1
- 2024-2025學(xué)年高中物理2.3勻變速直線運(yùn)動(dòng)的位移與時(shí)間的關(guān)系教案新人教版必修1
- 2024-2025學(xué)年高中語文第二單元難以忘懷的故事5鈴蘭花學(xué)案蘇教版選修現(xiàn)代散文蚜
- 2024-2025學(xué)年高中物理第四章電磁波及其應(yīng)用四信息化社會(huì)練習(xí)含解析新人教版選修1-1
- 2024-2025學(xué)年高中物理第4章第4節(jié)核力與結(jié)合能教案粵教版選修3-5
- 如何編寫生物質(zhì)氣化爐項(xiàng)目可行性研究報(bào)告
- 中國二手物品交易平臺(tái)行業(yè)市場(chǎng)調(diào)研及投資規(guī)劃建議報(bào)告
- 2025年中國嬰兒背帶行業(yè)市場(chǎng)深度研究及投資戰(zhàn)略規(guī)劃報(bào)告
- 2025年02月黃石市殘聯(lián)專門協(xié)會(huì)公開招聘工作人員5人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2024-2025學(xué)年第二學(xué)期開學(xué)典禮-開學(xué)典禮校長致辭
- GB/T 15561-2024數(shù)字指示軌道衡
- 網(wǎng)絡(luò)保險(xiǎn)風(fēng)險(xiǎn)評(píng)估-洞察分析
- 呼吸機(jī)濕化的護(hù)理
- 2025-2030年中國旅居康養(yǎng)行業(yè)全國市場(chǎng)開拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2024“五史”全文課件
- 食品檢驗(yàn)員聘用合同樣本
- 六年級(jí)信息技術(shù)下冊(cè)教學(xué)計(jì)劃
- 2025年九年級(jí)數(shù)學(xué)中考復(fù)習(xí)計(jì)劃
- 《汽車專業(yè)英語》2024年課程標(biāo)準(zhǔn)(含課程思政設(shè)計(jì))
評(píng)論
0/150
提交評(píng)論