版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)</p><p> 專 業(yè): 自動(dòng)化 </p><p> 班 級(jí): </p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師:
2、 </p><p> 2012 年 7月 1日</p><p><b> 1引言</b></p><p> 隨著單片機(jī)技術(shù)的飛速發(fā)展,在其推動(dòng)下,現(xiàn)代的電子產(chǎn)品幾乎滲透到了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高。</p><p> 時(shí)間就是金錢
3、、時(shí)間就是生命、時(shí)間就是勝利……,準(zhǔn)確的掌握時(shí)間和分配時(shí)間對(duì)人們來(lái)說(shuō)至關(guān)重要,時(shí)鐘是我們生活中必不可少的工具。電子時(shí)鐘的設(shè)計(jì)方法有很多種,但是基于單片機(jī)并通過(guò)LCD顯示的電子時(shí)鐘具有編程靈活、精確度高、便于攜帶、顯示直觀等特點(diǎn)。在這里我們將已學(xué)過(guò)的比較零散的數(shù)字電路的知識(shí)有機(jī)的、系統(tǒng)的聯(lián)系起來(lái)用于實(shí)際,來(lái)培養(yǎng)我們的綜合分析和設(shè)計(jì)電路,寫程序、調(diào)試電路和基于proteus仿真的能力。</p><p> 利用AT8
4、9C51單片機(jī)對(duì)時(shí)鐘芯片進(jìn)行讀寫操作并通過(guò)1602字符液晶顯示實(shí)時(shí)時(shí)鐘信息,這樣便構(gòu)成了一個(gè)單片機(jī)電子時(shí)鐘。</p><p><b> 2 設(shè)計(jì)方案及原理</b></p><p> 2.1實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)的基本方法</p><p> 利用MCS-51系列單片機(jī)的可編程定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)來(lái)實(shí)現(xiàn)時(shí)鐘計(jì)數(shù)。</p><p&g
5、t; (1) 把定時(shí)器T/C0設(shè)為工作方式1,定時(shí)時(shí)間為50ms,則計(jì)數(shù)溢出20次即得時(shí)鐘計(jì)時(shí)最小單位秒;</p><p> (2) 采用中斷方式進(jìn)行溢出次數(shù)累計(jì),計(jì)滿20次為秒計(jì)時(shí)(1秒);</p><p> (3) 從秒到分和從分到時(shí)的計(jì)時(shí)是通過(guò)累加和數(shù)值比較實(shí)現(xiàn)。</p><p> 2.2電子時(shí)鐘的時(shí)間顯示</p><p>
6、用1個(gè)1602字符液晶顯示時(shí)分秒。顯示方式為:XX:XX:XX,由左向右分別為:時(shí)、分、秒,初值為23:59:59。完成顯示一秒01一直加至59,再恢復(fù)為00;分加1,由00至01,一直加至59,再恢復(fù)為00;時(shí)加1,由00至01,一直加至24,再回復(fù)為00。</p><p> 2.3電子時(shí)鐘的時(shí)間調(diào)整</p><p> 電子時(shí)鐘設(shè)置4個(gè)按鍵通過(guò)程序控制來(lái)完成電子時(shí)鐘的時(shí)間調(diào)整。SET
7、time鍵按下進(jìn)入校時(shí)狀態(tài),時(shí)鍵用來(lái)調(diào)整小時(shí),分鍵用來(lái)調(diào)整分鐘,OK鍵按下退出校時(shí)狀態(tài)。 </p><p><b> 3 硬件設(shè)計(jì)</b></p><p> 用AT89C51的P0口接LCD液晶顯示器的8個(gè)雙向數(shù)據(jù)口,P2.0、P2.1、P2.2分別接LCD的3個(gè)控制端RS、RW、E ,P1.0~P1.3分別接電子時(shí)鐘的校時(shí)按鍵,RST引腳接手動(dòng)復(fù)位電路。<
8、;/p><p> 硬件電路連接圖如圖1所示。</p><p> 圖1 電子時(shí)鐘硬件仿真圖</p><p><b> 4軟件設(shè)計(jì)</b></p><p> 4.1軟件設(shè)計(jì)流程圖</p><p> 在編程上,首先進(jìn)行了初始化,在主程序開(kāi)始定義了一組固定單元用來(lái)儲(chǔ)存計(jì)數(shù)的時(shí):分:秒,在顯示初值之
9、后,進(jìn)入主循環(huán)。在主程序中,對(duì)不同的按鍵進(jìn)行掃描,實(shí)現(xiàn)計(jì)時(shí),時(shí)間調(diào)整,復(fù)位清零等功能,系統(tǒng)總流程圖如圖2所示。</p><p> 圖2 系統(tǒng)總流程圖</p><p> 電子時(shí)鐘的計(jì)時(shí)是利用MCS-51系列單片機(jī)的可編程定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)來(lái)實(shí)現(xiàn)時(shí)鐘計(jì)數(shù)的,把定時(shí)器T/C0設(shè)為工作方式1,定時(shí)時(shí)間為50ms,則計(jì)數(shù)溢出20次即得時(shí)鐘計(jì)時(shí)最小單位秒,從秒到分和從分到時(shí)的計(jì)時(shí)是通過(guò)累加和
10、數(shù)值比較實(shí)現(xiàn)。</p><p> 電子鐘的計(jì)時(shí)、校時(shí)流程圖如圖3、4所示。</p><p> 圖4 校時(shí)程序流程圖 </p><p> 圖3 計(jì)時(shí)程序流程</p><p><b> 4.2仿真結(jié)果</b></p><p> 電子時(shí)鐘主要的設(shè)計(jì)要求是能夠?qū)崿F(xiàn)時(shí)鐘的一般功能,以及包括
11、時(shí)間的調(diào)整功能,這個(gè)基于單片機(jī)的電子時(shí)鐘基本上實(shí)現(xiàn)了上述功能,能夠通過(guò)時(shí)間調(diào)整電路對(duì)時(shí)間進(jìn)行調(diào)整以及復(fù)位。</p><p> 基于proteus的電子時(shí)鐘仿真電路如圖5所示。</p><p> 圖5 電子時(shí)鐘的仿真結(jié)果圖</p><p><b> 5總結(jié)</b></p><p> 本次課程設(shè)計(jì)經(jīng)過(guò)了三個(gè)階段的程
12、序設(shè)計(jì),第一階段是了解數(shù)字鐘的工作方式及其原理,確定設(shè)計(jì)的方向與方法以及確定設(shè)計(jì)過(guò)程中需要的軟件及工具。第二階段是熟悉用keil軟件編寫C語(yǔ)言的方法,這一階段側(cè)重于對(duì)C語(yǔ)言的基本掌,在這一階段中因?yàn)閷?duì)C語(yǔ)言不太熟悉,所以顯得相對(duì)笨拙,進(jìn)展也會(huì)相對(duì)緩慢。第三階段是學(xué)校單片機(jī)AT89C51芯片的工作原理,并設(shè)計(jì)原理圖,在Proteus里畫好原理圖然后加載程序后進(jìn)行仿真驗(yàn)證??傮w上,本設(shè)計(jì)已經(jīng)達(dá)到了預(yù)期目標(biāo),在軟件上做了相關(guān)的功能仿真和時(shí)序仿
13、真,最終實(shí)現(xiàn)了簡(jiǎn)易的電子時(shí)鐘的正確運(yùn)行。</p><p> 在本次課程設(shè)計(jì)中,最初遇到了很多的棘手問(wèn)題,比如如何實(shí)現(xiàn)定時(shí)器的計(jì)數(shù),如何在LCD液晶顯示器上顯示時(shí)分秒等。通過(guò)查閱大量資料和虛心請(qǐng)教他人慢慢解決掉了設(shè)計(jì)過(guò)程中遇到的這一系列的問(wèn)題。但也受益匪淺,不僅對(duì)自己在大學(xué)三年時(shí)間里所學(xué)的知識(shí)進(jìn)行回顧與復(fù)習(xí),對(duì)單片機(jī)知識(shí)也有更進(jìn)一步的理解,并積累了一定寶貴的經(jīng)驗(yàn)和培養(yǎng)了自己的動(dòng)手能力和運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能
14、力。通過(guò)這次課程設(shè)計(jì),我們知道了理論和實(shí)際的距離,也知道了理論和實(shí)際想結(jié)合的重要性,也從中得知了很多書本上無(wú)法得知的知識(shí)。自己今后將會(huì)更加的把理論知識(shí)和實(shí)際應(yīng)用結(jié)合起來(lái),提高自己的能力。</p><p><b> 6參考文獻(xiàn)</b></p><p> [1] 李華,王思明,張金敏.單片機(jī)原理及應(yīng)用[M].蘭州大學(xué)出版社,2001.</p><p
15、> [2] 譚浩強(qiáng).C程序設(shè)計(jì)(第二版)[M].清華大學(xué)出版社,2003.</p><p> [3] 及力.Protel 99 SE原理圖與PCB設(shè)計(jì)教程[M].北京:電子工業(yè)出社,2007.</p><p> [4] 邢小杰.單片機(jī)電子時(shí)鐘設(shè)計(jì)[J].中國(guó)科技博覽,2009,3(12):15-18.</p><p><b> 附錄</
16、b></p><p> #include<reg51.h></p><p> #include<intrins.h></p><p> sbit RW=P2^1;</p><p> sbit RS=P2^0;</p><p> sbit E=P2^2;</p>&l
17、t;p> sbit K1=P1^0;</p><p> sbit K2=P1^1;</p><p> sbit K3=P1^2;</p><p> sbit K4=P1^3;</p><p> bit LK1=0,LK2=0,LK3=0,LK4=0;</p><p> bit ReadRTC_Fla
18、g;</p><p> unsigned char tmpdate[7]={59,59,23}; //秒分時(shí) </p><p> unsigned char l_tmpdisplay[20];</p><p> unsigned int i;</p><p> char code table[]={"0123456789:
19、"};</p><p> /******************************************************************/</p><p> /* 定時(shí)器0初始化 */</p><p> /************
20、******************************************************/</p><p> void InitTIMER0(void)</p><p><b> {</b></p><p> TMOD=0x01; //定時(shí)器設(shè)置16位</p><p> TH0=(65535
21、-50000)/256; //初始化值</p><p> TL0=(65535-50000)%256;</p><p><b> ET0=1;</b></p><p><b> TR0=1;</b></p><p><b> EA=1;</b></p>
22、<p><b> }</b></p><p><b> // 延時(shí)子程序</b></p><p> delay(int ms)</p><p> { </p><p><b> int k;</b><
23、/p><p> while(ms--)</p><p><b> {</b></p><p> for(k = 0; k< 250; k++)</p><p><b> {</b></p><p><b> }</b></p>
24、<p><b> }</b></p><p><b> }</b></p><p><b> /*寫命令*/</b></p><p> void write_ord(char ord)</p><p><b> {</b></p&
25、gt;<p><b> RW=0;</b></p><p><b> RS=0;</b></p><p><b> P0=ord;</b></p><p><b> delay(1);</b></p><p><b> E
26、=1;</b></p><p><b> delay(1);</b></p><p><b> E=0;</b></p><p><b> }</b></p><p><b> /*寫數(shù)據(jù)*/</b></p><p&
27、gt; void write_date(char date)</p><p><b> {</b></p><p><b> RW=0;</b></p><p><b> RS=1;</b></p><p><b> P0=date;</b>&l
28、t;/p><p><b> delay(1);</b></p><p><b> E=1;</b></p><p><b> delay(1);</b></p><p><b> E=0;</b></p><p><b&g
29、t; }</b></p><p> /*設(shè)定顯示位置*/</p><p> lcd_pos(unsigned char pos)</p><p> { </p><p> write_ord(pos|0x80);</p><p><b>
30、 }</b></p><p> /*顯示器初始化*/</p><p> void init()</p><p><b> {</b></p><p><b> E=0;</b></p><p> write_ord(0x38); //00111000&
31、lt;/p><p><b> delay(1);</b></p><p> write_ord(0x0c); //00001100</p><p><b> delay(1);</b></p><p> write_ord(0x06); //00000110</p><p&g
32、t;<b> delay(1);</b></p><p> write_ord(0x01); //00000001</p><p><b> delay(1);</b></p><p><b> }</b></p><p><b> /*主函數(shù)*/</
33、b></p><p> void SETtime()</p><p><b> {</b></p><p> if(LK1==1&&K1==0)</p><p><b> TR0=0;</b></p><p><b> LK1=K1;
34、</b></p><p><b> }</b></p><p> void OKtime()</p><p><b> {</b></p><p> if(LK4==1&&K4==0)</p><p><b> TR0=1;&l
35、t;/b></p><p><b> LK4=K4;</b></p><p><b> }</b></p><p> void shi()</p><p><b> {</b></p><p> if(LK2==1&&K2
36、==0&&TR0==0)</p><p> tmpdate[2]++;</p><p><b> LK2=K2;</b></p><p><b> }</b></p><p> void fen()</p><p><b> {</b
37、></p><p> if(LK3==1&&K3==0&&TR0==0)</p><p> tmpdate[1]++;</p><p><b> LK3=K3;</b></p><p><b> }</b></p><p> v
38、oid TimePP()</p><p><b> {</b></p><p> if(tmpdate[0]>=60) //秒</p><p><b> {</b></p><p> tmpdate[0]=0;</p><p> tmpdate[1]
39、++;</p><p><b> }</b></p><p> if(tmpdate[1]>=60) //分</p><p><b> {</b></p><p> tmpdate[1]=0;</p><p> tmpdate[2]++;</p&
40、gt;<p><b> }</b></p><p> if(tmpdate[2]>=24) //時(shí)</p><p><b> {</b></p><p> tmpdate[2]=0;</p><p> tmpdate[5]++;</p><p
41、><b> }</b></p><p><b> }</b></p><p> void TimeCH()</p><p><b> {</b></p><p> if(tmpdate[2]>=24)</p><p> tmpda
42、te[2]=0;</p><p> if(tmpdate[1]>=60)</p><p> tmpdate[1]=0;</p><p> l_tmpdisplay[7]=tmpdate[2]/10; //數(shù)據(jù)的轉(zhuǎn)換</p><p> l_tmpdisplay[6]=tmpdate[2]%10;</p>&
43、lt;p> l_tmpdisplay[5]=10;//加入"-"</p><p> l_tmpdisplay[4]=tmpdate[1]/10;</p><p> l_tmpdisplay[3]=tmpdate[1]%10;</p><p> l_tmpdisplay[2]=10;</p><p>
44、l_tmpdisplay[1]=tmpdate[0]/10;</p><p> l_tmpdisplay[0]=tmpdate[0]%10;</p><p><b> }</b></p><p> void display(unsigned char add,char Data)</p><p><b>
45、 {</b></p><p> lcd_pos(add); </p><p> write_date(Data);</p><p><b> }</b></p><p> /**************************************/</p><p> v
46、oid main()</p><p><b> {</b></p><p><b> init();</b></p><p> InitTIMER0();</p><p><b> while(1)</b></p><p><b>
47、{</b></p><p> SETtime();</p><p><b> OKtime();</b></p><p><b> shi();</b></p><p><b> fen();</b></p><p> if(Rea
48、dRTC_Flag)</p><p><b> {</b></p><p> ReadRTC_Flag=0;</p><p> tmpdate[0]++;</p><p> TimePP(); </p><p><b> }</b></p><p
49、><b> TimeCH();</b></p><p> display(0x4d,table[l_tmpdisplay[0]]);</p><p> display(0x4c,table[l_tmpdisplay[1]]);</p><p> display(0x4b,table[l_tmpdisplay[2]]);</p
50、><p> display(0x4a,table[l_tmpdisplay[3]]);</p><p> display(0x49,table[l_tmpdisplay[4]]);</p><p> display(0x48,table[l_tmpdisplay[5]]);</p><p> display(0x47,table[l_tm
51、pdisplay[6]]);</p><p> display(0x46,table[l_tmpdisplay[7]]);</p><p><b> }</b></p><p><b> }</b></p><p> /************************************
52、******************************/</p><p> /* 定時(shí)器中斷函數(shù) */</p><p> /******************************************************************/</p>&l
53、t;p> void tim(void) interrupt 1 using 1 //中斷,用于數(shù)碼管掃描</p><p><b> {</b></p><p> unsigned char i;</p><p> TH0=(65535-50000)/256; //初始化值</p&
54、gt;<p> TL0=(65535-50000)%256;</p><p><b> i++;</b></p><p><b> if(i==20)</b></p><p><b> {</b></p><p><b> i=0;</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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子時(shí)鐘單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)——電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)——電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)-電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)----電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)-電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--電子時(shí)鐘設(shè)計(jì)
- 數(shù)字電子時(shí)鐘-單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘.doc
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)模擬電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--- 單片機(jī)電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘.doc
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)模擬電子時(shí)鐘設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論