基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)_第1頁
基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)_第2頁
基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)_第3頁
基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)_第4頁
基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)*山東工商學(xué)院 摘 要:本文介紹了基于51單片機(jī)的電子時(shí)鐘的設(shè)計(jì),從硬件和軟件兩個(gè)方面給出了具體實(shí)現(xiàn)過程。該時(shí)鐘的設(shè)計(jì)采用功能分塊的思想方法,將硬件電路劃分為開關(guān)電路,顯示驅(qū)動(dòng)電路和數(shù)碼管電路等若干獨(dú)立模塊,而軟件的實(shí)現(xiàn)則由鬧鐘的聲音程序、時(shí)間顯示程序、日期顯示程序,秒表顯示程序,時(shí)間調(diào)整程序、鬧鐘調(diào)整程序、定時(shí)調(diào)整程序,延時(shí)程序等組成。文中給出了各個(gè)模塊的電路圖,并用Proteus的ISIS軟件對電子時(shí)鐘系統(tǒng)的各個(gè)功能進(jìn)行了仿真,并給出了相應(yīng)的仿真結(jié)果圖像。關(guān)鍵詞:單片機(jī);電子時(shí)鐘;鍵盤控制Electronic Clock Design Based on 51 S

2、ingle-chip*Shandong Institute of Business and Technology , Abstract: This paper introduces the electronic clock design based on 51 single-chip microcomputer, and it provides us specific implementation process from aspects of hardware and software. This clock is designed by the method of function blo

3、cks. In hardware, its circuit is divided into switch block, display drive block and digital control block. However, the software consist of the program of alarm clock, time display, date display, stopwatch display, time adjust, timing adjustment, the alarm clock adjustment, time delay and so on. Cir

4、cuit diagrams of each module is also given and the corresponding simulation image of this clock produced by software of Proteus is also showed in this paper. Key words: single chip microcomputer; electronic clock; Keyboard control一, 引言1957年,Ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開始迅速發(fā)展起來?,F(xiàn)代的電子時(shí)鐘是基于單片機(jī)

5、的一種計(jì)時(shí)工具,采用延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過計(jì)數(shù)方式進(jìn)行滿六十秒分鐘進(jìn)一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)小時(shí)清零。從而達(dá)到計(jì)時(shí)的功能,是人民日常生活補(bǔ)課缺少的工具。現(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí)、分、秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對,片選的靈活性好。二,時(shí)鐘的基本原理分析利用單片機(jī)定時(shí)器完成計(jì)時(shí)功能,定時(shí)器0計(jì)時(shí)中斷程序每隔0.01

6、s中斷一次并當(dāng)作一個(gè)計(jì)數(shù),設(shè)定定時(shí)1秒的中斷計(jì)數(shù)初值為100,每中斷一次中斷計(jì)數(shù)初值減1,當(dāng)減到0時(shí),則表示1s到了,秒變量加1,同理再判斷是否1min鐘到了,再判斷是否1h到了。為了將時(shí)間在LED數(shù)碼管上顯示,可采用靜態(tài)顯示法和動(dòng)態(tài)顯示法,由于靜態(tài)顯示法需要譯碼器,數(shù)據(jù)鎖存器等較多硬件,可采用動(dòng)態(tài)顯示法實(shí)現(xiàn)LED顯示,通過對每位數(shù)碼管的依次掃描,使對應(yīng)數(shù)碼管亮,同時(shí)向該數(shù)碼管送對應(yīng)的字碼,使其顯示數(shù)字。由于數(shù)碼管掃描周期很短,由于人眼的視覺暫留效應(yīng),使數(shù)碼管看起來總是亮的,從而實(shí)現(xiàn)了各種顯示。三,時(shí)鐘設(shè)計(jì)分析針對要實(shí)現(xiàn)的功能,采用AT89S51單片機(jī)進(jìn)行設(shè)計(jì),AT89S51 單片機(jī)是一款低功

