電子時鐘實驗報告_電子時鐘_第1頁
電子時鐘實驗報告_電子時鐘_第2頁
電子時鐘實驗報告_電子時鐘_第3頁
電子時鐘實驗報告_電子時鐘_第4頁
電子時鐘實驗報告_電子時鐘_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、電子時鐘實驗報告一、實驗?zāi)康膶W(xué)習(xí)8051定時器時間計時處理、按鍵掃描及LED數(shù)碼管顯示的設(shè)計方法。二、設(shè)計任務(wù)及要求利用實驗平臺上4個LED數(shù)碼管,設(shè)計帶有鬧鈴功能的數(shù)字時鐘,要求:1在 4 位數(shù)碼管上顯示當(dāng)前時間,顯示格式為“時時分分”;2.由LED閃動做秒顯示;3利用按鍵可對時間及鬧玲進(jìn)行設(shè)置,并可顯示鬧玲時間。當(dāng)鬧玲時間到蜂鳴器發(fā)出音樂,按停止鍵使可使鬧玲聲停止。三、工作原理及設(shè)計思路利用單片機(jī)定時器完成計時功能,定時器0計時中斷程序每隔5ms中斷一次并當(dāng)作一個計數(shù),每中斷一次計數(shù)加1,當(dāng)計數(shù)200 次時,則表示1s 到了,秒變量加1,同理再判斷是否1min鐘到了,再判斷是否1h到了。為

2、了將時間在 LED數(shù)碼管上顯示,可采用靜態(tài)顯示法和動態(tài)顯示法,由于靜態(tài)顯示法需要數(shù)據(jù)鎖存器等較多硬件,可采用動態(tài)顯示法實現(xiàn) LED顯示。鬧鈴聲由交流蜂鳴器產(chǎn)生,電路如右圖,當(dāng)P1.7 輸出不同頻率的方波,蜂鳴器便會發(fā)出不同的聲音。四、電路設(shè)計及描述(1) 硬件連接部分:在 ZKS-03 單片機(jī)綜合實驗儀上有四位共陽 LED 數(shù)碼管,其標(biāo)號分別為LED1LED4為了節(jié)省MCU勺I/O 口,采用串行接口方式,它僅占用系統(tǒng)2個I/O口,即P1.0 口和P1.1 口,一個用作數(shù)據(jù)線 SDA另一個用作時鐘信號線 CLK它們都通過跳線選擇器JP1 相連。由于采用共陽LED數(shù)碼管,它的陰極分別通過限流電阻

3、R20R27連接至?xí)r空制 KD_0KD_Q7這樣控制8個發(fā)光二極管,就需要 8個I/O 口。但由于單片機(jī)的 I/O 口資源是有限的,因此常采用實驗電路所示的串并轉(zhuǎn)換電路來擴(kuò)充系統(tǒng)資源。串并轉(zhuǎn)換電路其實質(zhì)是一個串入并處的移位寄存器,串行數(shù)據(jù)再同步移位脈沖CLK的作用下經(jīng)串行數(shù)據(jù)線 SD用巴數(shù)據(jù)移位到KD_0KD_Q端,這本¥僅需2根線就可以分別控制8 個發(fā)光二極管的亮滅。而P0 口只能作地址/數(shù)據(jù)總線,P2 口只能作地址總線高8位,P3.0、P3.1作為串行輸入、輸出接口,實驗儀上單片機(jī)可用作I/O 的口僅有:P1.0-P1.7 , 8 位;P3.2、 P3.3、 P3.4、 P3.5

4、, 4位。其中:P1.0用作數(shù)據(jù)線SDA P1.1用作時鐘信號 CLK,所以P1.0和P1.1 應(yīng)該接對應(yīng)跳線的A 位,即跳線的中間和下面相連。P1.3、 P1.4、 P1.5 和 P1.6是四個數(shù)碼管的位掃描線,其中P1.6對應(yīng)數(shù)碼管 W1顯示小時高位;P1.5對應(yīng)數(shù)碼管 W2顯示小時低位;P1.4對應(yīng)數(shù)碼管 W3顯示分鐘高位;P1.3對應(yīng) 數(shù)碼管W4顯示分鐘低位。P1.7連接蜂鳴器電路,輸出不同頻率的方波,使其 發(fā)出不同的聲音。P1.2 用來控制秒的閃爍顯示。故,P1.2 也應(yīng)該接對應(yīng)跳線的A 位。其顯示電路如下圖所示:P3.2、P3.3、P3.4、P3.5分別連接單刀雙擲開關(guān) S1、S2

