目 錄
摘 要 1
1緒論 3
1.1 數(shù)字時鐘與日歷設(shè)計的背景 3
2 設(shè)計方案 8
2.1 主程序 8
2.2 數(shù)碼管顯示模塊 9
2.3 定時器計數(shù)器T0中斷服務(wù)程序 9
2.4按鍵處理模塊 9
3 硬件電路設(shè)計 9
3.1 復(fù)位電路 10
3.2 時鐘電路 10
3.3 按鍵電路 11
3.4 數(shù)碼管顯示電路 12
3.5 電源電路設(shè)計 13
4軟件設(shè)計與程序代碼 14
4.1 軟件選擇與介紹 14
4.1.1 軟件介紹 14
4.1.2 Proteus7.8的特點 14
4.2 軟件仿真電路全圖 16
4.3 源程序代碼 17
5 結(jié)論 22
參考文獻 23
致謝
摘要
近幾年,單片機在各個領(lǐng)域得到廣泛的應(yīng)用。從工業(yè)到人們的日常生活,大部分的科技產(chǎn)品都是通過單片機來控制。在它問世之前,自動控制設(shè)備得不到廣泛的應(yīng)用,這是因為控制設(shè)備的體積龐大,耗電量大,價格昂貴。在第一臺微處理器成功研制不久,第一個單片機就問世了。因為其小巧的體積,低功耗,以及高效的性能,單片機受到了大家的歡迎。
本設(shè)計利用Atmel公司的AT89C52單片機對電子時鐘進行開發(fā),設(shè)計了實現(xiàn)所需功能的硬件電路,應(yīng)用C語言進行軟件編程,并用Proteus軟件進行演示、驗證。主要介紹用單片機內(nèi)部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法,本設(shè)計由單片機80C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個單片機的數(shù)字電子時鐘。它的計時周期為24小時,顯滿刻度為“23時59分59秒”,且配有4個獨立鍵盤,可以靈活地調(diào)節(jié)時間和日期,并具有一定的擴展性。
單片機自從1976年由Intel公司推出MCS-48開始,迄今已有二十多年之久了。由于單片機集成度高、功能強、可靠性高、體積小、功耗低、使用方便、價格低廉等一系列優(yōu)點,目前已經(jīng)滲入到人們工作和生活的方方面面,單片機應(yīng)用領(lǐng)域已經(jīng)從面向工業(yè)控制、通訊、交通、智能儀表等方面迅速發(fā)展到家用消費產(chǎn)品、辦公自動化、汽車電子、PC機外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。
本文討論的單片機數(shù)字電子時鐘系統(tǒng)的核心是目前應(yīng)用極為廣泛的51系列單片機,配置了外圍設(shè)備,構(gòu)成了一個可編程的計時定時系統(tǒng),具有體積小,可靠性高,功能多等多種特點。不僅能滿足所需要求而且還有很多功能可供擴展,有著廣泛的應(yīng)用實踐領(lǐng)域。
通常通過單片機設(shè)計電子時鐘有2種方法:一是通過單片機內(nèi)部的定時器計數(shù)器。采用軟件編程實現(xiàn)時鐘計數(shù),一般稱為軟時鐘,這種方法硬件線路簡單,程序比較復(fù)雜。系統(tǒng)的功能一般與軟件相關(guān)。通常用于對時間精度要求不搞的場合。二是采用時鐘芯片 他的功能強大,功能不見集成在芯片內(nèi)需,自動產(chǎn)生時鐘等相關(guān)功能。硬件成本較高,軟件編程仙丹。通常對時鐘精確度要求較高的場合。
電子時鐘的系統(tǒng)軟件程序有、由主程序和子程序組成,主程序包含初始化參數(shù)設(shè)置,按鍵處理,數(shù)碼管顯示模塊等。在設(shè)計時候、各個模塊都采用子程序結(jié)構(gòu)設(shè)計。在主程序種調(diào)用。由于定時器,計數(shù)器采用中斷方式處理,應(yīng)此還用辨析定時器,中斷服務(wù)子程序,在定時器,計數(shù)器中斷服務(wù)子程序種對時鐘進行調(diào)整。
2.1 主程序
主程序先對顯示單元和定時器計數(shù)器初始化,然后重復(fù)調(diào)用數(shù)碼管顯示模塊和按鍵處理模塊,當有建按下,則轉(zhuǎn)入相應(yīng)的功能程序。
2.2 數(shù)碼管顯示模塊
本設(shè)計的顯示模塊采用8位一體共陽極數(shù)碼管,顯示分為時鐘顯示和日期星期兩種模式,當為顯示時鐘模式時,從右到左依次顯示秒個位,秒十位,橫線,分個位,分十位,橫線,時個位,時十位;當為顯示日期和星期模式時,從右到左一次顯示星期,不顯示,橫線,日個位,日十位,月個月,月十位。數(shù)碼管顯示的信息用8個內(nèi)存單元存放,這8個內(nèi)存單元為顯示緩沖區(qū),其中秒個位和秒十位,分個位和分十位,時個位和時十位分別由秒數(shù)據(jù),分數(shù)據(jù)和小時數(shù)據(jù)分拆得到。在本系統(tǒng)種數(shù)碼管顯示采用軟件譯碼動態(tài)顯示。在存儲器中首先建立一張顯示信息字段碼表,顯示的時候,先從顯示緩沖區(qū)中取出顯示的信息,然后通過查表程序在字段碼表中查出的所顯示的字段碼。從P0口輸出,同時在P2口將對應(yīng)的位選碼輸出,選中顯示的數(shù)碼管,就能在相應(yīng)的數(shù)碼管上顯示顯示緩沖區(qū)的內(nèi)容。
2.3 定時器計數(shù)器T0中斷服務(wù)程序
定時器計數(shù)器T0用于時間計時,選擇方式1,重復(fù)定時,定時時間設(shè)為100MS,定時時間到則溢出中斷,在中斷服務(wù)程序中用一個計數(shù)器對100MS計數(shù),計10次則對秒單元加1,秒單元加到60則對分單元加1,同時秒單元清零。分單元加到60的時候,則對時單元加1,同時分單元清零,時單元加到24的時候則對時單元清零,標志一天時間計滿,此時所以單元清零。在對各單元計數(shù)的同時,把它們的值放到存儲器單元的制定位置
2.4按鍵處理模塊
按鍵處理設(shè)置為:如果沒有按鍵,則為時鐘模式,時鐘正常走時,當按下shijia按鍵的時候,時單元每次加1,當加到24后跳為00,當按下shijian按鍵的時候,時單元每次減1,當減到00的時候跳到23;當按下fenjia按鍵的時候,分單元每次加1,當加到60的時候跳為00,按下fenjian按鍵的時候,分單元每次減1,當減到00的時候跳為59;當xianshiqih建按下時,為顯示日期模式,此時數(shù)碼管顯示日期和星期,當同時按下shijia按鍵的時候,月單元每次加1,當加到13后跳為00,當同時按下shijian按鍵的時候,日單元每次加1,如果月份為:1月、3月、5月、7月、8月、10月、12月的時候,當日加到32的時候跳到1;如果月份為4月、6月、9月、11月的時候,當日加到31的時候跳到1,如果月份為2月的時候,當日加到29時跳到1。當同時按下fenjia按鍵的時候,星期單元每次加1,當加到6的時候跳為0,“0”表示星期日。
3 硬件電路設(shè)計
3.1 復(fù)位電路
MCS-51單片機的復(fù)位是由外部的復(fù)位電路來實現(xiàn)的。復(fù)位引腳RST通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。
上電復(fù)位:上電復(fù)位電路是—種簡單的復(fù)位電路,只要在RST復(fù)位引腳接一個電容到VCC,接一個電阻到地就可以了。上電復(fù)位是指在給系統(tǒng)上電時,復(fù)位電路通過電容加到RST復(fù)位引腳一個短暫的高電平信號,這個復(fù)位信號隨著VCC對電容的充電過程而回落,所以RST引腳復(fù)位的高電平維持時間取決于電容的充電時間。為了保證系統(tǒng)安全可靠的復(fù)位,RST引腳的高電平信號必須維持足夠長的時間。
上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實現(xiàn)的。只要Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位。
按鍵復(fù)位:電路在運行過程中,也可以通過按鍵進行復(fù)位。當按下復(fù)位按鍵,復(fù)位引腳RST通過按鍵與地相接,得到低電平,從而實現(xiàn)復(fù)位。
電路圖如圖2所示:

圖2 復(fù)位電路
3.2 時鐘電路
時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊的一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質(zhì)量也直接影響單片機系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:一種是內(nèi)部時鐘方式,另一種為外部時鐘方式。本文用的是內(nèi)部時鐘方式。
電路圖如圖3所示:

圖3 時鐘震蕩電路
MCS-51單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個穩(wěn)定的自激振蕩器。
3.3 按鍵電路
按鍵的開關(guān)狀態(tài)通過一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵閉合過程在相應(yīng)的I/O端口形成一個負脈沖。閉合和釋放過程都要經(jīng)過一定的過程才能達到穩(wěn)定,這一過程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的常長短與開關(guān)的機械特性有關(guān),一般在5-10ms之間。為了避免CPU多次處理按鍵的一次閉合,應(yīng)采用措施消除抖動。本文采用的是獨立式按鍵,直接用I/O口線構(gòu)成單個按鍵電路,每個按鍵占用一條I/O口線,每個按鍵的工作狀態(tài)不會產(chǎn)生互相影響。
電路圖如圖4所示:

圖4 按鍵電路
P1.4口為SP5所接的按鍵為模式切換按鍵,當不按下此按鍵時為時鐘顯示模式,當按下此按鍵時為日期和星期顯示模式。
當為時鐘顯示模式的時候,P1.0到P1.3分別表示如下:
P1.0口為SP1表示調(diào)整小時“+”,按一下則時加1,當加到23后再加一次為0;
P1.1口為SP2表示調(diào)整小時“-”,按一下則時減1,當減到0后再減一次為23;
P1.2口為SP3表示調(diào)整分“+”,按一下則分加1,當加到59后再加一次為0;
P1.3口為SP4表示調(diào)整分“-”,按一下則分減1,當減到0后再加一次為59。
當為日期和星期模式的時候,P1.0到P1.3分別表示如下:
P1.0口為SP1表示調(diào)整月份“+”,按一下則月份加1,當加到12月后再加一次為1月;
P1.1口為SP2表示調(diào)整日“+”,按一下則日加1,當加到31后再加一次為1;
P1.2口為SP3表示調(diào)整星期“+”,按一下則星期加1,當加到6后再加一次為0,0表示星期一;
P1.3口為SP4無定義,按下此按鍵無任何動作。
3.4 數(shù)碼管顯示電路
數(shù)碼管顯示器成本低,配置靈活,與單片機接口簡單,在單片機應(yīng)用系統(tǒng)中廣泛應(yīng)用。
數(shù)碼管是由8個發(fā)光二極管構(gòu)成的顯示器件。在數(shù)碼管中,若將二極管的陽極連在一起,稱為共陽極數(shù)碼管;若將二極管的陰極連在一起,稱為共陰極數(shù)碼管。本設(shè)計用到的8個數(shù)碼管均是共陽極的。當發(fā)光二極管導(dǎo)通時,它就會發(fā)光。每個二極管就是一個筆劃,若干個二極管發(fā)光時,就構(gòu)成了一個顯示字符。將單片機的I/O口控制相應(yīng)的芯片與數(shù)碼管的a-g相連,低電平的位對應(yīng)的發(fā)光二極管亮,這樣,由I/O口輸出不同的代碼,就可以控制數(shù)碼管顯示不同的字符。
本設(shè)計的8個數(shù)碼管均采用動態(tài)顯示方式,系統(tǒng)采用動態(tài)顯示方式,用P0口來控制LED數(shù)碼管的段控線,而用P2口來控制其位控線。動態(tài)顯示通常都是采用動態(tài)掃描的方法進行顯示,即循環(huán)點亮每一個數(shù)碼管,這樣雖然在任何時刻都只有一位數(shù)碼管被點亮,但由于人眼存在視覺殘留效應(yīng),只要每位數(shù)碼管間隔時間足夠短,就可以給人以同時顯示的感覺。
本顯示電路的設(shè)計采用了一個74HC573,74HC573是我們常用的芯片,作用是用來驅(qū)動驅(qū)動數(shù)碼管工作。
電路圖如圖5所示:

