電子時鐘單片機【】_第1頁
電子時鐘單片機【】_第2頁
電子時鐘單片機【】_第3頁
電子時鐘單片機【】_第4頁
電子時鐘單片機【】_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、煙臺南山學(xué)院單片機課程設(shè)計題目電子時鐘姓 名:所在學(xué)院 所學(xué)專業(yè):班 級:學(xué) 號:指導(dǎo)教師:完成時間:摘要隨時代的發(fā)展,生活節(jié)奏的加快,人們的時間觀念愈來愈強;隨自動化、智能化技術(shù) 的發(fā)展,機電產(chǎn)品的智能度愈來愈高,用到時間提示、定時控制的地方也會愈來愈多,因 此,設(shè)計開發(fā)數(shù)字時鐘具有良好的應(yīng)用前景。由于單片機價格的低成本、高性能,在自動控制產(chǎn)品中得到了廣泛的應(yīng)用。本設(shè)計利 用Atmel公司的AT89S52單片機對電子時鐘進行開發(fā),設(shè)計了實現(xiàn)所需功能的硬件電路, 應(yīng)用匯編語言進行軟件編程,并用實驗板進行演示、驗證。在介紹本單片機的發(fā)展情況基礎(chǔ)上,說明了本設(shè)計實現(xiàn)的功能,以及實驗板硬件情況, 并

2、對各功能電路進行了分析。主要工作放在軟件編程上,用實驗板實現(xiàn)時間、日期、定時 及它們的設(shè)定功能,詳細(xì)對軟件編程流程以及調(diào)試進行了說明,并對計時誤差進行了分析 及校正,提出了定時音與顯示相沖突問題及解決方案。實驗證明效果良好,可以投入使用。本次仿真設(shè)計的目的就是讓同學(xué)們在理論學(xué)習(xí)的基礎(chǔ)上,通過完成一個涉及MCS-51單片機都種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計與編程應(yīng)用,使學(xué)生不但能夠 將課堂上學(xué)到的理論知識與實際應(yīng)用結(jié)合起來,而且能夠?qū)﹄娮与娐?、電子元器件、印?電路板等方面的知識進一步加深認(rèn)識,同時在軟件編程、排版調(diào)試、焊接技術(shù)、相關(guān)儀器 設(shè)備的使用技能等方面得到較全面的鍛煉和提高,

3、為今后能夠獨立進行某些單片機應(yīng)用系 統(tǒng)的開發(fā)設(shè)計工作打下一定的基礎(chǔ)。在本學(xué)期的開始我們進行了計算機工程實踐,在實踐 中我們以微機原理與接口技術(shù)課程中所學(xué)知識為基礎(chǔ),設(shè)計了電子時鐘系統(tǒng)。本系統(tǒng)為多 功能數(shù)字鐘的系統(tǒng)。本設(shè)計以單片機 AT89c51為控制核心,選用DS1302串行時鐘芯片, RT1602M晶顯示器實現(xiàn)液晶顯示當(dāng)前時間、日期、星期。 本電子時鐘具有日期、時、分、秒的顯示、調(diào)整功能,采用的時間制式為 24小時制,時間顯示格式為時(十位、個位)、 分(十位、個位)、秒(十位、個位)。關(guān)鍵詞:單片機 AT89S52電子時鐘 匯編語言目錄緒論 錯誤!未定義書簽.總體設(shè)計 錯誤!未定義書簽設(shè)計

4、目的 錯誤!未定義書簽總體設(shè)計 錯誤!未定義書簽.硬件設(shè)計 錯誤!未定義書簽總體接線 錯誤!未定義書簽. 2硬件連接 錯誤!未定義書簽.軟件設(shè)計 錯誤!未定義書簽主程序流程圖及程序設(shè)計 錯誤!未定義書簽鍵盤非法性檢測 錯誤!未定義書簽斷服務(wù)程序流程 錯誤!未定義書簽.仿真調(diào)試 錯誤!未定義書簽總結(jié) 錯誤!未定義書簽參考文獻 錯誤!未定義書簽緒論單片機由于其微小的體積和極低的成本,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域 中。在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力和流量也都是常用的被控參數(shù)。單片機電子 時鐘系統(tǒng),是利用單片機作為系統(tǒng)的主控制器,采用AT89S52單片機作為控制核心對時鐘芯片DS1302

