實驗報告 課程設計名稱:數字音樂盒 課程設計單位:自動化031班 課設小組成員:杜斐斐 王薄 單片機課程設計實驗報告 課程設計題目:數字音樂盒 課程設計要求:1.利用I/O口產生一定頻率的方波,驅動蜂鳴器,發出不同的音調,從而演奏樂曲(最少三首樂曲,每首不少于30秒) 2.采用LCD顯示信息 3.開機時有英文歡迎提示字符,播放時顯示歌曲序號(或名稱) 4.可通過功能鍵選擇樂曲,暫停,播放。 5.選作內容:顯示樂曲播放時間或剩余時間 硬件電路:本設計中用到了98C51單片機,4*4鍵盤,蜂鳴器,16*2 LCD,七段 顯示數碼管LED。(硬件電路原理圖附于后頁) 原理說明:當鍵盤有鍵按下時,判斷鍵值,啟動計數器T0,產生一定頻率的脈沖,驅動蜂鳴器,放出樂曲。同時啟動定時器T1,顯示樂曲播放的時間,并驅動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為數碼管位選信號。 (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。 軟件設計:本程序可以實現課程設計的基本要求和附加功能,并可以通過按鍵播放七首歌曲。實驗程序如下:
;****************************************** 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嗎轉化為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 ;設光標地址 CALL ENABLE MOV DPTR,#TABLE2;寫數據 CALL WRITE1
RET ;*********************************************寫指令 ENABLE: CLR RS CLR RW CLR E LCALL DELAY SETB E RET ;**********************************************寫數據 WRITE1: MOV R1,#00H
A1: MOV A,R1 MOVC A,@A+DPTR CALL WRITE2 INC R1 CJNE A,#0FEH,A1 ;未到字符串末尾繼續 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
|
|