圖5 數(shù)碼管顯示電路
3.5 電源電路設(shè)計
電源電路的設(shè)計,采用了4只1N4007整流二極管,它的作用除了將交流變?yōu)槊}動直流外,還能將直流變?yōu)橹绷鳎簿褪钱旊娫摧斎霝樯险仑撌牵敵鲆矠樯险仑摚划斴斎霝樯县撓抡牵敵鲞是為上正下負,這能有效的防止在操作過程中不小心將電源接反,燒壞電路及CPU;采用了一個LM7805三端集成穩(wěn)壓器,由于單片機的供電電源為5伏,采用LM7805可以保證單片機所需電源的穩(wěn)定,在使用時,如果沒有5V直流電源,就可以使用5V到30V不等的直流電源或5V到24V不等的交流電源,這時輸出都可以得到5V穩(wěn)定的直流電源。電路中幾個電容的作用是當輸入電源為交流時,可以慮出通過4只二極管后得到的脈動直流電的波形,以保證得到5V穩(wěn)定的直流電源。本電源電路的設(shè)計在使用過程中安全,方便,穩(wěn)定和可靠。
4 軟件設(shè)計與程序代碼
4.1 軟件選擇與介紹
4.1.1 軟件介紹Proteus7.8的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)。
Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件,Proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動的,針對微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實現(xiàn)軟件源碼級的實時調(diào)試,如有顯示及輸出,還能看到運行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,您不需要別的,Proteus為您建立了完備的電子設(shè)計開發(fā)環(huán)境!尤其重要的是Proteus Lite可以完全免費,也可以花微不足道的費用注冊達到更好的效果;功能最強的Proteus專業(yè)版也非常便宜,人人用得起,對高校還有更多優(yōu)惠。
Proteus組合了高級原理布圖、混合模式SPICE仿真,PCB設(shè)計以及自動布線來實現(xiàn)一個完整的電子設(shè)計系統(tǒng)。此系統(tǒng)受益于15年來的持續(xù)開發(fā),被《電子世界》在其對PCB設(shè)計系統(tǒng)的比較文章中評為最好產(chǎn)品—“The Route to PCB CAD”。Proteus 產(chǎn)品系列也包含了我們革命性的VSM技術(shù),用戶可以對基于微控制器的設(shè)計連同所有的周圍電子器件一起仿真。用戶甚至可以實時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設(shè)模型來對設(shè)計進行交互仿真
4.1.2 Proteus7.8的特點
① 全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢。
②具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS一232動態(tài)仿真、1 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。③ 目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。④ 支持大量的存儲器和外圍芯片。總之該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大 ,可仿真51、AVR、PIC等。
4.2 軟件仿真電路全圖