7、耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB在線可編程(ISP)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS- 51指令系統(tǒng)及80C51引腳結(jié)構(gòu)。這樣,既能做到經(jīng)濟(jì)合理又能實(shí)現(xiàn)預(yù)期的功能。在程序方面,采用分塊設(shè)計(jì)的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項(xiàng)功能。程序可分為鬧鐘的聲音程序、時(shí)間顯示程序、日期顯示程序,秒表顯示程序,時(shí)間調(diào)整程序、鬧鐘調(diào)整程序、定時(shí)調(diào)整程序,延時(shí)程序等。運(yùn)用這種方法,關(guān)鍵在于各模塊的兼容和配合,若各模塊不匹配會(huì)出現(xiàn)意想不到的錯(cuò)誤。首先,在編程之前必須了解硬件結(jié)構(gòu)尤其是各引腳的用法,以及內(nèi)部寄存

8、器、存儲(chǔ)單元的用法,否則,編程無從下手,電路也無法設(shè)計(jì)。這是前期準(zhǔn)備工作。第二部分是硬件部分:依據(jù)想要的功能分塊設(shè)計(jì)設(shè)計(jì),比如輸入需要開關(guān)電路,輸出需要顯示驅(qū)動(dòng)電路和數(shù)碼管電路等。第三部分是軟件部分:先學(xué)習(xí)理解匯編語言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè)計(jì)。第四部分是軟件畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中進(jìn)行仿真,仿真無法完成時(shí)檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。第六部分是硬件實(shí)現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計(jì)的完全一樣一般能實(shí)現(xiàn)想要的功能。最后進(jìn)行功能擴(kuò)展,在已經(jīng)正

9、確的設(shè)計(jì)基礎(chǔ)上,添加額外的功能!四,時(shí)鐘的實(shí)現(xiàn)A.電路設(shè)計(jì)1. 整體設(shè)計(jì)此次設(shè)計(jì)主要是應(yīng)用單片機(jī)來設(shè)計(jì)電子時(shí)鐘,硬件部分主要分以下電路模塊:顯示電路用8個(gè)共陰數(shù)碼管分別顯示,星期(年份),小時(shí)、分鐘(月份)和秒(日),通過動(dòng)態(tài)掃描進(jìn)行顯示,從而避免了譯碼器的使用,同時(shí)節(jié)約了I/0端口,使電路更加簡單。單片機(jī)采用AT89S51系列,這種單片機(jī)應(yīng)用簡單,適合電子鐘設(shè)計(jì)。電路的總體設(shè)計(jì)框架如下:單片機(jī)輸入部分晶振和復(fù)位輸出部分2. 分塊設(shè)計(jì)模塊電路主要分為:輸入部分、輸出部分、復(fù)位和晶振電路。2.1 輸入部分輸入信號(hào)主要是各種模式選擇和調(diào)整信號(hào),由按鍵開關(guān)提供。以下為輸入部分樣例:在本實(shí)驗(yàn)中主要用用

10、P3口輸入按鍵信號(hào),還用到了特殊的P0口。對于P0口,由于其存在高阻狀態(tài),為了實(shí)現(xiàn)開關(guān)功能,給其添加上拉電阻,具體如下圖所示:2.2 輸出部分本電路的輸出信號(hào)為7段數(shù)碼管的位選和段選信號(hào),鬧鈴脈沖信號(hào),提示燈信號(hào)。本實(shí)驗(yàn)的數(shù)碼管是共陰的,為了防止段選信號(hào)不能驅(qū)動(dòng)數(shù)碼管,故在P1口連接上拉電阻后,再送段選信號(hào),以提高驅(qū)動(dòng),位選信號(hào)直接從P2口接入,如下圖:鬧鈴由P2.6端輸出,模塊如下:2.3 晶振與復(fù)位電路本實(shí)驗(yàn)單片機(jī)時(shí)鐘用內(nèi)部時(shí)鐘,模塊如下:復(fù)位電路為手動(dòng)復(fù)位構(gòu)成,模塊如下:各模塊拼接組合,電路總體設(shè)計(jì)圖如下:B.程序設(shè)計(jì)B.1 程序總體設(shè)計(jì)本實(shí)驗(yàn)用匯編程序完成.程序總的流程圖如下:主程序開

