實驗報告 課程設(shè)計名稱:數(shù)字音樂盒 課程設(shè)計單位:自動化031班 課設(shè)小組成員:杜斐斐 王薄 單片機(jī)課程設(shè)計實驗報告 課程設(shè)計題目:數(shù)字音樂盒 課程設(shè)計要求:1.利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂曲(最少三首樂曲,每首不少于30秒) 2.采用LCD顯示信息 3.開機(jī)時有英文歡迎提示字符,播放時顯示歌曲序號(或名稱) 4.可通過功能鍵選擇樂曲,暫停,播放。 5.選作內(nèi)容:顯示樂曲播放時間或剩余時間 硬件電路:本設(shè)計中用到了98C51單片機(jī),4*4鍵盤,蜂鳴器,16*2 LCD,七段 顯示數(shù)碼管LED。(硬件電路原理圖附于后頁) 原理說明:當(dāng)鍵盤有鍵按下時,判斷鍵值,啟動計數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出樂曲。同時啟動定時器T1,顯示樂曲播放的時間,并驅(qū)動LCD,顯示歌曲號及播放時間。也可在LED顯示歌曲號。 (1) 硬件電路中用P1.0~P1.7控制按鍵,其中P1.0~P1.3掃描行,P1.4~P1.7掃描列。 (2) 用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段碼a,b,c,d,e,f,g,用P2.0~P2.7為數(shù)碼管位選信號。 (3) 用,P2.0~P2.2作為LCD的RS,R/W,E的控制信號。用P0.0~P0.7作為LCD的D0~D7的控制信號。 (4) 用P3.7口控制蜂鳴器(J2,J4斷開,J3短接)。 (5) 電路為12MHZ晶振頻率工作,起振電路中C1,C2均為30pf。 軟件設(shè)計:本程序可以實現(xiàn)課程設(shè)計的基本要求和附加功能,并可以通過按鍵播放七首歌曲。實驗程序如下:
;****************************************** INITILE2: MOV L50MS,#20 MOV L1MS,#00H MOV L250MS,#00H MOV SEC,#00H MOV MIN,#00H MOV HOU,#00H
MOV A,HOU MOV B,#10 DIV AB ADD A,#30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼
MOV P0,#0C8H ;顯示小時十位 CALL ENABLE CALL WRITE2
MOV A,B ADD A,#30H MOV P0,#0C9H ;顯示小時個位 CALL ENABLE CALL WRITE2
MOV A,#3AH MOV P0,#0DH ;顯示冒號 CALL ENABLE CALL WRITE2
MOV A,MIN MOV B,#10 DIV AB ADD A,#30H
MOV P0,#0CBH ;顯示分十位 CALL ENABLE CALL WRITE2
MOV A,B ADD A,#30H MOV P0,#0CCH ;顯示分個位 CALL ENABLE CALL WRITE2
MOV A,#3AH MOV P0,#0CDH ;顯示冒號 CALL ENABLE CALL WRITE2
MOV A,SEC MOV B,#10 DIV AB ADD A,#30H
MOV P0,#0CEH ;顯示秒十位 CALL ENABLE CALL WRITE2
MOV A,B ADD A,#30H MOV P0,#0CFH ;顯示秒個位 CALL ENABLE CALL WRITE2
MOV P0,#0C0H ;設(shè)光標(biāo)地址 CALL ENABLE MOV DPTR,#TABLE2;寫數(shù)據(jù) CALL WRITE1
RET ;*********************************************寫指令 ENABLE: CLR RS CLR RW CLR E LCALL DELAY SETB E RET ;**********************************************寫數(shù)據(jù) WRITE1: MOV R1,#00H
A1: MOV A,R1 MOVC A,@A+DPTR CALL WRITE2 INC R1 CJNE A,#0FEH,A1 ;未到字符串末尾繼續(xù) RET
WRITE2: MOV P0,A SETB RS CLR RW CLR E CALL DELAY SETB E RET ;********************************************** DELAY: MOV R4,#05 D1: MOV R5,#0FFH DJNZ R5,$ DJNZ R4,D1 RET ;----------------------------------------------
TAB: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh
TAB1: db 89h,86h,0c7h,0c7h,0c0h
TAB2: db 0c6h,88h,0c0h
TABLE1: DB 'WELCOM HERE',0FEH
TABLE2: DB 'DFF WB ',0FEH
TABLE4: DB 'CAU',0FEH
TABLE3: DB 30H,31H,32H,33h DB 34H,35H,36H,37H DB 38h,39H,41H,42H DB 43H,44H,45H,46H
|
|