微機系統(tǒng)課程設(shè)計基于單片機的數(shù)字時鐘設(shè)計_第1頁
微機系統(tǒng)課程設(shè)計基于單片機的數(shù)字時鐘設(shè)計_第2頁
微機系統(tǒng)課程設(shè)計基于單片機的數(shù)字時鐘設(shè)計_第3頁
微機系統(tǒng)課程設(shè)計基于單片機的數(shù)字時鐘設(shè)計_第4頁
微機系統(tǒng)課程設(shè)計基于單片機的數(shù)字時鐘設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微 機 系 統(tǒng) 課 程 設(shè) 計 題目: 數(shù)字時鐘 班級: 小組: 指導(dǎo)教師: 設(shè)計日期: 目錄摘要 04引言05設(shè)計方案論證及選擇-05硬件設(shè)計061 系統(tǒng)框圖 062 控制部分電路 07 3 原件清單 09軟件設(shè)計 10設(shè)計數(shù)字鐘13 1 數(shù)字鐘的操作如下 132 流程圖 13結(jié)束語 21主要參考文獻(xiàn) 21 附錄 實物圖 23 摘要 :近年來隨著計算機在社會領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機的應(yīng)用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關(guān)的系統(tǒng),越來越廣泛地應(yīng)用于自動控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家

2、用電器等各個領(lǐng)域,單片機往往是作為一個核心部件來使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,以作完善。本文介紹了基于單片機的數(shù)字鐘的設(shè)計,詳細(xì)討論了它從軟件上實現(xiàn)的過程,重點在時鐘調(diào)整的方式:查詢和中斷的比較,然后,對數(shù)字鐘的穩(wěn)定性和精確性作了相關(guān)的討論。在文章的最后,給出了采用中斷方式實現(xiàn)的數(shù)字鐘的源程序。 關(guān)鍵字:單片機,數(shù)字鐘,數(shù)據(jù)緩沖區(qū),中斷,定時,消抖引言1.基于單片機的數(shù)字鐘電路的設(shè)計 本系統(tǒng)采用單片機stc89c52控制,以stc89c52為核心,它完成整個系統(tǒng)的信息處理及協(xié)調(diào)功能,本次設(shè)計我們選用宏晶公司的stc89c52芯片,其功能強大,兼容性好,還支持軟件

3、選擇的空間和掉電兩種節(jié)電方式。本設(shè)計的軟件,硬件都采用模塊化的設(shè)計方法,提高了設(shè)計的效率。 本次設(shè)計通過對一個實現(xiàn)定時、時鐘顯示、串口通信等功能的時間系統(tǒng)的設(shè)計,其中結(jié)合了數(shù)據(jù)轉(zhuǎn)換顯示、數(shù)碼管顯示、動態(tài)掃描、單片機定時中斷等技術(shù)。系統(tǒng)由stc89c52、led數(shù)碼管、按鍵、三極管、hd74ls244p、max2020pe、電阻等組成。能實現(xiàn)時鐘時、分、秒的顯示,同時具有時間設(shè)置功能。文章后附有電路圖、原件清單,程序清單。設(shè)計方案論證及選擇該課題主要有兩種方案:一種是用數(shù)字電路通過硬件實現(xiàn),另一種是用單片機通過軟件編程實現(xiàn)。在以上兩種方案中:第一種是直接采用的是數(shù)字電路,但是在外圍電路和控制比較

4、麻煩,需要比較多的器件來控制;第二種是采用軟件來實現(xiàn)一些特定功能,硬件電路只需要一些顯示部件和控制部件,其他的都是由軟件來實現(xiàn)。第一種一切都由硬件實現(xiàn),幾乎沒有軟件編程,但電路復(fù)雜、芯片多、后續(xù)制板及硬件調(diào)試麻煩而且成本高;第二種雖電路簡單、芯片少、成本低,但編寫程序相當(dāng)復(fù)雜。經(jīng)過一番利弊的權(quán)衡及對今后電子業(yè)發(fā)展趨勢的考量,最后敲定用單片機方案實現(xiàn)。另外用單片機實現(xiàn)本設(shè)計也有兩種可選的子方案:第一種,用軟件編程實現(xiàn) 設(shè)計中的鐘控功能;另一種則選用單片機加時鐘芯片實現(xiàn)鐘控功能。在本次主要的是時間的設(shè)計,因此對時間的精度要求是比較高的,竟量是誤差減少到最小值,但是為了更好的練習(xí)復(fù)習(xí)自己在以前所學(xué)習(xí)