11、始顯示星期,時(shí),分,秒是否有調(diào) 轉(zhuǎn)?T0中斷秒,分,時(shí)等進(jìn)位閃爍提示顯示日期并調(diào)整響鈴提示時(shí)間調(diào)整鬧鈴設(shè)置定時(shí)設(shè)置鈴聲測試秒表模式回主程序定時(shí)到按0鍵按0鍵鬧鈴到按1鍵按2鍵按3鍵按4鍵按5鍵按7鍵7鍵恢復(fù)按4鍵按8鍵按0鍵按0鍵倒計(jì)時(shí)啟動(dòng)并顯示回主程序秒表暫停秒表清零回主程序按7鍵3.B.2 程序主要模塊B.2.1 延時(shí)模塊數(shù)碼管顯示動(dòng)態(tài)掃描時(shí),用到延時(shí)程序,這里使用延遲1ms的程序,此程序需反復(fù)調(diào),除數(shù)碼管動(dòng)態(tài)掃描外,數(shù)碼管的閃爍提示,以及音樂模塊也用到了延時(shí),只是延時(shí)的長短不同罷了,在此不再贅述。B.2.2中斷服務(wù)程序本實(shí)驗(yàn)中,計(jì)數(shù)器T0,T1中斷都有運(yùn)用,其中T0中斷為時(shí)鐘定時(shí)所用,T

12、1中斷用于音樂播放。T0的定時(shí)長度為0.01s,工作于方式1,計(jì)數(shù)1次,時(shí)長1us,故計(jì)數(shù)器計(jì)數(shù)10000次,進(jìn)入中斷,計(jì)數(shù)初值為65536-10000=55536=#0D8F0,裝滿定時(shí)器需要0.01s的時(shí)間,從而100次中斷為一秒,一秒之后,判斷是否到60秒,若不到則秒加一,然后返回,若到,則秒賦值為0,分加一,依次類推。包括日期顯示的功能也是如此。另外,由于要實(shí)現(xiàn)倒計(jì)時(shí)功能,因此在中斷程序中還要加入減一的寄存器,需要時(shí)將其進(jìn)行顯示?;谝陨峡紤],以R3為倒計(jì)時(shí)中的秒,R4為倒計(jì)時(shí)的分,當(dāng)秒加1時(shí)R3減一,減到0之后,秒賦值為59,分減一,直到分為0。計(jì)數(shù)器T1工作于方式1, 當(dāng)調(diào)用響鈴程

13、序時(shí),其計(jì)數(shù)功能開啟,為音樂音調(diào)不同頻率的方波的形成,提供延時(shí)。其中斷服務(wù)程序就是根據(jù)音調(diào)改變音樂方波輸出口電平的高低,用語句 CPL實(shí)現(xiàn)。 中斷服務(wù)程序中日歷的實(shí)現(xiàn)較為復(fù)雜,要考慮平年,閏年,特殊的2月,每月的天數(shù)的不盡相同。具體的邏輯判斷方法為:首先,要考慮年份是不是閏年,閏年的判斷方法是:將年份除以100,若能整除,則將年份除以400,若還能整除,則為閏年,若不能,則為平年;若不能被100整除,則判斷是否能被4整除,若能,則為閏年,若不能則為平年。只有2月與平、閏年相關(guān),因此在閏年和平年的子程序中,要判斷是不是2月,若是則在相應(yīng)的年中進(jìn)行日期的增加,若不是則轉(zhuǎn)入平時(shí)的月份。其中1、3、5