5、的控制,同時讀取時間,并隊輸入信號作出處理。該單片機具有集成度高, 運算快速快,體積小、運行可靠,價值低廉的特點。鑒于這樣的重要性,我們打算設(shè)計一種基于單片機的電子時鐘系統(tǒng),實現(xiàn)對時間的調(diào)整。本設(shè)計以單片機AT89C51為控制核心,由實時時鐘模塊,鍵盤模塊組成其中實時時鐘采用DS1302可實現(xiàn)對時間的顯示,設(shè)置,計時等功能在日常生活和工作中,我們常常用到定時控制,如擴印過程中的曝光定時等。早期常 用的一些時間控制單元都使用模擬電路設(shè)計制作的,其定時準(zhǔn)確性和重復(fù)精度都不是很理 想,現(xiàn)在基本上都是基于數(shù)字技術(shù)的新一代產(chǎn)品,隨著單片機性價比的不斷提高,新一代 產(chǎn)品的應(yīng)用也越來越廣泛。大則可以構(gòu)成復(fù)雜

6、的工業(yè)過程控制系統(tǒng),完成復(fù)雜的控制功能; 小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強大、體積小、質(zhì)量輕、靈 活好用,配以適當(dāng)?shù)慕涌谛酒?,?以構(gòu)成各種各樣、功能各異的微電子產(chǎn)品。近年來隨著計算機在社會領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機的應(yīng)用正在不 斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等 特點,因此特別適合于與控制有關(guān)的系統(tǒng),越來越廣泛地應(yīng)用于自動控制,智能化儀器, 儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個領(lǐng)域,單片機往往是作為一個核心部件來 使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,以作完善。數(shù)子時 鐘在日常生活

7、中最常見,應(yīng)用也最廣泛。本次設(shè)計以硬件軟件化為指導(dǎo)思想,充分發(fā)揮單片機功能,大部分功能通過軟件編程 來實現(xiàn),電路簡單明了,系統(tǒng)穩(wěn)定性高。同時,該時鐘系統(tǒng)還具有功耗小、成本低的特點, 具有很強的實用性,而且系統(tǒng)具有一定的可擴展性。.總體設(shè)計設(shè)計目的應(yīng)用單片機控制技術(shù),設(shè)計出以89c51單片機為核心的電子時鐘,電子時鐘能夠顯示 時、分、秒顯示時間的功能,還可以進行時和分的校對,而且其片選的靈活性強。設(shè)計一個電子時鐘,可以查詢?nèi)諝v,可以設(shè)置時間,掉電時間不丟失;時鐘必須有 定鬧功能,定鬧設(shè)置掉電不丟失??傮w設(shè)計該電子時鐘由89C51, BUTTON1602 LCD液晶屏等構(gòu)成,采用晶振電路作為驅(qū)動電

8、路,利用單片機內(nèi)部定時計數(shù)器 0通過軟件擴展產(chǎn)生的一秒定時,達到時分秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿二十四小時為一天。鬧鐘和時鐘的時分秒的調(diào)節(jié) 是由一個按鍵控制,而另外一個按鍵控制時鐘和鬧鐘的時間的調(diào)節(jié)。圖1系統(tǒng)結(jié)構(gòu)框圖該電子時鐘由STC89C51 BUTTON1602 LCD液晶屏等構(gòu)成,采用晶振電路作為驅(qū)動 電路,晶振電路的晶振頻率為12MHz使用的定時器/計數(shù)器工作方式0,通過軟件擴展產(chǎn) 生的一秒定時,達到時分秒的計時,60秒為一分鐘,60分鐘為一小時,24小時為一天, 又重00:00:00開始計時。沒有按鍵按下時,時鐘正常運行,當(dāng)按下調(diào)節(jié)時鐘按鍵K1,就會關(guān)閉時鐘,當(dāng)按下

9、鬧鐘按鍵 K3時時鐘就會進入設(shè)置時間界面,但是時鐘不會停止工作, 按K2鍵,就可以對時鐘和鬧鐘要設(shè)置的時間進行調(diào)整。.硬件設(shè)計總體接線裝有UNSPTMIDE真軟件的PC機一臺,UNSPTMK六位單片機實驗箱一臺8pin排線兩 根、短路塊若干。本程序用到的實驗箱硬件模塊為:SPCE061般心及實驗多!中提供的4*4鍵盤模塊和6 位LED數(shù)碼管顯示模塊。SPE061A共提供兩個16位通用的并行I/O 口: IOA0-IOA15 IOB0-IOB15。兩個口的每一位都可以通過編程單獨定義為輸入或輸出口, 本實驗采用IOA15 一IOA8連接 4*4 鍵盤,IOA0-IOA7、IOA0-IOA15連接

