基于單片機(jī)設(shè)計簡易數(shù)字鐘_第1頁
基于單片機(jī)設(shè)計簡易數(shù)字鐘_第2頁
基于單片機(jī)設(shè)計簡易數(shù)字鐘_第3頁
基于單片機(jī)設(shè)計簡易數(shù)字鐘_第4頁
基于單片機(jī)設(shè)計簡易數(shù)字鐘_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、信息與電氣工程學(xué)院(課程設(shè)計說明書(2015/2016 學(xué)年第 二學(xué)期)課程名稱 : 單片機(jī)應(yīng)用技術(shù)課程設(shè)計 題 目 : 簡易數(shù)字鐘設(shè)計 專業(yè)班級 : 電氣工程及其自動化1303班 學(xué)生姓名 : 學(xué) 號: 指導(dǎo)教師 : 劉增環(huán)、岑毅南、李兵等 設(shè)計周數(shù) : 兩周 設(shè)計成績 : 2016年 6月 24日【摘要】20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與

2、機(jī)械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。單片機(jī)數(shù)字時鐘是以單片機(jī)為核心,在它的基礎(chǔ)上設(shè)計出來的數(shù)字時鐘,本設(shè)計采用了STC公司生產(chǎn)的AT80C51型單片機(jī)設(shè)計了一個單片機(jī)最小系統(tǒng),外接LED顯示電路,按鍵電路,晶振電路,復(fù)位電路模塊構(gòu)成了一個簡易的數(shù)字鐘,具有顯示、時、分、秒的功能,且時、分、秒每一個參數(shù)都可以自行設(shè)置,以實現(xiàn)時間的校正,總體來說實現(xiàn)了一個數(shù)字時鐘的應(yīng)有功能。關(guān)鍵詞:80C51系列單片機(jī)、單片機(jī)最小系統(tǒng)、時鐘定時器、4位一體數(shù)碼管顯示目錄課程設(shè)計正文2一 系統(tǒng)工作原理21.1 功能說明21.2 基本原理2二 硬件設(shè)計32.

3、1 單片機(jī)32.2 復(fù)位電路42.3 晶振電路42.4 鍵盤調(diào)整單元52.5 數(shù)碼管與三極管顯示6三 軟件設(shè)計73.1 系統(tǒng)主程序73.2 中斷程序73.3顯示函數(shù)73.4鍵盤掃描程序83.5時鐘實現(xiàn)的基本方法8四 心得體會8n 附錄 源程序9I單片機(jī)課程設(shè)計報告課程設(shè)計的目的(1) 鞏固、加深和擴(kuò)大單片機(jī)應(yīng)用的知識面,提高綜合及靈活運用所學(xué)知識解決工業(yè)控制能力;(2) 培養(yǎng)針對課題需要,選擇和查閱有關(guān)手冊、圖表及文獻(xiàn)資料的自學(xué)能力,提高組成系統(tǒng)、編程、調(diào)試的動手能力;(3) 對課題設(shè)計方案的分析、選擇、比較、熟悉單片機(jī)應(yīng)用系統(tǒng)開發(fā)、研制過程,軟硬件設(shè)計的方法、內(nèi)容及步驟。課程設(shè)計正文一 系統(tǒng)

4、工作原理1.1 功能說明全面了解掌握MCS-51的基本知識,由于該系列單片機(jī)具有體積小、功耗低、價格便宜、易于產(chǎn)品化等特點,可以更加方便的實現(xiàn)以下特點:1、 準(zhǔn)確及時,以數(shù)字形式顯示一位分、兩位秒的時間;2、 分最大計到10,秒的計時要求為60進(jìn)位;3、 三位數(shù)碼管,顯示分和秒,按鍵“功能鍵”依次選擇調(diào)整“時”、“分”, 按鍵的“加鍵”依次加1,按鍵“減鍵”依次減1;4、 晶振電路起到減小誤差,提高精確度的作用;5、 整分報時。1.2 基本原理該系統(tǒng)主要由復(fù)位電路、晶振電路、按鍵電路,數(shù)碼管顯示電路和STC80C51單片機(jī)組成。該數(shù)字時鐘設(shè)計采用單片機(jī)內(nèi)部的定時器來定時,然后通過軟件編程來實現(xiàn)

5、時鐘的顯示,這種設(shè)計方案的優(yōu)點是外圍器件少,電路簡單清晰,電路焊接容易,出問題的故障幾率小。系統(tǒng)結(jié)構(gòu)圖如圖1所示。四位數(shù)碼管顯示復(fù)位電路晶振電路按鍵開關(guān)80C51控制器圖1二 硬件設(shè)計2.1 單片機(jī)STC90C52系列單片機(jī)采用了CMOS技術(shù)制造,較之AT89c51系列單片機(jī),集成度高、速度快、功耗低。主要由9個部件組成,分別是:1個8位中央處理器;4KBFlash存儲器;128B的數(shù)據(jù)存儲器;32條I/O口線;2個定時器/計數(shù)器;1個具有5個中斷源、2個優(yōu)先級的中斷嵌套結(jié)構(gòu);全雙工UART的串行口;特殊功能寄存器;1個片內(nèi)振蕩器和時鐘電路。如圖2所示。s圖2 STC80C51單片機(jī)2.2 復(fù)

6、位電路STC90C52 的復(fù)位端高電平有效。RST端若由低電平上升到高電平并持續(xù)2個周期,系統(tǒng)將實現(xiàn)一次復(fù)位操作。在復(fù)位電路中,下拉電阻具有拉低電平作用,按一下復(fù)位開關(guān)就使在RST端出現(xiàn)一段時間的高電平。復(fù)位電路如圖3所示。圖3復(fù)位電路2.3 晶振電路外接12MHZ晶振和兩個30pF 電容組成系統(tǒng)的內(nèi)部時鐘電路。將外部已有信號引入單片機(jī)內(nèi),這種方式適宜用來使單片機(jī)的時鐘與外部信號保持同步。晶振電路如圖4所示。圖4 晶振電路2.4 鍵盤調(diào)整單元當(dāng)要對時鐘進(jìn)行調(diào)時時,就要用到鍵盤進(jìn)行時間修改。由于調(diào)節(jié)信息不多,故采用3個獨立鍵盤即可,分別實現(xiàn)功能、增大、減小等作用。將所有掃描線置成低電平,檢查輸入

7、線是否為低電平,若無低電平則不是按鍵操作,延時一段時間,再次將所有掃描線置成低電平,檢查輸入線是否為低電平,如果有低電平則是按鍵操作,若無低電平則不是按鍵操作,返回,即完成按鍵掃描。鍵盤原理圖如圖5所示圖5鍵盤原理圖S1:接P2.0口, 開始功能。S2:接P2.1口,具有切換功能,可以切換到時、分,從而實現(xiàn)對時、分的調(diào)整,再次按下功能鍵S2則返回,繼續(xù)計時。S3:接P2.2口,實現(xiàn)時和分的增大S4:接P2.3口, 實現(xiàn)時和分的減小2.5 數(shù)碼管與三極管顯示顯示單元由3個8段共陰數(shù)碼管組成,數(shù)碼管位選端分別接P1.0、P1.1、P1.2用于顯示一位分和兩位秒; 按照工作方式, 數(shù)碼管顯示可以分為

8、靜態(tài)顯示和動態(tài)掃描。所謂靜態(tài)顯示, 就是每一個數(shù)碼管的段碼都要獨占具有鎖存功能的輸出口, CPU把要顯示的字碼送到輸出口上,就可以使數(shù)碼管顯示對應(yīng)的字符, 直到下一次送出另外一個字碼之前, 顯示的內(nèi)容一直不會消失;動態(tài)掃描是把所有顯示器的8個段碼中的A-dp的各個相同段連接在一起, 接到一個公共的輸出口上,而數(shù)碼管的位端分別接在另外的輸出口上,通過這兩個輸出口的兩組信號相互作用來產(chǎn)生顯示效果。即讓各位數(shù)碼管按照一定順序輪流顯示, 只要掃描頻率足夠高, 由于人眼的“ 視覺暫留”現(xiàn)象,就能連續(xù)穩(wěn)定的顯示動態(tài)掃描其特點在于能顯著降低顯示部分成本,大大減少顯示接口的連線結(jié)構(gòu)。該系統(tǒng)采用動態(tài)掃描顯示。三

9、極管放大電路中發(fā)射極正向偏置,集電極反向偏置是使三極管工作的必要條件,當(dāng)PNP管的VC<VB<VE時,使得集電結(jié)反偏,發(fā)射結(jié)正偏時,管子的發(fā)射極電流流入管子,基極電流和集電極電流流出管子,且集電極電流跟基極電流之間成關(guān)系,三極電流滿足IE=IB+IC=IB(1+·IB)。即,基極電流可以控制集電極電流,這種控制作用就稱為管子的放大作用,圖中1K電阻為了限流。如圖6所示。圖6 數(shù)碼管顯示5單片機(jī)課程設(shè)計報告三 軟件設(shè)計3.1 系統(tǒng)主程序中需要對各個模塊進(jìn)行初始化,并且判斷定時器是否溢出20次,用以確定是否到達(dá)1S,初始化主要包括:設(shè)置定時器0和定時器1的工作方式為方式1,定

10、時器賦初值,開總中斷,開定時器0和定時器1中斷,啟動定時器。3.2 中斷程序定時器0中斷:單片機(jī)晶振12MHZ,主要是使用定時器0方式1,定時5ms,用來控制數(shù)碼管的位選信號。且分為三種情況,P0口分別輸送分鐘和秒。定時器1中斷:單片機(jī)晶振12MHZ,主要是使用定時器0方式1,每50ms溢出一次,計數(shù)加一次,計數(shù)20次,到時1S;秒加一。秒鐘加到60,分加一,同時秒鐘置0,蜂鳴器響。分加到10,分和秒都置0,3.3顯示函數(shù)本設(shè)計采用共陰數(shù)碼管顯示,顯示兩位秒,為秒鐘的個位與十位,second2=second/10;second1=second%10;P1控制數(shù)碼管的位選, 如下:P1 = (P

11、1&0xf0)|0x0e;P0 = minute;P1 = (P1&0xf0)|0x0d; P0 = second2;P1 = (P1&0xf0)|0x0b; P0 = second1;3.4鍵盤掃描程序鍵盤采用查詢的方式,一旦有s1按鍵按下,數(shù)字鐘開始工作,定時器1開始計時。按一次s2鍵,是對分鐘進(jìn)行調(diào)節(jié),按二次s2鍵是對秒鐘進(jìn)行調(diào)節(jié);s3,s4鍵分別是加減鍵,只有在s2鍵被按下的前提下,s3,s4鍵才有效;3.5時鐘實現(xiàn)的基本方法時鐘的最小計時單位是秒,使用定時器0方式1,把定時器的定時時間定為50ms。這樣,計數(shù)溢出20次即可得到時鐘的最小計時單位:秒單元滿60,

12、則分單元的內(nèi)容加1;分單元滿10,則將分、秒的內(nèi)容全部清零。 四 心得體會在基于單片機(jī)的數(shù)字時鐘電路設(shè)計過程中,我學(xué)到了很多重要的東西,其中最重要的是如何將實踐和理論相聯(lián)系,怎樣將我所學(xué)到的知識運用到我以后的工作中去。大學(xué)的課堂的學(xué)習(xí)只是在給我們灌輸專業(yè)知識,而我們應(yīng)把所學(xué)的用到我們現(xiàn)實的生活中去,此次的時鐘設(shè)計給我奠定了一個實踐基礎(chǔ)。本系統(tǒng)的設(shè)計應(yīng)用到了模擬電子技術(shù)、數(shù)字電子技術(shù)、單片機(jī)控制技術(shù)、電路焊接工藝等多方面的知識,所設(shè)計的時鐘電路,達(dá)到了題目要求。這次課程設(shè)計使我得到了很大收獲:不僅學(xué)到了許多了關(guān)于單片機(jī)方面的知識,還提高了實驗技能;而且也使我的動手能力和電路設(shè)計能力得到了極大的提

13、高。在此次設(shè)計中,我的難點是程序的調(diào)試,由于以前學(xué)業(yè)不精,所以編一個完整的程序很是吃力!但是經(jīng)過這一段時間的學(xué)習(xí),我還是解決了一些問題。軟件調(diào)試中也出現(xiàn)了一些問題,就是程序在編譯中仿真器的設(shè)置出現(xiàn)了錯誤,從而使系統(tǒng)的編譯通不過,給系統(tǒng)的調(diào)試帶來了極大的不便,所以對軟件的使用還須更進(jìn)一步的熟練掌握。最后,我要感謝老師在此次課程設(shè)計中的悉心指導(dǎo)與幫助,讓我的課程設(shè)計得以順利完成。n 附錄 源程序#include <reg52.h>#define uchar unsigned char uchar ds_code=0,second2=0,second1=0,sum=0,F_flag,S_

14、flag;char minute = 0;char second = 0;uchar time_temp = 0;sbit DS0 = P10;sbit DS1 = P11;sbit DS2 = P12;sbit key1=P20;/開始鍵sbit key2=P21;/功能鍵sbit key3=P22;/加鍵sbit key4=P23;/減鍵sbit SPEAKER = P14;/*延時函數(shù)*void delay(uchar x) unsigned int a,b; for(a=x;a>0;a-) for(b=110;b>0;b-);/*秒顯示函數(shù)*void second_div(

15、void)second2 = second/10;second1 = second%10;/*按鍵掃描函數(shù)*void Key(void)P2 = 0xff;if(P2!=0xff)delay(50);if(P2!=0xff)if(key1=0) TR1 = 1;if(key2=0) delay(50); / 消抖 if(key2=0) while(!key2);/松手檢測 TR0=1; TR1=0;/關(guān)閉定時器 sum+; if(sum=1) F_flag=1; S_flag=0; if(key3=0) delay(50); if(key3=0) while(!key3); minute+;

16、if(minute=10) minute=0; if(key4=0) delay(50); if(key4=0) while(!key4);minute-;if(minute=-1)minute=9; if(sum=2) F_flag=0; S_flag=1; if(key3=0) delay(50); if(key3=0) while(!key3); second+; if(second=60) second=0;delay(50);minute+; if(key4=0) delay(50); if(key4=0) while(!key4); second-; if(second=-1) s

17、econd=59;delay(50);minute-; second_div(); if(sum=3) F_flag=1; /打開標(biāo)志位 S_flag=1; sum=0; /Sum清零 TR0=1;/打開定時器TR1=1; /*主函數(shù)*void main(void)SPEAKER = 1;TMOD = 0x11;TH0 = (65536-5000)/256;TL0 = (65536-5000)%256;TH1 = (65536-50000)/256;TL1 = (65536-50000)%256;EA = 1;ET0 = 1;TF0 = 0;TR0 = 1;ET1 = 1;TF1 = 0;wh

18、ile(1)Key();/*定時器0*void Timer_0(void) interrupt 1ET0 = 0;switch(ds_code)case 0:P1 = (P1&0xf0)|0x0e;P0 = minute;break;case 1:P1 = (P1&0xf0)|0x0d; P0 = second2;break;case 2:P1 = (P1&0xf0)|0x0b; P0 = second1;break;default:break;ds_code+;if(ds_code>2)ds_code = 0;TH0 = (65536-5000)/256;TL0 = (65536-5000)%256;ET0 = 1; /*定時器1*void Timer_1(void) interrupt 3ET1 = 0;time_temp+;if(time_temp>=20)time_temp = 0;second+;if(second=60) m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論