14、、7、8、10、12月是每月31天,4、6、9、11月為每月30天。日歷進(jìn)位判斷流程圖如下:年份能否被100整除NY年份是否能被4整除年份是否能被400整除NN平年閏年YY是不是2月是不是2月Y日=28之后返回為1NNY日=29之后返回為1若月份為1、3、5、7、8、10、12月則調(diào)用31天的程序若月份為4、6、9、11則調(diào)用30天的程序本實(shí)驗(yàn)用8個(gè)數(shù)碼管,剛好能顯示年,月,日,掃描顯示與時(shí)間的掃描顯示類似。年比較特殊,由兩個(gè)寄存器存儲(chǔ),個(gè)位,十位為0時(shí),表明年數(shù)能被100整除,若此時(shí)千位,百位組成兩位數(shù)能被4整除,則年數(shù)被400整除,為閏年。若十位,個(gè)位組成兩位數(shù)能被4整除,則年數(shù)能被4整除

15、,為閏年。B.2.3主程序主程序主要對按鍵進(jìn)行掃描,以及判斷定時(shí)和鬧鈴時(shí)間是否已到,若到則調(diào)用相關(guān)程序。B.2.4 顯示子程序8個(gè)數(shù)碼管輪流進(jìn)行顯示,分別顯示1ms,依賴人的視覺 暫留效應(yīng),給人以數(shù)碼管持續(xù)高亮的錯(cuò)覺。日期的顯示,秒表的顯示,倒計(jì)時(shí)的顯示,調(diào)鬧鈴,調(diào)定時(shí)的顯示,閃爍的顯示程序與以上的的掃描相似,有的以子程序的方式出現(xiàn),通過子程序調(diào)用語句ACALL調(diào)用;有點(diǎn)直接嵌套在相應(yīng)的程序里面,順序執(zhí)行,或者用調(diào)轉(zhuǎn)語句AJMP調(diào)用。C 程序調(diào)試及仿真本程序通過Keil單片機(jī)開發(fā)平臺(tái)實(shí)現(xiàn)程序的編譯,鏈接,生成HEX文件。通過Keil和硬件仿真平臺(tái)Proteus的聯(lián)合,可以將設(shè)計(jì)效果仿真出來,根

16、據(jù)效果,有目的的改變設(shè)計(jì),優(yōu)化程序。利用Proteus仿真實(shí)驗(yàn)過程截圖:普通時(shí)間顯示模式仿真圖,表示:星期一 9點(diǎn)10分38秒 五,總結(jié) 本文先從整體論述了設(shè)計(jì)電子鐘的大致思路,然后再采用劃分模塊的方法,將硬件電路劃分為開關(guān)電路,顯示驅(qū)動(dòng)電路,以及數(shù)碼管電路等,而軟件部分,則依據(jù)要實(shí)現(xiàn)的功能,劃分為:鬧鐘的聲音程序,時(shí)間顯示程序,日期顯示程序,秒表顯示程序,時(shí)間調(diào)整程序、鬧鐘調(diào)整程序、定時(shí)調(diào)整程序,延時(shí)程序等。最后將各模塊集成為一個(gè)整體,合成一個(gè)多功能的電子鐘。參考文獻(xiàn)1 謝自美電子線路設(shè)計(jì)實(shí)驗(yàn)測試M武漢:華中理工大學(xué)出版社,1992.2 何立民單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)M北京:北京航空航天大學(xué)出版社

17、,1993.3 樓然笛單片機(jī)開發(fā)M北京:人民郵電出版社,1994.4 付家才單片機(jī)控制工程實(shí)踐技術(shù)M北京:化學(xué)工業(yè)出版社 2004.3.5 李光才單片機(jī)課程設(shè)計(jì) 實(shí)例指導(dǎo)M 北京:北京航空航天大學(xué)出版社 2004.3.6 朱定華單片機(jī)原理及接口技術(shù)實(shí)驗(yàn)M北京:北方交通大學(xué)出版社2002.11.7 劉湘濤江世明單片機(jī)原理與應(yīng)用M. 北京:電子工業(yè)出版社,2006.附錄:延時(shí)程序:D_1MS:MOV R7,#2D_5:MOV R2,#250DJNZ R2,$DJNZ R7,D_5RET主程序:MAIN:JNB P3.0,DATETZ ;按下0鍵,顯示日期并可對日期進(jìn)行調(diào)整JNB P3.1,ZSTZ