5、、S3、S4,從而輸入高低 電平。將S2S1定義為功能模式選擇開關(guān);S3定義為分鐘數(shù)調(diào)整開關(guān);S4定義為小 時數(shù)調(diào)整開關(guān)。當(dāng)S2S1=00時,顯示當(dāng)前時間,不進(jìn)行任何操作。當(dāng)S2S1=01時,顯示當(dāng)前時間,同時可進(jìn)行時鐘調(diào)整,若 S3=1,分鐘數(shù)持續(xù)加1, 若S4=1,小時數(shù)持續(xù)加1。當(dāng)S2S1 = 10時,顯示鬧鐘時間,同時可進(jìn)行鬧鐘調(diào)整,若 S3=1,分鐘數(shù)持續(xù)加1,若S4=1,小時數(shù)持續(xù)加1。當(dāng)S2S1 = 11時,顯示當(dāng)前時間,同時關(guān)閉鬧鐘。7段顯示器的字形與共陽極時編碼的對應(yīng)關(guān)系如下表:顯示字符段碼顯示字符段碼0COH7F8H1F9H880H2A4H990H3BOHA88H499HB

6、83H592H無顯示FFH682H(2)音節(jié)設(shè)置原理:由不同頻率的方波產(chǎn)生,音節(jié)與頻率的關(guān)系如表1所示。要產(chǎn)生音頻方波,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用計時器計時此半周期時間,每當(dāng)計時到后就將輸出方波的I/O反相,然后重復(fù)計時此半周期時間再對I/O反相,就可在I/O腳得到此頻率的方波。在ZKS-03實驗儀上,產(chǎn)生方波的I/O腳選用P1.7,通過跳線選擇器 JP1將單片機(jī)的P1.7與蜂鳴器的驅(qū)動電路相連。這樣 P1.7輸出不同頻率的方波,蜂鳴器便會發(fā)出不同的聲音。另外,音樂的節(jié)拍是由延時實現(xiàn)的,如果1拍為0.4秒,1/4拍是0.1秒。只要設(shè)定延時時間

7、,就可求得節(jié)拍的時間。延時作為基本延時時間,節(jié)拍值只能是它的整數(shù)倍,每個音節(jié)相應(yīng)的定時器初值 X可按下法計算:( 1/2 ) *(1/f)=(12/fose)*(216-x) 即 x=216-(fose/24f)其中 f: 音調(diào)頻率,當(dāng)晶振fose=11.0592MHz 時,音節(jié)“1”相應(yīng)的定時器初值為x,則可得x=63777D=F921H其它的可同樣求得。在單片機(jī)上控制一個音符唱多長可采用循環(huán)延時的方法來實現(xiàn)。將樂譜中的每個音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲器中,通過程序取出一個音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個音符的相關(guān)參數(shù)

8、,如此直到播放完畢最后一個音符,根據(jù)需要也可循環(huán)不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂曲結(jié)束用節(jié)拍參數(shù)為 00H 來表示。(3) 實驗流程圖:鬧鐘模塊:鬧鈴中斷鬧鈴開關(guān)比較鬧鈴時間與當(dāng)計數(shù)模塊:前時間是否相等響音樂停止?定時器0中斷Y秒指示燈滅中斷100次?N秒指示燈亮秒+1秒清0Y中斷200次?59秒?分+159分?小時+1Y中斷返回分清023小時?小時清0五、源程序代碼及注釋注:首先將單片機(jī)用到的主要寄存器做下說明(如下)P1.2作秒的閃爍控制位;P1.7作響鈴控制電平;P3.2、P3.3作模式選擇鍵

9、 S2、S1;P3.4 作分調(diào)整鍵S3 (分鐘數(shù)+1);P3.5 作時調(diào)整鍵S4 (小時數(shù)+1);R0為計數(shù)5ms的次數(shù);R1為秒數(shù);R2為分鐘數(shù);R3為時鐘數(shù);R4在顯示程序中作為向LED傳遞數(shù)據(jù)時的左移次數(shù)標(biāo)志位;R4在音樂鬧鈴程序中讀取 TABLE中的數(shù)據(jù);R5作為節(jié)拍長度;40H 作顯示的分;41H 作顯示的時;42H 作鬧鐘的分;43H 作鬧鐘的時;63H 64H存放延時程序DELAY勺延時數(shù);60H、 61H 作定時器T1 的初值。; ;定義模式選擇鍵S2、 S1*S1BIT P3.2;定義時調(diào)整鍵S4分調(diào)整鍵S3S2BIT P3.3S3BIT P3.4S4BIT P3.5SDAB

10、IT P1.0CLK BIT P1.1ORG0000H;T0的中斷服務(wù)程序的入口地址AJMP MAINORG 000BHAJMP TIMERORG 001BH;T1 的中斷服務(wù)程序的入口地址AJMP ALARM_OPEN ;跳轉(zhuǎn)到鬧鐘響鈴中斷服務(wù)程序ORG0030HMAIN: MOV 40H,#00;顯示的分MOV 41H,#00;顯示的時MOV 42H,#58;鬧鐘的分MOV 43H,#23;鬧鐘的時MOV R0,#00H;寄存器¥#零(RO為計數(shù)5ms的次數(shù),R1為秒數(shù),MOV R1,#00H;R2為分鐘數(shù),R3為時鐘數(shù))MOV R2,#00HMOV R3,#00HMOV TMO