10、數(shù)碼管。圖總體接線圖這部分的主要接線如下:IOA8-15接液晶顯示模塊DB0-DB7IOB4接液晶顯示模塊AOIOB5接液晶顯示模塊的R/WIOB6接液晶顯示模塊的EPDB0-DB7%雙向數(shù)據(jù)口,AO為數(shù)據(jù)/使命控制位,R/w為讀/寫信號,EP是全能端(低 電平有效)要這部分工作時Key接線與IOA低八位相連就可以了。本實驗中,定義每個鍵的功能,包括數(shù)字鍵、功能鍵和一些保留鍵,其中標(biāo)“0-9”為數(shù)字鍵,標(biāo)“ F2-F4”為保留鍵,標(biāo)“ F1”為重新設(shè)置時間鍵,標(biāo)“ ENT為確認(rèn)鍵,標(biāo) “DEC為刪除鍵。運行程序后,按常規(guī)的顯示方法,從數(shù)碼管的第一位開始顯示,六位 數(shù)碼管一次顯示時、分、秒的十位

11、、個位。設(shè)置錯誤按DEL鍵即可重新設(shè)置,設(shè)置完成按ENT8,重新設(shè)置按F1鍵。2. 2硬件連接利用4*4鍵盤和6位LED數(shù)碼管分別與SPCE061Al片機IOA 口、IOB 口的相關(guān)引腳相 接,IOA0IOA7連接和6位數(shù)碼管的ag、dp, IOA 口的高八位IOA15IOA8連接4x4鍵盤 的L1L4 C1C4 IOB15IOB12連接數(shù)碼管的位信號14, IOB2IOB1連接數(shù)碼管的位信 號56, IOB0連接數(shù)碼管的分隔符信號 DD幾把JP4、JP5的引腳全部用跳線短接起來, 用一根排線連接J27和JP7。時間的設(shè)置可以通過4*4鍵盤的數(shù)字鍵來完成,時間的顯示 通過6位數(shù)碼管來完成,以實

12、現(xiàn)計時的功能。硬件連接圖如下:abc6 d位e數(shù)f碼g管DP123456IOA0IOA1IOA2IOA3IOA4IOA14IOA5IOA13IOA6IOA12IOA7SPCE061AIOB15IOA11L1L2L3L44X4C1C2C3C4圖硬件接線圖3.軟件設(shè)計主程序流程圖及程序設(shè)計本系統(tǒng)軟件設(shè)計程序主要分為主程序(其中包括鍵盤非法性檢測、時鐘數(shù)據(jù)處理、鍵 值轉(zhuǎn)換等子模塊)、中斷服務(wù)子程序、鍵盤子程序、數(shù)碼管顯示子程序及中斷定義子程序. 主程序?qū)Τ绦蚩蚣苓M行設(shè)計在調(diào)用各個子程序?qū)崿F(xiàn)系統(tǒng)時鐘的設(shè)置及重置功能,下面分別 詳細(xì)介紹。圖主程序流程圖111213主程序代碼:#include#inclu

13、de#include 061Atypedef unsigned char uchar;#define KEY_DEL#define KEY_ENT#define KEYF1ClearCarryFlag 0YESIntFlag 1ClearIntFlag 01#define#define#define#define#define trueYESCarryFlag#define false 0unsigned int INTflag;unsigned int KeyVal;unsigned int KeyDownTimes;unsigned int KeycodeLED6;unsigned int

14、 EnterFg ;unsigned int F1flag ;unsigned int secFlag,minFlag,hourFlag;void clockPro(void);unsigned int SetKeyValPro(void);unsigned int KeyDataChange(unsigned int Key_Data);unsigned int g_Data11 =0 x003f,0 x0006,0 x005b,0 x004f,0 x0066,0 x006d,0 x007d,0 x0007,0 x007f,0 x006f;int main()unsigned int i;K

15、eyDownTimes = 0;INTflag = 0;EnterFg = 0;i = 0;Key_Init();DIG_Init();while(1)KeyVal = Key_Get();KeyVal = KeyDataChange(KeyVal)switch(KeyVal)case KEY_F1:INT_IRQ5();if(KeyDownTimes=6) KeyDownTimes=0;F1flag = true;EnterFg = false;case KEY_DEL:if (F1flag = true)if ( KeyDownTimes0)KeyDownTimes-;break;case