18、1 ;按下1鍵,顯示時(shí)間,并可調(diào)時(shí)JNB P3.2,NLTZZ ;按下2鍵,進(jìn)行鬧鈴設(shè)置JNB P3.3,DSTZ ;按下3鍵,進(jìn)行定時(shí)設(shè)置JNB P3.4,CESHI ;鬧鈴測試JNB P3.6,STOPWATCHTZ ;按下6鍵,進(jìn)入秒表方式ACALL DISP ;調(diào)用時(shí)鐘顯示子程序JNB P0.6,RERING ;判斷是否開啟鬧鈴重響功能RE: JNB P2.7,DSPDKQ ;判斷是否開啟鬧鈴功能,沒開則去判斷定時(shí)FMQPD: ;判斷定時(shí)值R4,R3是否到零、鬧鈴時(shí)刻是否已到MOV A,HOUR;SUBB A,38H;JZ FEN ;判斷小時(shí)數(shù)是否到鬧鈴所定時(shí)間,若到,則對分進(jìn)行判斷;

19、若不到,則對定時(shí)進(jìn)行判斷AJMP DSPDKQFEN:MOV A,MINUTE;SUBB A,37H;JZ MIAO ;判斷分是否到鬧鈴所定時(shí)間,若到,則對秒進(jìn)行判斷;若不到,則對定時(shí)進(jìn)行判斷AJMP DSPDKQMIAO:MOV A,SECONDSUBB A,#0JZ SHENGYIN1 ;判斷秒是否到鬧鈴所定時(shí)間,若到,則時(shí),分,秒都到達(dá)鬧鈴時(shí)刻,進(jìn)入響鈴子程序;若不到則判斷定時(shí)AJMP DSPDKQRERING: ;鬧鈴重響判斷程序JNB F0, RE ;標(biāo)志位F0為0,不進(jìn)行鬧鈴重響設(shè)定CPL F0MOV 3CH,#1 ;定時(shí)判斷標(biāo)志位賦1, 定時(shí)判斷功能開啟JNB P0.7,M1 ;

20、鬧鈴重響間隔時(shí)間選取MOV R4,#0 ;鬧鈴重響間隔30秒MOV R3,#30AJMP MAINM1: ;鬧鈴重響間隔60秒MOV R4,#1MOV R3,#0AJMP MAINDSPDKQ: ;判斷是否應(yīng)該進(jìn)行定時(shí)判斷MOV A,3CH ;3CH是引入的判斷因子,當(dāng)其為0時(shí),不對定時(shí)時(shí)間是否到0進(jìn)行判斷JNZ DSPD2 ;當(dāng)3CH不是0時(shí),跳轉(zhuǎn)到定時(shí)判斷程序AJMP MAINDSPD2:MOV A,R4;JZ S_PD ;R4所存定時(shí)分?jǐn)?shù)為0,則轉(zhuǎn)而判斷R3所存定時(shí)秒數(shù)AJMP MAIN;S_PD:MOV A,R3;JNZ MAIN ;R4,R3所存參數(shù)減為0, 定時(shí)長度已到JNB P0.6,SHENGYIN2 ;鬧鈴重響功能開啟時(shí),跳入響鈴程序AJMP TISHI ;不是鬧鈴重響定時(shí),則定時(shí)時(shí)間到時(shí),跳入提示程序AJMP MAINCESHI:ACALL RINGAJMP MAINSHENGYIN1: ;調(diào)用響鈴子程序 LCALL RINGAJMP MAINSHENGYIN2:SETB F0 ;鬧鈴重響標(biāo)志位設(shè)定LCALL RING ;響鈴CLR F0 ;標(biāo)志位復(fù)位AJMP MAINNLTZZ: AJMP NLTZ1 ;跳入鬧鈴調(diào)整程序DSTZ:AJMP DSTZ1 ;跳入定時(shí)調(diào)整程序DATETZ:AJ

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論