版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 網(wǎng)絡(luò)教育學(xué)院?jiǎn)纹瑱C(jī)原理及應(yīng)用大作業(yè) 題 目: 單片機(jī)電子時(shí)鐘設(shè)計(jì) 學(xué)習(xí)中心: 內(nèi)蒙古奧鵬學(xué)習(xí)中心 層 次: 專 業(yè): 電氣工程及其自動(dòng)化 年 級(jí): 年 秋 季 學(xué) 號(hào): 學(xué)生姓名: 單片機(jī)電子時(shí)鐘設(shè)計(jì)一、 引言單片機(jī)技術(shù)在計(jì)算機(jī)中作為獨(dú)立的分支,有著性價(jià)比高、集成度高、體積少、可靠性高、控制功能強(qiáng)大、低功耗、低電壓、便于生產(chǎn)、便于攜帶等特點(diǎn),越來(lái)越廣泛的被應(yīng)用于實(shí)際生活中。單片機(jī)全稱,單片機(jī)微型計(jì)算機(jī),從應(yīng)用領(lǐng)域來(lái)看,單片機(jī)主要用來(lái)控制系統(tǒng)運(yùn)行,所以又稱微控制器或嵌入式控制器,單片機(jī)是將計(jì)算機(jī)的基本部件微型化并集成在一塊芯片上的微型計(jì)算機(jī)。二、時(shí)鐘的基本原理分析利用單片機(jī)定時(shí)器完成計(jì)時(shí)功能,
2、定時(shí)器0計(jì)時(shí)中斷程序每隔0.01s中斷一次并當(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顯示,通過(guò)對(duì)每位數(shù)碼管的依次掃描,使對(duì)應(yīng)數(shù)碼管亮,同時(shí)向該數(shù)碼管送對(duì)應(yīng)的字碼,使其顯示數(shù)字。由于數(shù)碼管掃描周期很短,由于人眼的視覺暫留效應(yīng),使數(shù)碼管看起來(lái)總是亮的,從而實(shí)現(xiàn)了各種顯示。三、時(shí)鐘設(shè)計(jì)分析針對(duì)要實(shí)現(xiàn)的功能,采用AT89S51單片機(jī)進(jìn)行設(shè)計(jì),
3、AT89S51 單片機(jī)是一款低功耗,高性能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)
4、尤其是各引腳的用法,以及內(nèi)部寄存器、存儲(chǔ)單元的用法,否則,編程無(wú)從下手,電路也無(wú)法設(shè)計(jì)。這是前期準(zhǔn)備工作。第二部分是硬件部分:依據(jù)想要的功能分塊設(shè)計(jì)設(shè)計(jì),比如輸入需要開關(guān)電路,輸出需要顯示驅(qū)動(dòng)電路和數(shù)碼管電路等。第三部分是軟件部分:先學(xué)習(xí)理解匯編語(yǔ)言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè)計(jì)。第四部分是軟件畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中進(jìn)行仿真,仿真無(wú)法完成時(shí)檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。第六部分是硬件實(shí)現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計(jì)的完全一樣一般能實(shí)現(xiàn)想要的
5、功能。最后進(jìn)行功能擴(kuò)展,在已經(jīng)正確的設(shè)計(jì)基礎(chǔ)上,添加額外的功能!四、時(shí)鐘的實(shí)現(xiàn)A.電路設(shè)計(jì)1. 整體設(shè)計(jì)此次設(shè)計(jì)主要是應(yīng)用單片機(jī)來(lái)設(shè)計(jì)電子時(shí)鐘,硬件部分主要分以下電路模塊:顯示電路用8個(gè)共陰數(shù)碼管分別顯示,星期(年份),小時(shí)、分鐘(月份)和秒(日),通過(guò)動(dòng)態(tài)掃描進(jìn)行顯示,從而避免了譯碼器的使用,同時(shí)節(jié)約了I/0端口,使電路更加簡(jiǎn)單。單片機(jī)采用AT89S51系列,這種單片機(jī)應(yīng)用簡(jiǎn)單,適合電子鐘設(shè)計(jì)。電路的總體設(shè)計(jì)框架如下:?jiǎn)纹瑱C(jī)輸入部分晶振和復(fù)位輸出部分2. 分塊設(shè)計(jì)模塊電路主要分為:輸入部分、輸出部分、復(fù)位和晶振電路。2.1 輸入部分輸入信號(hào)主要是各種模式選擇和調(diào)整信號(hào),由按鍵開關(guān)提供。以下為
6、輸入部分樣例:在本實(shí)驗(yàn)中主要用用P3口輸入按鍵信號(hào),還用到了特殊的P0口。對(duì)于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)用匯編程序完
7、成.程序總的流程圖如下:主程序開始顯示星期,時(shí),分,秒是否有調(diào) 轉(zhuǎn)?T0中斷秒,分,時(shí)等進(jìn)位閃爍提示顯示日期并調(diào)整響鈴提示時(shí)間調(diào)整鬧鈴設(shè)置定時(shí)設(shè)置鈴聲測(cè)試秒表模式回主程序定時(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í)的長(zhǎng)短不同罷了,在此不再贅述。B.2.2中斷服務(wù)程序本實(shí)驗(yàn)中,計(jì)數(shù)器T0,T1中斷都有運(yùn)用
8、,其中T0中斷為時(shí)鐘定時(shí)所用,T1中斷用于音樂播放。T0的定時(shí)長(zhǎng)度為0.01s,工作于方式1,計(jì)數(shù)1次,時(shí)長(zhǎng)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ù)器
9、T1工作于方式1, 當(dāng)調(diào)用響鈴程序時(shí),其計(jì)數(shù)功能開啟,為音樂音調(diào)不同頻率的方波的形成,提供延時(shí)。其中斷服務(wù)程序就是根據(jù)音調(diào)改變音樂方波輸出口電平的高低,用語(yǔ)句 CPL實(shí)現(xiàn)。 中斷服務(wù)程序中日歷的實(shí)現(xiàn)較為復(fù)雜,要考慮平年,閏年,特殊的2月,每月的天數(shù)的不盡相同。具體的邏輯判斷方法為:首先,要考慮年份是不是閏年,閏年的判斷方法是:將年份除以100,若能整除,則將年份除以400,若還能整除,則為閏年,若不能,則為平年;若不能被100整除,則判斷是否能被4整除,若能,則為閏年,若不能則為平年。只有2月與平、閏年相關(guān),因此在閏年和平年的子程序中,要判斷是不是2月,若是則在相應(yīng)的年中進(jìn)行日期的增加,若不是
10、則轉(zhuǎn)入平時(shí)的月份。其中1、3、5、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整除,為閏年。若
11、十位,個(gè)位組成兩位數(shù)能被4整除,則年數(shù)能被4整除,為閏年。B.2.3主程序主程序主要對(duì)按鍵進(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),通過(guò)子程序調(diào)用語(yǔ)句ACALL調(diào)用;有點(diǎn)直接嵌套在相應(yīng)的程序里面,順序執(zhí)行,或者用調(diào)轉(zhuǎn)語(yǔ)句AJMP調(diào)用。C 程序調(diào)試及仿真本程序通過(guò)Keil單片機(jī)開發(fā)平臺(tái)實(shí)現(xiàn)程序的編譯,鏈接,生成HEX文件。通過(guò)Keil和硬件仿真平臺(tái)
12、Proteus的聯(lián)合,可以將設(shè)計(jì)效果仿真出來(lái),根據(jù)效果,有目的的改變?cè)O(shè)計(jì),優(yōu)化程序。利用Proteus仿真實(shí)驗(yàn)過(guò)程截圖:普通時(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è)多功能的電子鐘。附錄:延時(shí)程序:D_1MS:MOV R7,#2D_5:MOV R2,#250DJNZ
13、R2,$DJNZ R7,D_5RET主程序:MAIN:JNB P3.0,DATETZ ;按下0鍵,顯示日期并可對(duì)日期進(jìn)行調(diào)整JNB P3.1,ZSTZ1 ;按下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 ;鬧鈴測(cè)試JNB P3.6,STOPWATCHTZ ;按下6鍵,進(jìn)入秒表方式ACALL DISP ;調(diào)用時(shí)鐘顯示子程序JNB P0.6,RERING ;判斷是否開啟鬧鈴重響功能RE: JNB P2.7,DSPDKQ ;判斷是否開啟鬧鈴功能,沒開則去判斷定時(shí)FMQPD: ;判斷定時(shí)
14、值R4,R3是否到零、鬧鈴時(shí)刻是否已到MOV A,HOUR;SUBB A,38H;JZ FEN ;判斷小時(shí)數(shù)是否到鬧鈴所定時(shí)間,若到,則對(duì)分進(jìn)行判斷;若不到,則對(duì)定時(shí)進(jìn)行判斷AJMP DSPDKQFEN:MOV A,MINUTE;SUBB A,37H;JZ MIAO ;判斷分是否到鬧鈴所定時(shí)間,若到,則對(duì)秒進(jìn)行判斷;若不到,則對(duì)定時(shí)進(jìn)行判斷AJMP DSPDKQMIAO:MOV A,SECONDSUBB A,#0JZ SHENGYIN1 ;判斷秒是否到鬧鈴所定時(shí)間,若到,則時(shí),分,秒都到達(dá)鬧鈴時(shí)刻,進(jìn)入響鈴子程序;若不到則判斷定時(shí)AJMP DSPDKQRERING: ;鬧鈴重響判斷程序JNB
15、F0, RE ;標(biāo)志位F0為0,不進(jìn)行鬧鈴重響設(shè)定CPL F0MOV 3CH,#1 ;定時(shí)判斷標(biāo)志位賦1, 定時(shí)判斷功能開啟JNB P0.7,M1 ;鬧鈴重響間隔時(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í),不對(duì)定時(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ù)為
16、0,則轉(zhuǎn)而判斷R3所存定時(shí)秒數(shù)AJMP MAIN;S_PD:MOV A,R3;JNZ MAIN ;R4,R3所存參數(shù)減為0, 定時(shí)長(zhǎng)度已到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 ;跳入鬧鈴
17、調(diào)整程序DSTZ:AJMP DSTZ1 ;跳入定時(shí)調(diào)整程序DATETZ:AJMP DATETZ1 ;跳入日期調(diào)整程序STOPWATCHTZ: AJMP STOPWATCHTZ1 ;跳入秒表程序顯示子程序:DISP: ;時(shí)間顯示子程序JNB P3.7,OUT1 ;判斷節(jié)能開關(guān)7是否按下,按下則數(shù)碼管不顯示,延長(zhǎng)其壽命MOV DPTR,#LEDTABMOV A,SECOND ;顯示當(dāng)前時(shí)間秒位MOV B,#10DIV AB ;A存十位,B存?zhèn)€位MOVC A,A+DPTRMOV P1,ACLR SEC_SACALL D_1MS ;顯示當(dāng)前時(shí)間秒十位SETB SEC_SMOV A,BMOVC A,A+DPTRMOV P1,ACLR SEC_GACALL D_1MS ;顯示當(dāng)前時(shí)間秒個(gè)位SETB SEC_GMOV A,MINUTE ;顯示當(dāng)前時(shí)間分位MOV B,#10DIV ABMOVC A,A+DPTRMOV P1,ACLR MIN_SACALL D_1MSSETB MIN_SMOV A,BMOVC A,A+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《血液學(xué)骨髓纖維化》課件
- 《大學(xué)英語(yǔ)聽力應(yīng)用教程(第1冊(cè))》課件-Unit 7 Live Longer
- 合伙人股權(quán)轉(zhuǎn)讓合同書
- 統(tǒng)計(jì)局聘用合同
- 鐵路機(jī)務(wù)段合同樣板
- 提前解除合同會(huì)議紀(jì)要
- 《骨質(zhì)疏松的診治》課件
- 2025年雅安貨運(yùn)從業(yè)資格模擬考試
- 2025年安徽貨運(yùn)從業(yè)資格證考試模擬試題
- 第3課 盛唐氣象
- 海洋水產(chǎn)養(yǎng)殖碳足跡評(píng)估與減緩策略
- 數(shù)字媒體藝術(shù)課件
- 海洋科普趣味知識(shí)講座
- 靜脈輸液操作課件
- 安全生產(chǎn)培訓(xùn)(完整版)課件
- 【瑞幸咖啡財(cái)務(wù)分析報(bào)告(附財(cái)務(wù)報(bào)表)5300字(論文)】
- 三傻大鬧寶萊塢課件
- 護(hù)理科普作品
- 國(guó)家OTC藥品目錄(全部品種)
- 社會(huì)主義發(fā)展簡(jiǎn)史智慧樹知到課后章節(jié)答案2023年下北方工業(yè)大學(xué)
- Android課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論