5、的編程能力,所以不采用單片機加時鐘芯片的方案,直接用軟件編程實現(xiàn)鐘控功能??偟膩砜矗瑔纹瑱C已成為工控領(lǐng)域、尖端武器、日常生活中最廣泛使用的計 算機,且將進(jìn)一步向著cmos化、低功耗、小體積、大容量、高性能、低價格方向發(fā)展,因此敲定用單片機加軟編程方案符合今后電子業(yè)發(fā)展趨勢;另外運用此方案既能將自己以前學(xué)過的模擬電路、數(shù)字電路、單片機、匯編語言、protel99等知識結(jié)合實踐進(jìn)行一次全面的檢測,又能為將來實際制作電路積累寶貴的經(jīng)驗。 硬件設(shè)計 1. 系統(tǒng)框圖 如圖1:2. 控制部分電路 stc89c52單片機概述:stc89c52單片機是國宏晶公司生產(chǎn)的采用 高性能的靜態(tài)stc89c52設(shè)計,是

6、一個低電壓,高性能chmos 8位單片 機,片內(nèi)含4kbytes的可反復(fù)擦寫的只讀flash程序存儲器和128 bytes 的隨機存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失 性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理 器和flash存儲單元。stc89c52是一個功能強大的單片機,但它只有40引腳,32個雙向輸入 /輸出(i/o)端口,其中p1是一個完整的8位雙向i/o口,兩個外中斷 口,兩個16位可編程定時計數(shù)器,兩個全雙向串行通信口,一個模擬比 較放大器。此外,由于器件采用了動態(tài)設(shè)計,可提供很寬的操作頻率范 圍(頻率0hz24mhz)。即具備

7、可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚 醒方式式ram、定時/計數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入繼 續(xù)工作狀態(tài)。省電模式中,片內(nèi)ram將被凍結(jié),時鐘停止振蕩,所有功 能停止工作,直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運行。在本設(shè)計中stc89c52的時鐘電路采用內(nèi)部時鐘方式,此方式是在xtal1 和xtal2兩端跨接晶體或陶瓷諧振器。在本設(shè)計中xtal1和xtal2兩端跨接11.0592mhz晶體振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘電路。手動復(fù)位的按鍵電平復(fù)位本設(shè)計中采用lcd液晶顯示屏max232cpe串口轉(zhuǎn)并口3. 原件清單 usb端口 1 個六引腳開關(guān) 1個四引腳按鍵 4個九針串口 1 個發(fā)光

8、二極管 1 個、瓷片電容0.1u f 4個瓷片電容 33pf 2個電解電容10uf 1個max232cpe芯片 1個晶振11.0592 1 個at89c51 芯片 1 個lcd1602液晶顯示 1 個mhdr1x9排阻 1 個滑動電阻10k 1個電阻:1k 1 個10k 1個4.7k 2個 5.1k 3 個軟件設(shè)計程序代碼:#include <reg52.h>#define uchar unsigned char#define uint unsigned intuint num,k1num,count;uchar hour,min,sec;sbit lcde = p27;sbit

9、lcdrs = p26;sbit lcdrw = p25;sbit k1 = p10;sbit k2 = p11;sbit k3 = p12;uchar code table = " 2011-03-29 tue"uchar code table1 = " 00:00:00"void delay (unsigned int i) uchar j;for (i;i>0;i-)for (j=110;j>0;j-);void write_com(uchar com) lcdrs = 0;lcdrw = 0;p0 = com;delay(5);lcd

10、e = 1;delay(5);lcde = 0;void write_data(uchar d)lcdrs = 1;lcdrw = 0;p0 = d;delay(5);lcde = 1;delay(5);lcde = 0;void write_hms(uchar da,uchar add)uchar shi,ge;shi = da/10;ge = da%10;write_com(0x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge);void keyscan() if (k1 = 0)delay(5);if (k1 = 0)k1num+;

