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

下載本文檔

版權(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í)A8c51定H力計(jì)數(shù)器的原理及基本應(yīng)用。(3)掌握多為數(shù)碼管動(dòng)態(tài)顯示方法。(4)掌握KeiluVision2IDE的使用方法?!景?xiàng)目文件的建立,給項(xiàng)目添加程序件,編譯、連接項(xiàng)目,形成目標(biāo)文件,運(yùn)行調(diào)試觀察結(jié)果,多文件的處理,仿真環(huán)境的設(shè)置?!?5)掌握Kei

2、lC51的調(diào)試技巧?!景ㄈ绾卧O(shè)置和刪除斷點(diǎn),如何查看和修改寄存器的內(nèi)容,如何觀察和修改變量,如何觀察存儲(chǔ)器區(qū)域,并行口的使用定時(shí)器/計(jì)數(shù)器的使用,串行口的使用,外中斷的使用?!?6)掌握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型三極管、按鍵、若干電阻和導(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)

3、的輸出狀態(tài)產(chǎn)生一個(gè)脈沖信號(hào),用蜂鳴器輸出。相對(duì)機(jī)械鐘而言,數(shù)字鐘能達(dá)到準(zhǔn)確計(jì)時(shí),并顯示小時(shí)、分鈍同時(shí)通過不同按鍵的不同功育樹該數(shù)字鐘進(jìn)行/附和分鐘調(diào)整,也可通過按鍵來接她通蜂鳴器來發(fā)出響聲。2.2 數(shù)字鐘的軟件分析2.1.1 數(shù)字鐘軟件的系統(tǒng)分析系統(tǒng)的軟件設(shè)計(jì)也是工具系統(tǒng)功能的設(shè)計(jì)。單片機(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í)行模塊化、子程序化。既便于

4、調(diào)試、鏈接,又便于移植和修改;(3)建立正確的數(shù)學(xué)模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù);( 4)繪制程序流程圖;( 5)合理分配系統(tǒng)資源;( 6)為程序加入注釋,提高可讀性,實(shí)施軟件工程;( 7)注意軟件的抗干擾設(shè)計(jì),提高系統(tǒng)的可靠性。系統(tǒng)軟件設(shè)計(jì)流程圖這次的數(shù)字電子鐘設(shè)計(jì)用到很多子程序,它們的流程圖如下所示。主程序是先開始,然后啟動(dòng)定時(shí)器,定時(shí)器啟動(dòng)后在進(jìn)行按鍵檢測,檢測完后,就可以顯示時(shí)間。按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加1,如果沒有按下,就檢測分按鍵是否按下,分按鍵如果按下,分就加1,如果沒有按下,就檢測時(shí)按鍵是否按下,時(shí)按鍵如果按下,時(shí)就加1,如果沒有按

5、下,就把時(shí)間顯示出來。2.2.2簡易數(shù)字鐘程序#include<regx52.h>#defineucharunsignedchar#defineuintunsignedintsbitk1=P3A5;/按鍵1sbitk2=P3A4;/按鍵2sbitk3=P3A3;/按鍵3sbitk4=P3A2;/按鍵4sbitLED=P1A0;/LED顯示sbitbeep=P3A6;蜂鳴器intm1=0,m2=0,m3=0,m4=0;/數(shù)碼管要顯示的數(shù)字inttime_n=0;/1s時(shí)間到標(biāo)志位intsmg_n=0;/位選控制哪個(gè)數(shù)碼管閃intxz_flg=0;/選擇鍵是否被按下intshi=0,f