11、D,#11H;設(shè)置T0,T1處于工作方式1MOV TH0,#0EEH設(shè)置定時器的初值MOV TL0,#00HSETB EA;允許總中斷SETB ET0 允許;T0,T1 中斷SETB ET1SETB TR0; 啟動 T0LOOP: LCALL DISPLAY1 ;調(diào)用顯示程序LCALL ALARM;調(diào)用鬧鈴程序LCALL MODE ;調(diào)用模式判斷程序AJMP LOOP.*鐘顯示部分*DISPLAY1:MOV DPTR,#TAB1MOV A,41HMOV B,#10SETB P1.4DIV ABLCALL DISP1CLR P1.6LCALL DELAYSETB P1.6JB P1.2,TDAJ

12、MP TD1TD:MOV A,BAJMP TD2TD1: MOV A,BADD A,#10TD2: LCALL DISP1CLR P1.5LCALL DELAYSETB P1.5MOV A,40HMOV B,#10DIV ABLCALL DISP1CLR P1.4LCALL DELAY;LED1數(shù)碼管顯示數(shù)碼,即小時的高位;控制LED2數(shù)碼管的小數(shù)點"dp"閃爍;LED2 數(shù)碼管顯示數(shù)碼,即小時的低位;LED3數(shù)碼管顯示數(shù)碼,即分鐘的高位MOV A,BLCALL DISP1CLR P1.3;LED4數(shù)碼管顯示數(shù)碼,即分鐘的低位LCALLDELAYSETBP1.3RETDIS

13、P1:MOVC A,A+DPTR;LED串并轉(zhuǎn)換口從P1.0接收MOVR4,#08H;R4 記作左循環(huán)的次數(shù)DUP1:RLC A;A帶進(jìn)位左循環(huán)移位MOVSDA,CCLR CLK;上升沿觸發(fā)數(shù)據(jù)接收SETB CLKDJNZ R4,DUP1RET.*DISPLAY2:MOVDPTR,#TAB1MOVA,43HMOVB,#10DIV ABLCALL DISP2CLR P1.6;LED1數(shù)碼管顯示數(shù)碼,即小時的高位LCALL DELAYSETB P1.6MOV A,BLCALL DISP2CLR P1.5LCALL DELAYSETB P1.5MOV A,42HMOV B,#10DIV ABLCAL

14、L DISP2CLR P1.4LCALL DELAYSETB P1.4MOV A,BLCALL DISP2CLR P1.3LCALL DELAYSETB P1.3RETDISP2: MOVC A,A+DPTRMOV R4,#08H;LED2數(shù)碼管顯示數(shù)碼,即小時的低位;LED3 數(shù)碼管顯示數(shù)碼,即分鐘的高位;LED4 數(shù)碼管顯示數(shù)碼,即分鐘的低位;LED串并轉(zhuǎn)換口從P1.0接收;R4 記作左循環(huán)的次數(shù)DUP2: RLC A;A帶進(jìn)位左循環(huán)移位MOV SDA,CANLA,#0FHCLR CLK;上升沿觸發(fā)數(shù)據(jù)接收SETB CLKDJNZ R4,DUP2RET.*判斷鬧鐘時間是否到來*ALARM:

15、MOVA,40HCJNEA,#00H,MUSIC; 整點鬧鈴LJMPB2MUSIC: MOVA,43HCJNE A,41H,B1MOV A,42HCJNE A,40H,B1;音樂鬧鈴SETB P1.7MOV 70H,#00HNEXT: MOV A,70HMOVDPTR,#TABLE;從TABLE中讀取數(shù)據(jù)一一聲響時間MOVCA,A+DPTRMOVR4,A;將TABLE中讀取的數(shù)據(jù)存放在 R4JZEND0MOV R5,A;R5作為節(jié)拍長度MOV A,R4SWAP AANL A,#0FHJNZ SINGCLR TR1JMP D1SING: DEC AMOV 62H,A;從TABLE仲讀取數(shù)據(jù)一一聲

16、調(diào);設(shè)定 TH1 值RL AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV TH1,AMOV 61H,AMOV A,62HRL AINC AMOVC A,A+DPTRMOV TL1,A;設(shè)定 TL1 值MOV 60H,AMOV TH1,61HMOV TL1,60HD1: ACALL DELAY0;聲音延時INC 70HLCALLMODEJMP NEXTEND0: CLR TR1JMP MUSICDELAY0:MOV R7,#2;R5的值就是聲響持續(xù)時間D2: MOV R6,#214D3: MOV R4,#245DJNZ R4,$DJNZ R6,D3DJNZ R7,D2DJNZ

