機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
單片機(jī)課程設(shè)計:數(shù)字音樂盒(3)
單片機(jī)課程設(shè)計:數(shù)字音樂盒(3)
 更新時間:2008-7-27 13:54:15  點(diǎn)擊數(shù):4
【字體: 字體顏色

課程設(shè)計名稱:數(shù)字音樂盒

實(shí)驗(yàn)報告
課程設(shè)計名稱:數(shù)字音樂盒
課程設(shè)計單位:自動化031班
課設(shè)小組成員:杜斐斐
王薄
單片機(jī)課程設(shè)計實(shí)驗(yàn)報告
課程設(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è)計:本程序可以實(shí)現(xiàn)課程設(shè)計的基本要求和附加功能,并可以通過按鍵播放七首歌曲。實(shí)驗(yàn)程序如下:


;******************************************
;播放歌曲程序
;--------------------------------------------------------------------

MAIN0: MOV TMOD,#11H
MOV IE,#8aH
;MOV TH1, #3cH
;MOV TL1, #0b0H
lcall ks
jnz TTM12
MOV 40H,#00H
;---------------------------------------------------------
NEXT20: MOV A,40H
MOV DPH,52H
MOV DPL,53H
MOVC A,@A+DPTR
MOV R2,A
JZ STOP
ANL A,#0FH
MOV R1,A
MOV A,R2
SWAP A
ANL A,#0FH
JNZ SING
CLR TR0
JMP W1
;----------------------------------------------------------
SING: DEC A
MOV 22H,A
RL A
MOV DPTR,#TABLE00
MOVC A,@A+DPTR
MOV TH0,A
MOV 21H,A
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR
MOV TL0,A
MOV 20H,A
SETB TR0
SETB TR1
W1: LCALL DELAY30
INC 40H
LCALL KS ;------有鍵跳出
JNZ STOP
LJMP NEXT20
;-----------------------------------------------------------
STOP: CLR TR0
CLR TR1
LJMP MAIN0
;----------------------------------------------------------
TTM12: LCALL K2
MOV A,37H
CJNE A,#0EH,TTM13
CLR TR1
LCALL DELAY1
TTM120: LCALL KS
LCALL DELAY1
JZ TTM120
LCALL K2
MOV A,37H
CJNE A,#0EH,TTM120
SETB TR1
LJMP NEXT20
TTM13: CJNE A,#0CH,TTM14
MOV A,52H
INC A
MOV 52H,A
MOV A,53H
INC A
MOV 53H,A
MOV A,36H
INC A
MOV 37H,A
LJMP TTM2
TTM14: CJNE A,#0DH,TTM2
MOV A,52H
DEC A
MOV 52H,A
MOV A,53H
DEC A
MOV 53H,A
MOV A,36H
DEC A
MOV 37H,A
;------------------------------------------------------
TTM2: RET
;***************************************************
;定時器中斷子程序0
;***************************************************

TT0: PUSH ACC
PUSH PSW
MOV TL0,20H
MOV TH0,21H
CPL P3.7
POP PSW
POP ACC
RETI
;***************************************************
;定時器中斷子程序1
;***************************************************
T1INT:
MOV TH1, #3cH
MOV TL1, #0b0H

DJNZ L50MS,X4
MOV L50MS,#20

;****************---每秒種時鐘刷新秒顯示一次
SECSET:
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 A,SEC
INC A
MOV SEC,A

XRL A,#60
X4: JNZ OUT

MINSET: MOV SEC,#00H
;*************************************每分鐘刷新分顯示一次
MOV A,MIN
INC A
MOV MIN,A

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,MIN
MOV B,#3
MUL AB

MOV B,#100
DIV AB
MOV R2,A
MOV A,#10
XCH A,B
DIV AB

MOV A,MIN
XRL A,#60
JNZ OUT
HOUSET:
MOV MIN,#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,HOU
INC A
MOV HOU,A
XRL A,#10
JNZ OUT
SJMP OVERFLOW
OUT: RETI
;*************************************溢出處理
OVERFLOW:
MOV L50MS,#20
MOV L1MS,#00H
MOV L250MS,#00H
MOV SEC,#00H
MOV MIN,#00H
MOV HOU,#00H
RETI
;--------------------------------------------------------------------
DELAY30:
MOV R7,#2
W2: MOV R4,#125
W3: MOV R3,#248
DJNZ R3,$
DJNZ R4,W3
DJNZ R7,W2
DJNZ R1,DELAY30
RET
;--------------------------------------------------------------------
TABLE00:
DW 64580,64684,64777,64820
DW 64898,64968,65030,64260
DW 64400,64524,65058,63835,64021
;--------------------------------------------------------------------

  • 上一篇: 單片機(jī)課程設(shè)計:數(shù)字音樂盒(4)
  • 下一篇: 智能型電話遠(yuǎn)程遙控器--畢業(yè)論文
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1