版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 1 緒論</b></p><p> 電子鐘已成為人們?nèi)粘I钪斜夭豢缮俚奈锲?,廣泛用于個(gè)人、家庭以及車站、影院、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作帶來(lái)了極大的方便。隨著電子技術(shù)的發(fā)展,人們已不再滿足于鐘表原先最簡(jiǎn)單的報(bào)時(shí),希望出現(xiàn)一些新的功能,諸如日歷的顯示、鬧鐘的非接觸式止鬧、秒表功能、重要日期倒計(jì)時(shí)顯示等,以帶來(lái)更大的方便,而所有這些,又都是以數(shù)
2、字化的電子時(shí)鐘為基礎(chǔ)的。因此,研究數(shù)字電子鐘及其擴(kuò)展應(yīng)用,有著非?,F(xiàn)實(shí)的意義和實(shí)用價(jià)值。</p><p> 單片機(jī)是指將微處理器、一定容量的RAM和ROM以及I/O口、定時(shí)器等電路集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。89C51單片機(jī)是一種低功耗、高性能的,它采用CMOS工藝和高密度非易失性存儲(chǔ)器(NURAM)技術(shù),其輸出引腳和指令系統(tǒng)都與MCS-51兼容;片內(nèi)的Flash ROM允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的NU
3、RAM編程器來(lái)編程。因此,89C51是一種功能強(qiáng)、靈活性高,而且價(jià)格合理的單片機(jī),可以方便的利用AT89C51定時(shí)器和6位7段數(shù)碼管,設(shè)計(jì)一個(gè)電子時(shí)鐘。顯示格式位 “XX XX XX”,從左向右分別是:時(shí)、分、秒。</p><p><b> 1.1 設(shè)計(jì)目的</b></p><p> 利用MCS-51芯片及相關(guān)芯片設(shè)計(jì)數(shù)字鐘。</p><p
4、><b> 1.2 設(shè)計(jì)內(nèi)容</b></p><p><b> 1)硬件設(shè)計(jì)</b></p><p> 設(shè)計(jì)數(shù)字鐘的電路原理圖,用PROTEUS繪制硬件電路。制作實(shí)物。</p><p><b> 2)軟件設(shè)計(jì)</b></p><p> (1)時(shí)、分、秒的設(shè)置及顯
5、示;</p><p> (2)畫(huà)出程序框圖;</p><p> (3)調(diào)試與分析。用PROTEUS仿真。</p><p><b> 2 硬件設(shè)計(jì)</b></p><p> 2.1 設(shè)計(jì)的總體思路</p><p> 硬件系統(tǒng)主要由單片機(jī)最小應(yīng)用系統(tǒng)、LED數(shù)碼管顯示模塊、晶振模塊、按鍵模
6、塊等組成。在使用單片機(jī)的過(guò)程中必定會(huì)使用單片機(jī)的最小系統(tǒng),由于我購(gòu)買的單片機(jī)內(nèi)部沒(méi)有晶振,所以設(shè)計(jì)了外接的晶振模塊。鑒于本次課程設(shè)計(jì)要求制作數(shù)字鐘,所以使用了六位7段數(shù)碼管來(lái)顯示“XX XX XX”,從左向右分別是:時(shí)、分、秒。除了能上電復(fù)位,還設(shè)計(jì)了用三個(gè)按鍵實(shí)現(xiàn)時(shí)、分、秒的調(diào)制,使用方便靈活。</p><p> 2.2 單片機(jī)最小系統(tǒng)</p><p> 對(duì)51系列單片機(jī)來(lái)說(shuō),單
7、片機(jī)+晶振電路+復(fù)位電路,便組成了一個(gè)最小系統(tǒng)。見(jiàn)圖2.1。</p><p><b> 圖2.1</b></p><p><b> 2.3 晶振模塊</b></p><p> 在AT89C51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1(19腳),輸出端為引腳XTAL2(18腳)。而在芯片內(nèi)部,XTA
8、L1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。見(jiàn)圖2.2。</p><p><b> 圖2.2</b></p><p><b> 2.4 按鍵模塊</b></p><p> 用三個(gè)按鍵實(shí)現(xiàn)對(duì)時(shí)分秒的設(shè)置,其中一個(gè)
9、按鍵實(shí)現(xiàn)對(duì)時(shí)分秒的控制,接P1.4口,另外兩個(gè)按鍵接單片機(jī)的P1.5和P1.6口實(shí)現(xiàn)加一和減一的功能。</p><p> 2.5 LED數(shù)碼管顯示模塊</p><p> 本次課程設(shè)計(jì)由于要顯示時(shí)、分、秒,所以采用廣泛使用的數(shù)碼管動(dòng)態(tài)顯示接口。動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位
10、選通控制電各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各
11、位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p> 將數(shù)碼管的位選信號(hào)接P2口的六個(gè)位,段選信號(hào)接P0口的八個(gè)位。再通過(guò)Keil軟件以及51C語(yǔ)言編程實(shí)現(xiàn)數(shù)字鐘的功能。本系統(tǒng)利用6位LED數(shù)碼管顯示時(shí)間,共陰極結(jié)構(gòu),當(dāng)要顯示某個(gè)數(shù)字時(shí)只要將數(shù)字所對(duì)應(yīng)的引腳送入低電平。</
12、p><p><b> 2.6 硬件連接圖</b></p><p> 通過(guò)對(duì)設(shè)計(jì)電路的各個(gè)模塊的分析,可以用PROTEUS繪制硬件電路。如圖2.3所示。</p><p><b> 圖2.3</b></p><p><b> 2.7制作實(shí)物</b></p><
13、;p><b> ?。ㄒ?jiàn)附錄A)</b></p><p><b> 3 軟件設(shè)計(jì)</b></p><p> 單片機(jī)最主要的功能是通過(guò)程序來(lái)實(shí)現(xiàn)各種功能,有了硬件的描述,再加上軟件的編程,通過(guò)不斷的調(diào)試與修改程序就能實(shí)現(xiàn)本次課程設(shè)計(jì)的目的。</p><p> 3.1 程序流程圖</p><p
14、> 系統(tǒng)總的流程圖,見(jiàn)圖3.1。</p><p><b> 圖3.1</b></p><p> 3.2 調(diào)試與分析</p><p> 由于在焊接實(shí)物之前,我大量查閱了資料,弄明白了此次課程設(shè)計(jì)任務(wù)的基本原理,對(duì)原理有了基本的認(rèn)識(shí)后,就開(kāi)始了焊接工作。雖然焊接花費(fèi)了我大量的時(shí)間,但是在焊好以后上電時(shí),所有的數(shù)碼管都亮,說(shuō)明焊接連線
15、沒(méi)有短路情況。</p><p> 硬件連接好以后就是軟件編程,但是編寫程序中遇到了挺多問(wèn)題,比如:編寫程序是沒(méi)有消除抖動(dòng)。在同學(xué)的幫助下,使得數(shù)碼管能正常實(shí)現(xiàn)數(shù)字鐘的功能。</p><p><b> 3.3 源程序</b></p><p><b> ?。ㄒ?jiàn)附錄B)</b></p><p>&l
16、t;b> 4 心得與結(jié)論</b></p><p> 本次課程設(shè)計(jì)以AT89C51為核心部件,實(shí)現(xiàn)時(shí)間的設(shè)置功能。通過(guò)六位7段數(shù)碼管顯示可方便地校對(duì)時(shí)間,利用Keil軟件編程完成時(shí)鐘的功能。</p><p> 通過(guò)實(shí)物的焊接以及軟件的仿真和編寫程序基本完成了數(shù)字電子鐘的功能,盡量做到了硬件電路簡(jiǎn)單穩(wěn)定,減小電磁干擾和其它環(huán)境干擾,充分發(fā)揮了軟件編程的優(yōu)點(diǎn),減小了因器
17、件精度不夠引起的誤差。由于時(shí)間有限和本身知識(shí)水平的局限,我認(rèn)為此次設(shè)計(jì)還有需要改進(jìn)和提高的地方,例如選用更高精度的元器件,硬件電路更加精確穩(wěn)定等。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 楊文龍.單片機(jī)原理及應(yīng)用[M].西安電子科技大學(xué)出版社,1993.</p><p> [2] 李朝青.單片機(jī)原理及接口
18、技術(shù)[M].北京航空航天大學(xué)出版社,2003.</p><p> [3] 胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計(jì)[M].清華大學(xué)出版社,2003.</p><p> [4] 楊忠煌,黃博俊,李文昌.單芯片8051實(shí)務(wù)與應(yīng)用[M].中國(guó)水利水電出版社,2001.</p><p> [5] 王守中,51單片機(jī)開(kāi)發(fā)入門與典型實(shí)例[M].人民郵電出版社.</p>
19、;<p> [6] 黃文梅.系統(tǒng)分析與仿真:MATLAB語(yǔ)言及應(yīng)用[M].國(guó)防科技大學(xué)出版社,1999.</p><p> [7] 閻石.數(shù)字電子技術(shù)(第五版)[M].北京高等教育出版社,2006.</p><p> [8] 蔡明文,馮先成.單片機(jī)課程設(shè)計(jì)[M].華中科技大學(xué)出版社,2007.</p><p> [9] 陳明螢.8051
20、單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)材料[M].清華大學(xué)出版社,2004.</p><p> [10] 李可為.數(shù)字鐘電路及應(yīng)用[M].電子工業(yè)出版社,1996.</p><p> [11] 夏繼強(qiáng),沈德金.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程(二)[M]北航出版社,2001.</p><p> [12] 張紅潤(rùn),藍(lán)清華.單片機(jī)應(yīng)用技術(shù)教程[M]清華大學(xué)出版社,1997.</p&g
21、t;<p> [13] 周立功.單片機(jī)實(shí)驗(yàn)與實(shí)踐[M]北京航空航天大學(xué)出版社,2004.</p><p> [14] 何立民.單片機(jī)應(yīng)用文集(一)[M].北京航空航天大學(xué)出版社,1991.</p><p> [15] 方大千,鮑俏偉.使用電子控制電路[M].國(guó)防科技出版社,2003. </p><p> [16] 曾繁泰.EDA工程概論
22、[M].清華大學(xué)出版社,2002.</p><p> [17] 譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安電子科技大學(xué)出版社,2004.</p><p> [18] 李強(qiáng).鍵盤接口程序計(jì)數(shù)[J].電子設(shè)計(jì)出版社,2003.</p><p> [19] 肖來(lái)勝.單片機(jī)技術(shù)實(shí)用教程[M].華中科技大學(xué)出版社,2004.</p><p&g
23、t; [20] 楊曉川.Portel設(shè)計(jì)指導(dǎo)教程[M].清華大學(xué)出版社,2003.</p><p><b> 致謝</b></p><p> 首先,很感謝學(xué)院給我們電氣工程及其自動(dòng)化專業(yè)的學(xué)生一次把理論加深的機(jī)會(huì),使得我們更好的理解《單片機(jī)原理及接口技術(shù)》這門課程,通過(guò)實(shí)物的焊接以及軟件仿真使得自己的動(dòng)手能力有了一定的提高;其次,雖然這次課程設(shè)計(jì)是每個(gè)人制作一
24、個(gè)實(shí)物,但是大家一起討論,分析,最終調(diào)試成功,使大家的思維更加開(kāi)闊;最后,感謝余老師的研究生給予我們焊接工具的支持。</p><p><b> 附錄A</b></p><p><b> 制作的實(shí)物照片</b></p><p><b> 附錄B</b></p><p>&l
25、t;b> 源程序清單</b></p><p> #include<reg52.h></p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> uint hhh,mmm,sss;</p>
26、<p> uint status;</p><p><b> //函數(shù)聲明 </b></p><p> void delayMS(uint t) ; </p><p> void keyprocess(unsigned char key);</p><p> void display();<
27、;/p><p> void timer0();</p><p> main() //主函數(shù)</p><p><b> { </b></p><p> ucharsegcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0,1,2,3
28、,4,5,6,7,8,9</p><p> uchar dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//數(shù)碼管位選碼</p><p> buffer[]={0,0,0,0,0,0,0,0};</p><p> bit keyrel;</p><p> uchar buf;</p>
29、<p> uchar keyin;</p><p><b> keyrel=1;</b></p><p><b> buf=0xff;</b></p><p> TMOD=0x01; //T0工作在方式1,16位計(jì)數(shù)器</p><p> TH0=(65536-100
30、0)/256;// 定時(shí)器0設(shè)置延時(shí)1ms中斷初始值</p><p> TL0=(65536-1000)%256; </p><p> TR0=1; </p><p> IE=0x82; //開(kāi)定時(shí)器0中斷</p><p><b> status=0;</b></p>&l
31、t;p><b> //延時(shí)函數(shù)</b></p><p> void delayMS(uint t) // 晶振頻率12MHZ</p><p><b> {</b></p><p><b> uint i;</b></p><p> while(t--)
32、</p><p> for(i=0;i<125;i++);</p><p><b> }</b></p><p> while(1) //鍵掃描程序 </p><p> { </p><p> keyin=P1&0xf0;</
33、p><p> if(keyin!=0xf0) </p><p><b> { </b></p><p> delayMS(10);</p><p> if(keyin!=0xf0)</p><p><b> {</b></p><p>
34、 if(keyrel==1)</p><p><b> {</b></p><p><b> keyrel=0;</b></p><p> buf = keyin; //buf用來(lái)暫時(shí)存放鍵值</p><p><b> }</b></p><p
35、><b> else</b></p><p><b> {</b></p><p><b> keyrel=1;</b></p><p> keyprocess(buf); //調(diào)用按鍵處理函數(shù)</p><p> buf = 0xff;</p>
36、<p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> keyrel=1;</b></
37、p><p> keyprocess(buf);</p><p><b> buf=0xff;</b></p><p><b> } </b></p><p> display();</p><p><b> }</b></p>&l
38、t;p><b> }</b></p><p><b> //按鍵處理函數(shù)</b></p><p> void keyprocess(unsigned char key) //鍵值處理,正常計(jì)時(shí),設(shè)置時(shí)分秒</p><p> { switch (key)</p><p><b&
39、gt; {</b></p><p> case 0xe0:status++; //按下設(shè)置鍵</p><p> if (status>=4) status = 0; </p><p><b> break;</b></p><p> case 0xd0:switch(status
40、) //按下加1鍵,3種模式下加1</p><p><b> {</b></p><p> case 0x01:if(hhh<24) hhh++;</p><p> else hhh=0; break; </p><p> case 0x02:if(mmm<60) mmm++;</p
41、><p> else mmm=0; break;</p><p> case 0x03:if(sss<60) sec++;</p><p> else sss=0; break; </p><p><b> }</b></p><p><b> break;&l
42、t;/b></p><p> case 0xb0:switch(status) //按下減1鍵</p><p><b> {</b></p><p> case 0x01:if(hhh>0) hhh--;</p><p> else hour=23; break;</p><
43、;p> case 0x02:if(mmm>0) mmm--;</p><p> else min=59; break;</p><p> case 0x03:if(sss>0) sss--;</p><p> else sss=59; break; </p><p><b> }<
44、/b></p><p><b> break; </b></p><p> default:break;</p><p><b> }</b></p><p><b> }</b></p><p><b> //數(shù)碼管顯示函數(shù)&
45、lt;/b></p><p> void display()</p><p><b> {</b></p><p><b> uchar i;</b></p><p><b> //正常計(jì)時(shí)顯示</b></p><p><b>
46、 {</b></p><p> buffer[0]=hhh/10; // 顯示時(shí)的十位</p><p> buffer[1]=hhh%10 // 顯示時(shí)的個(gè)位</p><p> buffer[2]=mmm/10; // 顯示分的十位</p><p> buffer[3]=mmm
47、%10; // 顯示分的個(gè)位</p><p> buffer[4]=sss/10; // 顯示秒的十位</p><p> buffer[5]=sss%10; // 顯示秒的個(gè)位</p><p> for(i=0;i<6;i++)</p><p><b> { </b
48、></p><p> P0=segcode[buffer[i]];</p><p> P2=dispbit[i];</p><p> delayMS(1); //防止數(shù)碼管顯示的時(shí)候閃動(dòng)</p><p> P2=0xff; //</p><p><b> P0=0xff;
49、</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //定時(shí)器0中斷函數(shù)</p><p> void timer0() interrupt 1
50、 using 2 </p><p><b> { </b></p><p> static uint count;</p><p> TH0=(65536-1000)/256; // 定時(shí)器0設(shè)置初始值1ms中斷初始值</p><p> TL0=(65536-1000)%256; </p&g
51、t;<p><b> TR0=1;</b></p><p> count++; //正常計(jì)時(shí)</p><p> if(count>=1000) // 定時(shí) 1S 到,以下為時(shí)鐘的正常走鐘邏輯</p><p> { </p><p><
52、b> count=0;</b></p><p><b> sss++;</b></p><p> if(sss>60)</p><p> { </p><p> sss=0; mmm++;</p><p> if(mmm>60
53、) </p><p> { </p><p> mmm=0; hhh++;</p><p> if(hhh>24) </p><p><b> { </b></p><p><b> hhh=0; </b></p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)(電子鐘)
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 電子鐘課程設(shè)計(jì)--基于單片機(jī)的電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)---智能電子鐘
- 單片機(jī)原理課程設(shè)計(jì)--電子鐘
- 單片機(jī)數(shù)字電子鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)-智能電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)單電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告-電子鐘設(shè)計(jì)
- 單片機(jī)電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)的電子鐘設(shè)計(jì)
- 基于單片機(jī)的電子鐘課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論