16、 0 xff:break;case KEY_ENT:if(KeyDownTimes=6)SP_INT_IRQ5();F1flag = false;EnterFg = truebreak;default:if(F1flag = true)if(KeyDownTimes6)KeycodeLEDKeyDownTimes = KeyVal; if(SetKeyValPro()= true)(KeyDownTimes+;break;for(i=0;i6;i+)DIG_Set(i+1,g_DataKeycodeLEDi);clockPro();F_ClearWatchdog();鍵盤非法性檢測圖鍵盤非法性

17、檢測子程序流程圖void SetKeyValPro(void)unsigned int SetKeyValPro(void) uchar flag;switch(KeyDownTimes)case 0 : if(KeycodeLEDKeyDownTimes3) flag = true;else flag = false;break;case 1: if(KeycodeLEDKeyDownTimes-1=2 ) if(KeycodeLEDKeyDownTimes5) flag = true;elseflag = false;elseflag = true;break;if(KeycodeLEDK

18、eyDownTimes6)開始秒的十位加1,個位回零秒的個位加1秒回零分的個位加1分的十位加1,個位回零圖時鐘數(shù)據(jù)處理子程序流程圖void clockPro(void) while(INTflag=1)INTflag = ClearIntFlag;if(KeycodeLED4 = 5 & KeycodeLED5 = 9)KeycodeLED4 = 0;KeycodeLED5 = 0;secFlag = YESCarryFlag;elseif(KeycodeLED5=9)KeycodeLED5= 0;KeycodeLED4+;else KeycodeLED5+;while(secFlag=1)s

19、ecFlag = ClearCarryFlag;if(KeycodeLED2 = 5 & KeycodeLED3 =9) KeycodeLED2 = 0;KeycodeLED3 = 0;minFlag = YESCarryFlag;elseif(KeycodeLED3=9)KeycodeLED3= 0;KeycodeLED2+;else KeycodeLED3+;while(minFlag=1)minFlag = ClearCarryFlag;if(KeycodeLED0=2 & KeycodeLED1 =3)KeycodeLED0 = 0;KeycodeLED1 = 0;hourFlag =

20、 YESCarryFlag;elseif(KeycodeLED1=9)KeycodeLED1= 0;KeycodeLED0+;else KeycodeLED1+;斷服務(wù)程序流程圖IRQ5中斷服務(wù)程序流程圖IRQ6中斷服務(wù)程序流程圖程序說明:在IRQ5_2HZ斷里定時1s的時間,在IRQ6_TMB曲斷里調(diào)用鍵盤程序掃 描鍵盤,而IRQ4的1KHZ中斷當(dāng)中,進行數(shù)碼管顯示的動態(tài)掃描。中斷服務(wù)程序代碼:.INCLUDE 061A.INCLUDE.INCLUDE.IRAM.PUBLIC sum;.VAR sum=0.PUBLIC _IRQ5;.PUBLIC _IRQ6;xternal _INTflag

21、;.external F_Key_Scan.PUBLIC _IRQ4 _IRQ4:push r1,r5 to spr1 = C_IRQ4_1KHz test r1,P_INT_Ctrl jnz L_IRQ4_1KHz r1 = C_IRQ4_2KHz test r1,P_INT_Ctrl jnz L_IRQ4_2KHzL_IRQ4_4KHz:call F_DIG_Drive r1 = C_IRQ4_4KHz P_INT_Clear = r1 pop r1,r5 from sp retiL_IRQ4_2KHz: P_INT_Clear = r1 pop r1,r5 from sp retiL_I

22、RQ4_1KHz: P_INT_Clear = r1 pop r1,r5 from sp reti_IRQ5:push r1,r4 to sp; r1 =0 x0008;test r1,P_INT_Ctrl;本系統(tǒng)是通過4*4鍵盤的數(shù)字鍵來完成時、分、秒的準(zhǔn)確計時,通過數(shù)碼管顯示出來。 按確認(rèn)鍵完成設(shè)置,重置鍵重新設(shè)定時間,刪除鍵刪除上一步操作,重新設(shè)置。單片機課程設(shè)計已經(jīng)接近尾聲,留給我印象最深的不是我最后做成了什么或者我的設(shè) 計實現(xiàn)了什么功能,我認(rèn)為最重要的是設(shè)計的過程。因為設(shè)計的過程在整個過程中所占時 間最多,鍛煉我們的價值也是最大的。設(shè)計開始的時候我真的是毫無頭緒,甚至有過放棄 的想法,但終于堅持了下來。我明白了要設(shè)計一個成功的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論