6、en=0;miao=0;intzd_flg=0;/整點(diǎn)標(biāo)志charduan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/段選編碼09null;/本文件函數(shù)voidSystem_Init();/初始化函數(shù)void Smg_Scan(); /數(shù)碼管動(dòng)態(tài)掃描2延時(shí)函數(shù)voidDelay_1ms(uintz);/4voidBlink(uintwei);/數(shù)碼管閃爍函數(shù)voidKey_Scan();/按鍵掃描函數(shù)voidBao_Shi();/整點(diǎn)報(bào)時(shí)/*/voidmain()System_Init();while(1)Smg_Scan(

7、);Key_Scan();Bao_Shi();初始化子函數(shù)/*voidSystem_Init()/初始化函數(shù)TMOD=0X01;/定時(shí)器0工作方式1定時(shí) 50000usTH0=0X4C;/TL0=0X00;EA=1;ET0=1;TR0=1;延時(shí)子函數(shù)/*voidDelay_1ms(uintz)/1ms延時(shí)函數(shù)uintx,y;for(x=z;x>0;x-)for(y=110;y>0;y-);數(shù)碼管掃描子函數(shù)/*voidSmg_Scan()P2_0=0;/數(shù)碼管1位選通P0=duanm1;/送段選Delay_1ms(1);/延時(shí)1msP2_0=1;/數(shù)碼管1位關(guān)斷P2_1=0;/數(shù)碼管

8、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;TL0 = 0X00;5/*中斷子函數(shù)voidtime0()interrupt1/yanshizichengxuTH0=0X4C;/定時(shí)50000ustime_n+;到了嗎?到了 0.5s 對(duì)應(yīng)位的數(shù)碼管滅if(time_n=10)/0.5sLED=LED;if(xz_

9、flg=1)switch(smg_n)/case0: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=1;/整點(diǎn)標(biāo)志shi+;if(shi=24)6shi=0;m1=shi/10;/m4=fen%10;/m3=fen/10;/m2=shi%

10、10;/數(shù)碼管4顯示分鐘的低位數(shù)碼管3顯示分鐘的高位數(shù)碼管2顯示小時(shí)的低位數(shù)碼管1顯示小時(shí)的高位/*鍵盤掃描子函數(shù)voidKey_Scan()if(k1=0)/選擇鍵Delay_1ms(21);/if(k1=0)/xz_flg=1;/EA=0;smg_n+;/if(smg_n=4)smg_n=0;while(!k1)/延時(shí)20ms按鍵1確實(shí)被按下選擇鍵按下改變選擇的數(shù)碼管Smg_Scan();/松手檢測使按下鍵時(shí)所有數(shù)碼管都亮8Delay_1ms(21);while(!k1);if(xz_flg=1)if(k2=0)/加1鍵Delay_1ms(21);if(k2=0)switch(smg_n)

11、case0: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)/松手檢測Smg_Scan();Delay_1ms(21);while(!k2);if(k3=0)/減1鍵Delay_1ms(21);if(k3=0)switch(smg_n)case0:m1-;if(m1=-1)m1=2;break;case1:m2-;if(m2=-1)m2=9;break;19case2:m3-;if(m3=

12、-1)m3=5;break;case3:m4-;if(m4=-1)m4=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);/*/voidBao_Shi()uinti,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);/延時(shí)80

13、msDelay_1ms(1000);zd_flg=0;2.3簡易數(shù)字鐘硬件分析2.3.1 數(shù)字鐘的總電路圖占niSPro>r«si£indlFileVienEditToolsDesignGrupbSourceOebugLibratyTcmd占beSyrtemHHp口田。事電I0國31*|#4*|1/|七翼|岑|卡產(chǎn)|他|的然|???|國川cor;¥*us一計(jì)«=>w曾/口A4牌6口.1iI6i922-1t1(ELfATB3CT1BUFTOFIBUZZERMAaifflCRfSTALELXHfi(WH14P-2*V詡獨(dú)叫出及”L£DL

14、M13&3/5L©泗HFEA3CRD2£S72FESR=SI5TC1R+制p。+WQIh2.3.2數(shù)字鐘的硬件單元電路分析(1)最小系統(tǒng)設(shè)計(jì)1011L13_14151£171S192D(2)晶體單片機(jī)P1.DP1.1P1.2P13P1.4P1.5P1.6P1.7RSTNPDP3.0bTLXDP3.1/TXDP32國P3.3/INTiP3.47T0P3取ZLP3.6/WP工7后5XTAL2XTAL1GNDATS9C5151最小系統(tǒng)CVC5O.P38_J7363534學(xué)4口393127部ROM開怡執(zhí)行24EA=O桂T序直接從J1外部-ROM開立蛆擾行二圖1單片

15、機(jī)最小系統(tǒng)的結(jié)構(gòu)圖XTAL2XTAL1I.內(nèi)部方式(3)常用的復(fù)位電路如下圖所示:VCCR2RESET1S.2KLGND圖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ù)碼管,分的十位控制方式按驅(qū)動(dòng)方式可分成靜態(tài)顯示方式和個(gè)位分別顯示在第四個(gè)和第五個(gè)數(shù)碼管,顯示器的顯示和動(dòng)態(tài)顯示方式兩種。對(duì)于多位顯示器,通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,其硬件連接方式如下圖所示。圖5數(shù)碼管的硬件連接示意圖(6)鍵盤控制電路k

16、1來調(diào)節(jié)小時(shí)的時(shí)間,按 k2該設(shè)計(jì)需要校對(duì)時(shí)間,所以用三個(gè)按鍵來實(shí)現(xiàn)。按來調(diào)節(jié)分針的時(shí)間。下圖是按鍵硬件連接圖。STC89C52圖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)行檢測,并對(duì)數(shù)據(jù)線和地址線也進(jìn)行檢測。調(diào)試成功后再將程序?qū)懙絾纹瑱C(jī)中進(jìn)行調(diào)試。3、課程設(shè)計(jì)總結(jié)設(shè)計(jì)之初沒有一點(diǎn)信心,感覺設(shè)計(jì)復(fù)雜沒有一絲頭緒,但是后來結(jié)合所學(xué)的數(shù)字電子技術(shù)知識(shí),并且與同學(xué)進(jìn)行交流開始逐步構(gòu)想、設(shè)計(jì)、運(yùn)行檢測?,F(xiàn)將心得體會(huì)

17、總結(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í)的理解和掌握??傮w來說

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論