圖7 軟件仿真電路全圖
此圖為時鐘顯示模式,顯示內(nèi)容為6時16分3秒

圖8 軟件仿真電路全圖
此圖為日期和星期顯示模式,顯示內(nèi)容為9月1日星期2
通過做這一次課程設(shè)計,感覺自己的收獲很多。課程設(shè)計是為了讓我們對平時學(xué)習(xí)的理論知識與實際操作相結(jié)合,在理論和實踐教學(xué)的基礎(chǔ)上進一步鞏固已學(xué)基本理論及應(yīng)用知識并加以綜合提高,學(xué)會將知識應(yīng)用于實際,提高分析和解決問題的能力。
本次設(shè)計主要涉及了單片機原理及接口技術(shù)的相關(guān)知識和C語言編程的諸多要領(lǐng)。設(shè)計中涉及到的許多問題,更是對以前所學(xué)的知識的回顧及在過去的三年中學(xué)到知識的總結(jié),這次設(shè)計對我將來的工作有著重要的意義。
在此設(shè)計中,我積極查閱資料,細心鉆研各個細節(jié),完成了數(shù)字電子時鐘與日歷的電路設(shè)計,也讓我明白了在設(shè)計中考慮問題應(yīng)該全面。在設(shè)計中既鞏固了我的理論知識,又學(xué)會提煉需要的信息的方法。
這次對數(shù)字電子時鐘與日歷的設(shè)計,讓我了解了設(shè)計電路的步驟,也讓我了解了有關(guān)數(shù)字電子時鐘與日歷的原理與設(shè)計理念,要實現(xiàn)電路功能總要先設(shè)計,成功之后才實際接線的。現(xiàn)在還只停留在理想階段,也許在設(shè)計實際電路過程中會有困難但是我相信只要努力一定能真正設(shè)計出實際產(chǎn)品。
在做課程設(shè)計的過程中,我深深地感受到了自己所學(xué)到知識的有限,明白了只學(xué)好課本上的知識是不夠的,要通過圖書館和互聯(lián)網(wǎng)等各種渠道來擴充自己的知識面。
我并不在乎設(shè)計是否會成功,這不重要,最重要的是設(shè)計的過程。因為設(shè)計的過程在整個過程中所占時間最多,鍛煉我們的價值也是最大的。設(shè)計開始的時候我真的是毫無頭緒,手足無措,甚至有過放棄的想法,但終于堅持了下來。我明白了要設(shè)計一個成功的電路,除了有創(chuàng)新能力之外,必須要有扎實的知識基礎(chǔ),要熟練地掌握課本上的知識,只有這樣才能對試驗中出現(xiàn)的問題進行分析解決。在整個電路的設(shè)計過程中,花費時間最多的就是那些屬于那想法很好但是要實現(xiàn)非常困難的設(shè)計并且超出了能力范圍的。開始的時候非常著急,但是當選好了方案后,我的干勁就起來了。
總體來說,通過這次畢業(yè)設(shè)計學(xué)習(xí),讓我單片機的許多課外知識都有了大概的了解,也學(xué)會了Proteus軟件的使用,這對以后找工作也是一個優(yōu)勢。也是對平時理論學(xué)習(xí)的一個檢驗。更重要的是培養(yǎng)了我對學(xué)習(xí)的興趣,開拓了自己的眼界,為以后的學(xué)習(xí)打下了良好的基礎(chǔ),我受益匪淺。
由于本人水平有限,文中難免出現(xiàn)錯誤與不足之處,懇請各位老師批評指正。
通過本次設(shè)計,我在指導(dǎo)老師牛月蘭的精心指導(dǎo)和嚴格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,并對當前電子領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,單片機領(lǐng)域這對我今后進一步學(xué)習(xí)計算機方面的知識有極大的幫助。在此,我忠心感謝各位老師的指導(dǎo)和支持。在未來的工作和學(xué)習(xí)中,我將以更好的成績來回報各位領(lǐng)導(dǎo)、老師和同學(xué)。
通過這次的設(shè)計使我認識到我對單片機編程方面的知識知道的太少了,對于書本上的很多知識還不能靈活運用,有很多我們需要掌握的知識在等著我去學(xué)習(xí),我會在以后的學(xué)習(xí)生活中彌補我所缺少的知識。本次的設(shè)計使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實踐的轉(zhuǎn)化,怎樣將所學(xué)到的知識運用到我以后的工作中去。在大學(xué)的課堂的學(xué)習(xí)只是在給我們灌輸專業(yè)知識,而我們應(yīng)把所學(xué)的用到我們現(xiàn)實的生活中去,此次的電子時鐘設(shè)計給我奠定了一個實踐基礎(chǔ),我會在以后的學(xué)習(xí)、生活中磨練自己,使自己適應(yīng)于以后的競爭。
基于51單片機的仿真萬年歷設(shè)計.doc
(180.32 KB, 下載次數(shù): 59)
| 歡迎光臨 (http://www.denmoz.com/bbs/) | Powered by Discuz! X3.1 |