17、 R5,DELAY0RETB1:CLR TR1RETB2:MOV 61H,#0FEHMOV 60H,#033HMOV TH1,61HMOV TL1,60H ;方波頻率設(shè)為1KHzSETB TR1.*鐘響鈴中斷服務(wù)程序*ALARM_OPEN:PUSH ACCPUSH PSWMOV TH1,61HMOV TL1,60HCPL P1.7POP PSWPOP ACCRETI鐘走時中斷服務(wù)程序;*TIMER: MOV TH0,#0ECH; 重新對 T0 賦值 ,設(shè)置中斷時間為5msMOV TL0,#78HMOV 40H,R2MOV 41H,R3INC R0;計數(shù) 5ms 的次數(shù)加1CJNE R0,#20

18、0,BACKCPL P1.2MOV R0,#00HINC R1CJNE R1,#60,BACKMOV R1,#00H;不夠 200次,跳轉(zhuǎn)到BACK;夠200次,P1.2翻轉(zhuǎn)控制LED閃動一下; 計數(shù)5ms 的次數(shù)清0,秒數(shù)加1; 不夠60 秒,跳轉(zhuǎn)到BACK;夠 60 秒 ,秒數(shù)清 0,分鐘加 1INC R2CJNE R2,#60,BACKMOV R2,#00HINC R3CJNE R3,#24,BACKMOV R3,#00HBACK: RETI;*;夠60分鐘,跳轉(zhuǎn)到BACK;夠 60分鐘,分鐘數(shù)清0,小時數(shù)加1;夠24小時,跳轉(zhuǎn)到BACK;夠24小時,小時數(shù)清0按鍵判斷部分LCALL D

19、ISPLAY1; 軟件消抖后再判斷;對S2、S1 的值判斷;模式為00,開T1 中斷;模式為01,進(jìn)行時間調(diào)整;模式為10,進(jìn)行鬧鈴調(diào)整; 模式為11,關(guān)閉鬧鐘MODE: MOV A,P3LCALL DELAYCJNE A,P3,MODEANL A,#0CHCJNE A,#00H,LOP1AJMP T_BACKLOP1: CJNE A,#04H,LOP2AJMP T_CHANGELOP2: CJNE A,#08H,LOP3AJMP A_CHANGELOP3: AJMP A_CLOSE時鐘調(diào)整T_CHANGE:LCALL DELAY1JNB S3,T_HOUR;S3 為 0,判斷 S4T_MIN

20、: MOV R5,40HINC R5;S3為1,分鐘數(shù)加1CJNE R5,#60,LOP4MOV R5,#00HLOP4: MOV 40H,R5MOV R2,40HAJMP MODET_HOUR:JNB S4,MODE;S4為 0,跳轉(zhuǎn)到 MODEMOV R5,41HINC R5CJNE R5,#24,LOP5MOV R5,#00HLOP5: MOV 41H,R5MOV R3,41HAJMP MODE;鬧鈴調(diào)整A_CHANGE:LCALL DISPLAY2LCALL DELAY2JNB S3,A_HOUR;S3為0,判斷S4A_MIN: MOV R5,42HINC R5;S3為1,分鐘數(shù)加1C

21、JNE R5,#60,LOP6MOV R5,#00HLOP6: MOV 42H,R5AJMP MODEA_HOUR:JNB S4,MODE;S4為 0,跳轉(zhuǎn)至U MODEMOV R5,43HINC R5;S4為1,小時數(shù)力口 1CJNE R5,#24,LOP7MOV R5,#00HLOP7: MOV 43H,R5AJMP MODE;返回T_BACK:SETB ET1;開 T1 中斷RET;關(guān) T1 中斷A_CLOSE:CLR ET1RET延時程序;* ;*延時程序延時程序碼管顯示的字形表DELAY:MOV 63H,#5HD5:MOV 64H,#0FFHDJNZ 64H,$DJNZ 63H,D5

22、RET;1*DELAY1:MOV R7,#50HD6:LCALL DISPLAY1DJNZ R7,D6RET;* ;2*DELAY2:MOV R7,#50HD7:LCALL DISPLAY2DJNZ R7,D7RET;*TAB1:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;數(shù)字09,不帶小數(shù)點"dp"DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H;數(shù)字09,帶小數(shù)點"dp".*音樂的節(jié)拍表*TABLE: DB82H,01H,81H,94H,84H,0B4H,0A4H,

23、04HDB82H,01H,81H,94H,84H,0C4H,0B4H,04HDB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94HDB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB82H,01H,81H,94H,84H,0B4H,0A4H,94HDB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94HDB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB00H.*音 樂 音 符 設(shè) 置 的 T1 計 數(shù) 值*TABLE1D:

溫馨提示

  • 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

提交評論