11、while(!k1);if (k1num = 1)tr0 = 0;write_com(0x80+0x40+10);write_com(0x0f);if (k1num = 2)write_com(0x80+0x40+7);write_com(0x0f);if (k1num = 3)write_com(0x80+0x40+4);write_com(0x0f);if (k1num = 4)k1num = 0;write_com(0x0c);tr0 = 1;if (k1num != 0)if (k2 = 0)delay(5);if (k2 = 0)while(!k2);if (k1num = 1)se

12、c+;if (sec = 60)sec = 0;write_hms(sec,10);write_com(0x80+0x40+10);if (k1num = 2)min+;if (min = 60)min = 0;write_hms(min,7);write_com(0x80+0x40+7);if (k1num = 3)hour+;if (hour = 24)hour = 0;write_hms(hour,4);write_com(0x80+0x40+4);if (k3 = 0) delay(5);if (k3 = 0)while(!k3);if (k1num = 1)sec-;if (sec

13、= -1)sec = 59;write_hms(sec,10);write_com(0x80+0x40+10);if (k1num = 2)min-;if (min = -1)min = 59;write_hms(min,7);write_com(0x80+0x40+7);if (k1num = 3)hour-;if (hour = -1)hour = 23;write_hms(hour,4);write_com(0x80+0x40+4);void init()delay(20);write_com(0x38);delay(1);write_com(0x0c);delay(1);write_c

14、om(0x06);delay(1);write_com(0x01);delay(1);tmod = 0x01;th0 = (65536-50000)/256;tl0 = (65536-50000)%256;ea = 1;et0 = 1;tr0 = 1;void main() init();write_com(0x80);for (num=0;num<15;num+)write_data(tablenum);delay(10);write_com(0x80+0x40);for (num=0;num<12;num+)write_data(table1num);delay(10);whi

15、le(1)keyscan();void timer0_irq(void) interrupt 1th0 = (65536-50000)/256;tl0 = (65536-50000)%256;count+;if (count = 20)count = 0;sec+;if (sec = 60)sec = 0;min+;if (min = 60)min = 0;hour+;if (hour = 24)hour = 0;write_hms(hour,4);write_hms(min,7);write_hms(sec,10);設(shè)計如下數(shù)字鐘1數(shù)字鐘的操作如下: 按鍵r 狀態(tài)1:r2,調(diào)整數(shù)字鐘的時鐘數(shù)

16、據(jù)。 狀態(tài)2:r3,調(diào)整數(shù)字鐘的時鐘數(shù)據(jù)。 狀態(tài)3: r4, 調(diào)整數(shù)字鐘的時鐘數(shù)據(jù)。按鍵rst 狀態(tài)4:rst,對數(shù)字鐘進(jìn)行復(fù)位清零操作在進(jìn)行調(diào)整或設(shè)置狀態(tài)時,顯示對應(yīng)狀態(tài)的數(shù)據(jù)并且對應(yīng)的各調(diào)整位數(shù)碼dp點亮。這樣可以使調(diào)整更加可視化。按鍵完成選擇操作,和秒表的清零、調(diào)整操作。在進(jìn)入了時間調(diào)整狀態(tài)或定時設(shè)置狀態(tài)時,按此鍵可以加一,或在秒表啟動后處于停止?fàn)顟B(tài)時,按此鍵可以完成清零操作。按鍵秒表啟止鍵,此鍵必須在秒表狀態(tài)進(jìn)入了之后才有效。 2流程圖: 在以下流程圖中只描述了基本的功能,如給顯示位加點,中斷程序狀態(tài)調(diào)整,加一操作,顯示狀態(tài)的切換,在流程圖中都沒有描述。但其設(shè)計就是基于以上介紹的顯示指針,和狀態(tài)指針的思想。在程序中用r0,r1充當(dāng)此指針。程序設(shè)計的基本流程圖如下結(jié)束語在這次難得的實訓(xùn)中我鍛煉了自己的思考能力和動手能力。通過題目選擇和設(shè)計電路的過程中,加強了我思考問題的完整性。在方案設(shè)計選擇和芯片的選擇上,培養(yǎng)了我們綜合應(yīng)用單片機的能力,對單片機的各個管腳的功能也有了進(jìn)一步的認(rèn)識。還鍛煉我們個人的查閱技術(shù)資料的能力,動手能力,發(fā)現(xiàn)問題,解決問題的能力。并且我們熟練掌握了

溫馨提示

  • 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

提交評論