版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)</b></p><p> 基于51單片機(jī)的數(shù)字時(shí)鐘的設(shè)計(jì)</p><p> 學(xué)生姓名: </p><p> 學(xué)生學(xué)號(hào): </p><p> 院(系): </p><p><b> 年級(jí)專業(yè): &
2、lt;/b></p><p><b> 指導(dǎo)教師: </b></p><p><b> 二〇一一年六月</b></p><p><b> 摘 要</b></p><p> 本文設(shè)計(jì)的是一個(gè)基于單片機(jī)AT89C51的數(shù)字鐘自動(dòng)計(jì)時(shí)器,附有復(fù)位電路,顯示電路,按
3、鍵電路等。復(fù)位電路是單片機(jī)的初始化操作,除了正常的初始化外,為擺脫困境,通過(guò)復(fù)位電路可以重新開(kāi)始。時(shí)鐘電路采用12MHz的晶振,作為系統(tǒng)的時(shí)鐘源,具有較高的準(zhǔn)確性。</p><p> 在上電時(shí)LED顯示器開(kāi)始顯示時(shí)間并自動(dòng)計(jì)時(shí),在按鍵電路中只設(shè)置了三個(gè)按鍵,通過(guò)檢測(cè)第一個(gè)按鍵按下的次數(shù)來(lái)實(shí)現(xiàn)調(diào)時(shí)、調(diào)分、調(diào)秒按鍵的作用,再通過(guò)LED顯示器顯示時(shí)、分、秒的改變。并且在P1端口處接了一個(gè)指示燈,指示按鍵的按下。在這里
4、主要是以AT89C51單片機(jī)為核心控制器,P0口接LED顯示模塊,P1口接按鍵的,通過(guò)按鍵輸入來(lái)控制顯示器的顯示。</p><p> 關(guān)鍵字 AT89C51,LED顯示器,數(shù)字時(shí)鐘</p><p><b> ABSTRACT</b></p><p> This design is based on AT89C51 single-chip
5、 digital clock auto-timer, with a reset circuit, display circuit, the key circuit. Reset circuit is a microcontroller initialization, in addition to the normal initialization, for the bail out through the reset circuit c
6、an begin again. 12MHz crystal clock circuit, as the system clock source, with high accuracy. </p><p> LED display on power began to show time and automatic timing, set in the key circuit only three buttons,
7、 a button pressed by detecting the number of the first to achieve the transfer, the transfer points, transfer second key role, through the LED display hours, minutes, seconds to change. And then at the P1 port of a light
8、 to indicate the button press. Here is AT89C51 microcontroller as the core of the main controller, P0 port access the LED display module, P1 port access keys, keystrokes to con</p><p> Keywords AT89C51, L
9、ED display, digital clock </p><p><b> 目 錄</b></p><p><b> 摘要Ⅰ</b></p><p> ABSTRACTⅡ</p><p><b> 1 緒論2</b></p><p>
10、 1.1課程設(shè)計(jì)要求2</p><p> 1.2課程設(shè)計(jì)的基本原理2</p><p><b> 2 硬件設(shè)計(jì)3</b></p><p> 2.1振蕩電路的設(shè)計(jì)3</p><p> 2.2復(fù)位電路的設(shè)計(jì)3</p><p> 2.3 鍵盤(pán)接口電路設(shè)計(jì)4</p>&
11、lt;p> 2.4 顯示電路的設(shè)計(jì)4</p><p> 2.5整體電路的設(shè)計(jì)5</p><p><b> 3軟件設(shè)計(jì)6</b></p><p> 3.1 單片機(jī)資源使用6</p><p> 3.2 定時(shí)計(jì)數(shù)器中斷子函數(shù)6</p><p> 3.3判鍵子函數(shù)7</
12、p><p> 3.4按鍵調(diào)試流程8</p><p><b> 4仿真與測(cè)試9</b></p><p><b> 4.1自動(dòng)計(jì)時(shí)9</b></p><p><b> 4.2按鈕調(diào)時(shí)9</b></p><p><b> 心得體會(huì)10
13、</b></p><p><b> 參考文獻(xiàn)11</b></p><p><b> 附錄12</b></p><p><b> 1 緒 論 </b></p><p><b> 1.1課程設(shè)計(jì)要求</b></p>&l
14、t;p> 1. 應(yīng)用MCS-51單片機(jī)設(shè)計(jì)單片機(jī)實(shí)現(xiàn)數(shù)字鐘(LED顯示:小時(shí)、分、秒)仿真電路;</p><p> 2. 選用8位LED數(shù)碼顯示,實(shí)時(shí)顯示時(shí)、分、秒,采用組合按鍵實(shí)現(xiàn)時(shí)鐘對(duì)表功能,能調(diào)時(shí)、調(diào)分、調(diào)秒;</p><p> 3. 要求顯示范圍最大到23小時(shí)59分59秒,用定時(shí)中斷來(lái)實(shí)現(xiàn)。</p><p><b> 4.用鍵選位。&
15、lt;/b></p><p> 1.2課程設(shè)計(jì)基本原理</p><p> 通過(guò)對(duì)以上功能要求可知其基本原理,以AT89C51單片機(jī)為核心控制器,P0口接LED顯示模塊,P1口接按鍵,通過(guò)按鍵輸入來(lái)控制顯示器的顯示。在上電時(shí)LED顯示器開(kāi)始顯示時(shí)間并自動(dòng)計(jì)時(shí),自動(dòng)計(jì)時(shí)采用單片機(jī)內(nèi)部T0中斷實(shí)現(xiàn),在按鍵電路中只設(shè)置了三個(gè)按鍵,通過(guò)檢測(cè)第一個(gè)按鍵按下的次數(shù)來(lái)實(shí)現(xiàn)調(diào)時(shí)、調(diào)分、調(diào)秒按鍵的作
16、用,再通過(guò)LED顯示器顯示時(shí)、分、秒的改變。</p><p><b> 2 硬件設(shè)計(jì)</b></p><p> 2.1振蕩電路的設(shè)計(jì)</p><p> 單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過(guò)這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容(電容和一般取33pF)。這樣就構(gòu)成一個(gè)穩(wěn)定
17、的自激振蕩器。 振蕩電路脈沖經(jīng)過(guò)二分頻后作為系統(tǒng)的時(shí)鐘信號(hào),再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ALE信號(hào),此時(shí)得到的信號(hào)時(shí)機(jī)器周期信號(hào)。振蕩電路如圖2.1所示:</p><p> 圖2.1 振蕩電路</p><p> 2.2復(fù)位電路的設(shè)計(jì) </p><p> 復(fù)位操作有兩種基本形
18、式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位具有上電復(fù)位功能外,若要復(fù)位,只要按圖中的RESET鍵,電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個(gè)復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過(guò)外部電容充電來(lái)實(shí)現(xiàn)單片機(jī)自動(dòng)復(fù)位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時(shí)間(2個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。按鍵復(fù)位電路圖如圖2.2所示。&
19、lt;/p><p> 圖2.2 復(fù)位電路</p><p> 鍵盤(pán)接口電路的設(shè)計(jì) </p><p> 獨(dú)立式鍵盤(pán):獨(dú)立式鍵盤(pán)中,每個(gè)按鍵占用一根I/O口線,每個(gè)按鍵電路相對(duì)獨(dú)立。I/O口通過(guò)按鍵與地相連,I/O口有上拉電阻
20、,無(wú)鍵按下時(shí),引腳端為高電平,有鍵按下時(shí),引腳電平被拉低。I/O口內(nèi)部有上拉電阻時(shí),外部可不接上拉電阻。鍵盤(pán)接口電路如圖2.3所示:</p><p> 圖2.3 鍵盤(pán)接口電路</p><p> 2.4顯示電路的設(shè)計(jì)</p><p> 對(duì)于現(xiàn)實(shí)電路我們可以采用數(shù)碼管,也可以采用液晶顯示在這里我采用8位的LED顯示器。顯示電路如圖2.4所示: </
21、p><p> 圖2.4 顯示電路 </p><p> 2.5整體電路的設(shè)計(jì)</p><p> 圖2.5 整體電路設(shè)計(jì)</p><p><b> 3 軟件設(shè)計(jì)</b></p><p> 3.1單片機(jī)資源使用</p><p> 在本次設(shè)計(jì)中像電路鍵盤(pán)用到了P1口,
22、其中P1.0到P1.2口作為鍵盤(pán)的輸入,指示燈用P1.4口控制,LED顯示用到了P0口和P3口,P0口外接鎖存器控制LED顯示的段選,P3口控制LED顯示的位選。</p><p> 3.2定時(shí)計(jì)數(shù)器中斷子函數(shù)</p><p> 對(duì)于中斷程序,只要定時(shí)器計(jì)數(shù)滿就會(huì)產(chǎn)生中斷50ms中斷一次,共計(jì)20次,秒鐘加1,秒鐘計(jì)滿60秒,分鐘加1,分鐘記滿60,小時(shí)加1.當(dāng)小時(shí)加到23時(shí)全部清零。
23、以下是中斷子函數(shù)的流程圖如圖3.1所示:</p><p> 圖3.2 定時(shí)計(jì)數(shù)器中斷子函數(shù)流程圖</p><p> 3.3 判鍵子函數(shù)</p><p> 對(duì)于獨(dú)立式鍵盤(pán)判鍵,首先看有鍵按下不,如果有鍵按下則延時(shí)一會(huì)兒,在判斷是否真的有鍵按下,如果確實(shí)有鍵按下,在判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖3.2所示: </p&g
24、t;<p> 圖3.3 判鍵子程序流程圖</p><p><b> 3.4按鍵調(diào)時(shí)流程</b></p><p> 按鍵k1為選調(diào)按鈕,當(dāng)con=1時(shí)為調(diào)秒,con=2時(shí)為調(diào)分按鈕,con=3時(shí)為調(diào)時(shí)按鈕,con=4時(shí)退出按鈕調(diào)節(jié)。k3、k2按鈕分別為調(diào)減和調(diào)增按鈕。</p><p> 圖3.4 按鍵調(diào)時(shí)流程圖<
25、;/p><p><b> 4 仿真與測(cè)試</b></p><p><b> 4.1自動(dòng)計(jì)時(shí)</b></p><p> 圖4.1 自動(dòng)計(jì)時(shí)仿真</p><p><b> 4.2按鈕調(diào)試</b></p><p> 圖4.2 調(diào)試仿真</p&
26、gt;<p><b> 心得體會(huì)</b></p><p> 通過(guò)這次的課程設(shè)計(jì)讓我學(xué)到了很多東西,也夯實(shí)了我在書(shū)本上所學(xué)的知識(shí),通過(guò)一個(gè)課題的設(shè)計(jì),讓我明白了如何很好的設(shè)計(jì)一個(gè)項(xiàng)目,從課題的入手到中間過(guò)程的修改的設(shè)置,再到最后的仿真與測(cè)試。每一個(gè)過(guò)程自己都去親自實(shí)施和設(shè)計(jì)從而讓自己在這個(gè)過(guò)程中學(xué)到了自己應(yīng)該熟練掌握的知識(shí)和技能。</p><p>
27、編程軟件keil的使用自己通過(guò)這次的課程設(shè)計(jì)也已熟練掌握了,并且自己的編程能力也得到了好大的提高,仿真測(cè)試軟件proteus自己也很好的掌握了,自己能夠獨(dú)立的應(yīng)用proteus完成各項(xiàng)仿真與測(cè)試。</p><p> 總之,這一次的單片機(jī)課程設(shè)計(jì)讓我學(xué)到了很多有用的知識(shí)和技能。</p><p><b> 參考文獻(xiàn)</b></p><p>
28、[1] 李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)[M].第3版.北京航空航天大學(xué)出版社,2007年1月</p><p> [2]李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M].北京航空航天大學(xué)出版社,1996</p><p> [3] 馬忠梅,張凱,馬巖,單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì),[M],北京:北京航空航天大學(xué)出版社,2003.11;</p><p> [4] 胡
29、輝,單片機(jī)原理及應(yīng)用設(shè)計(jì)—21世紀(jì)高等院校規(guī)劃教材[M],水利水電出版社,2005.7;</p><p> [5] 劉守義,單片機(jī)應(yīng)用技術(shù)[M],西安:西安電子科技大學(xué)出版社,1996.8;</p><p><b> 附 錄</b></p><p><b> 數(shù)字時(shí)鐘源代碼</b></p><p
30、> //本程序?qū)崿F(xiàn)一個(gè)按鈕來(lái)控制兩個(gè)按鈕功能,按一下調(diào)秒(調(diào)增或減),</p><p> //按兩下調(diào)分(增或減),按三下時(shí)(增或減),按四下時(shí)退出。</p><p> #include<reg51.h></p><p> unsigned int m=0,f=0,s=0,con=0;</p><p> uns
31、igned char</p><p> d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};//段選</p><p> unsigned char x=0x00;</p><p> #define uint unsigned int</p><p&
32、gt; #define uchar unsigned char</p><p> sbit k1=P1^0;//按鈕</p><p> sbit k2=P1^1;</p><p> sbit k3=P1^2;</p><p> sbit s1=P1^4;</p><p> void delay(unsig
33、ned int x)//延時(shí)1ms</p><p><b> {</b></p><p> unsigned char j;</p><p> while(x--)</p><p><b> {</b></p><p> for(j=0;j<125;j++)
34、</p><p><b> {;} </b></p><p><b> }</b></p><p><b> }</b></p><p> void display()//顯示</p><p> { P3=0x01;//顯示小時(shí)的十位<
35、;/p><p> P0=d[s/10];</p><p><b> delay(5);</b></p><p> P3=0x02;//顯示小時(shí)個(gè)位</p><p> P0=d[s%10];</p><p><b> delay(5);</b></p>&l
36、t;p> P3=0x04;//顯示--</p><p><b> P0=d[11];</b></p><p><b> delay(5);</b></p><p> P3=0x08;//顯示分十位</p><p> P0=d[f/10];</p><p>&l
37、t;b> delay(5);</b></p><p> P3=0x10;//顯示分個(gè)位</p><p> P0=d[f%10];</p><p><b> delay(5);</b></p><p> P3=0x20;//顯示--</p><p><b>
38、P0=d[11];</b></p><p> delay(5); </p><p> P3=0x40;//顯示秒</p><p> P0=d[m/10];</p><p> delay(5);</p><p><b> P3=0x80;</b></p><
39、;p> P0=d[m%10];</p><p><b> delay(5);</b></p><p><b> }</b></p><p> void key()//按鍵判斷選擇按鍵</p><p><b> {</b></p><p>
40、; EA=0;//中斷關(guān)閉</p><p><b> if(k1==0)</b></p><p><b> { </b></p><p> delay(30); </p><p> while(k1==0); </p><p><b> s1=~s1
41、;</b></p><p> delay(20);</p><p> con++;TR0=0;ET0=0;</p><p> if(con>=4)</p><p><b> {</b></p><p> con=0;TR0=1;ET0=1;</p><
42、;p><b> } </b></p><p><b> }</b></p><p> if(con==1)//按了一下表示調(diào)秒</p><p><b> { </b></p><p> if(k2==0)//增加</p><p>&
43、lt;b> {</b></p><p> delay(30);</p><p> while(k2==0);</p><p><b> m++;</b></p><p><b> if(m==59)</b></p><p><b> {
44、m=0;}</b></p><p><b> }</b></p><p> if(k3==0)//減</p><p><b> {</b></p><p> delay(30);</p><p> while(k3==0);</p><
45、;p><b> m--;</b></p><p><b> if(m>=60)</b></p><p><b> {m=59;}</b></p><p><b> }</b></p><p><b> }</b>
46、</p><p> if(con==2)</p><p><b> {</b></p><p><b> if(k2==0)</b></p><p><b> {</b></p><p> delay(30);</p><p
47、> while(k2==0);</p><p><b> f++;</b></p><p><b> if(f==59)</b></p><p><b> {f=0;}</b></p><p><b> } </b></p>
48、<p><b> if(k3==0)</b></p><p><b> {</b></p><p> delay(30);</p><p> while(k3==0);</p><p><b> f--;</b></p><p>&l
49、t;b> if(f>=60)</b></p><p><b> {f=59;}</b></p><p><b> }</b></p><p><b> }</b></p><p> if(con==3)</p><p>
50、<b> {</b></p><p><b> if(k2==0)</b></p><p><b> {</b></p><p> delay(30);</p><p> while(k2==0);</p><p><b> s++
51、;</b></p><p><b> if(s==23)</b></p><p><b> {s=0;}</b></p><p><b> } </b></p><p><b> if(k3==0)</b></p><
52、;p><b> {</b></p><p> delay(30);</p><p> while(k3==0);</p><p><b> s--;</b></p><p> if(s>=24)//實(shí)現(xiàn)循環(huán)減</p><p><b> {s=
53、23;}</b></p><p><b> }</b></p><p><b> }</b></p><p> EA=1;//中斷開(kāi)啟 </p><p><b> } </b></p><p> void main()//設(shè)
54、置定時(shí)50ms</p><p><b> {</b></p><p> TH0=(65535-50000)/256;</p><p> TL0=(65535-50000)%256;</p><p> TMOD=0X01;ET0=1;TR0=1;EA=1;//開(kāi)啟定時(shí)中斷</p><p>&
55、lt;b> while(1)</b></p><p><b> { key();</b></p><p> display();</p><p><b> }</b></p><p><b> }</b></p><p>
56、void int0() interrupt 1//中斷服務(wù)程序</p><p><b> {ET0=0;</b></p><p><b> TR0=0;</b></p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;
57、</p><p><b> TR0=1;</b></p><p><b> x++;</b></p><p> if(x==20)//計(jì)數(shù)20恰好為1秒</p><p><b> { </b></p><p><b> x=0;m++
58、;</b></p><p> if(m==60)//秒到60</p><p><b> {</b></p><p><b> m=0;f++;</b></p><p> if(f==60)//分到60</p><p><b> f=0;s++;
59、</b></p><p><b> if(s==24)</b></p><p><b> {</b></p><p><b> s=0;</b></p><p><b> }</b></p><p><b&
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于at89c51單片機(jī)數(shù)字鐘設(shè)計(jì)
- 基于at89c51單片機(jī)數(shù)字鐘
- 基于at89c51單片機(jī)的led數(shù)字倒計(jì)時(shí)器設(shè)計(jì)
- 基于at89c51單片機(jī)的數(shù)字鐘仿真與設(shè)計(jì)
- 基于AT89C51單片機(jī)數(shù)字鐘二稿.doc
- 基于at89c51單片機(jī)的數(shù)字鐘設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于AT89C51單片機(jī)數(shù)字鐘三稿.doc
- 基于AT89C51單片機(jī)數(shù)字鐘一稿.doc
- 畢業(yè)論文-基于at89c51單片機(jī)數(shù)字鐘【精校排版】
- at89c51單片機(jī)課程設(shè)計(jì)-----搶答器
- 單片機(jī)課程設(shè)計(jì)--基于at89c51的60秒倒計(jì)時(shí)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于at89c51的60秒倒計(jì)時(shí)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-基于at89c51的60秒倒計(jì)時(shí)設(shè)計(jì)
- 課程設(shè)計(jì)--基于at89c51的99秒倒計(jì)時(shí)器設(shè)計(jì)
- 課程設(shè)計(jì)--基于at89c51的99秒倒計(jì)時(shí)器設(shè)計(jì)
- 基于at89c51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 課程設(shè)計(jì)--基于at89c51單片機(jī)控制步進(jìn)電機(jī)
- 課程設(shè)計(jì)--基于AT89C51的99秒倒計(jì)時(shí)器設(shè)計(jì).doc
- 基于at89c51單片機(jī)音樂(lè)盒課程設(shè)計(jì)
- 基于at89c51單片機(jī)的多人搶答器設(shè)計(jì)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論