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

實驗報告
課程設(shè)計名稱:數(shù)字音樂盒
課程設(shè)計單位:自動化031班
課設(shè)小組成員:杜斐斐
王薄
單片機課程設(shè)計實驗報告
課程設(shè)計題目:數(shù)字音樂盒
課程設(shè)計要求:1.利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂曲(最少三首樂曲,每首不少于30秒)
2.采用LCD顯示信息
3.開機時有英文歡迎提示字符,播放時顯示歌曲序號(或名稱)
4.可通過功能鍵選擇樂曲,暫停,播放。
5.選作內(nèi)容:顯示樂曲播放時間或剩余時間
硬件電路:本設(shè)計中用到了98C51單片機,4*4鍵盤,蜂鳴器,16*2 LCD,七段
顯示數(shù)碼管LED。(硬件電路原理圖附于后頁)
原理說明:當鍵盤有鍵按下時,判斷鍵值,啟動計數(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è)計的基本要求和附加功能,并可以通過按鍵播放七首歌曲。實驗程序如下:


RS BIT P2.0 ;定義液晶顯示端口標號
RW BIT P2.1
E BIT P2.2
;********************************************
L50MS EQU 60H
L1MS EQU 61H
L250MS EQU 62H
SEC EQU 65H
MIN EQU 64H
HOU EQU 63H
;*******************************************
org 0000h
ljmp main
ORG 000BH
LJMP TT0
ORG 001BH
LJMP T1INT
org 1000h
main:
;-----------------------;液晶初始化
MOV SP,#70H
MOV P0,#01H ;清屏
CALL ENABLE
MOV P0,#38H ;8位,2行顯示
lCALL ENABLE
MOV P0,#0FH ;屏顯on,光標on,閃爍on
lCALL ENABLE
MOV P0,#06H ;計數(shù)地址加1,顯示幕on
lCALL ENABLE
;-------------------------------內(nèi)存初始化
lcall initil
;-------------------------------
key1: lcall key
lcall modd
ljmp key1
;---------------------鍵盤掃描
key: nop
nop
lcall ks
jnz k1 ;有按鍵轉(zhuǎn)到K1
lcall kaiji
lcall SOP

xn: ljmp key

k1: lcall modd
lcall modd
lcall ks
jnz k2
ljmp key
k2: MOV R2,#0feh ;讀鍵盤
MOV R4,#00h
k3: MOV A,R2
MOV P1,A
MOV A,P1

JB ACC.4,L1 ;為1跳轉(zhuǎn),第一行無按鍵
MOV a,#00h
ljmp lk
L1: jb acc.5,L2
MOV a,#04h
ljmp lk
L2: jb acc.6,L3
MOV a,#08h
ljmp lk
L3: jb acc.7,next1
MOV a,#0ch
;-------------------------------------------------------
lk: add a,R4
push acc
k4: lcall delay1 ;若同時有其他按鍵,則等待
lcall ks
jnz k4
;--------------------------------------------------------
MOV r3,#07h
clr a
MOV r0,#30h
MOV r1,#31h
mm1: MOV a,@r1
MOV @r0,a
inc r0
inc r1
djnz r3,mm1
pop acc
MOV @r0,a
RET
;------------------------------------------------------
next1: inc R4 ;------列掃描
MOV a,R2
JNB acc.3,n2
ljmp n1
n2: ljmp key
n1: rl a
MOV R2,a
ljmp k3
;----------------------------------------------
ks: MOV a,#0f0h ;判斷P1口
MOV P1,a
nop
nop
MOV a,P1
cpl a
anl a,#0f0h
RET
;--------------------------------------------------
DELAY1:
SETB RS0
dl: MOV R5,#0ah
dl2: MOV R6,#63
dl3: nop
nop
djnz R6,dl3
djnz R5,dl2
CLR RS0
RET
;---------------------------------------------------
;30H-37H初值為零
;----------------------------------------------------
initil:
MOV r3,#08h
MOV r0,#30h
m1: MOV @r0,#00h
inc r0
djnz r3,m1
RET
;----------------------------------------------------
;顯示
;---------------------------------------------------
modd:
MOV P0,#8EH
CALL ENABLE
MOV A,37H
MOV DPTR,#TABLE3
MOVC A,@A+DPTR
CALL WRITE2
RET
;--------------------------------------------------
;開機提示字
;-------------------------------------------------
kaiji: MOV a,37h
cjne a,#0fh,DFF
MOV P0,#80H ;設(shè)光標地址
CALL ENABLE
MOV DPTR,#TABLE1;寫數(shù)據(jù)
CALL WRITE1
DFF: RET
;----------------------------------------------
;按鍵值播放歌曲
;----------------------------------------------
SOP: MOV a,37h
cjne a,#01h,A11
LCALL MODD
MOV 52H,#HIGH TABLE10
MOV 53H,#LOW TABLE10
LCALL INITILE2
lcall MAIN0
A11: CJNE A,#02H,A22
LCALL MODD
MOV 52H,#HIGH TABLE20
MOV 53H,#LOW TABLE20
LCALL INITILE2
lcall MAIN0
A22: CJNE A,#03H,A33
LCALL MODD
MOV 52H,#HIGH TABLE30
MOV 53H,#LOW TABLE30
LCALL INITILE2
lcall MAIN0
A33: CJNE A,#04H,A44
LCALL MODD
MOV 52H,#HIGH TABLE40
MOV 53H,#LOW TABLE40
LCALL INITILE2
lcall MAIN0
A44: CJNE A,#05H,A55
LCALL MODD
MOV 52H,#HIGH TABLE50
MOV 53H,#LOW TABLE50
LCALL INITILE2
lcall MAIN0
A55: CJNE A,#06H,A66
LCALL MODD
MOV 52H,#HIGH TABLE60
MOV 53H,#LOW TABLE60
LCALL INITILE2
lcall MAIN0 A66: CJNE A,#07H,A77
LCALL MODD
MOV 52H,#HIGH TABLE70
MOV 53H,#LOW TABLE70
LCALL INITILE2
lcall MAIN0
A77: CJNE A,#08H,A88
LCALL MODD
MOV 52H,#HIGH TABLE80
MOV 53H,#LOW TABLE80
LCALL INITILE2
lcall MAIN0
A88: CJNE A,#09H,A99
LCALL MODD
MOV 52H,#HIGH TABLE90
MOV 53H,#LOW TABLE90
LCALL INITILE2
lcall MAIN0
A99: CJNE A,#0AH,AAA
LCALL MODD
MOV 52H,#HIGH TABLE100
MOV 53H,#LOW TABLE100
LCALL INITILE2
lcall MAIN0
AAA: RET
  • 上一篇: 智能體溫計畢業(yè)設(shè)計
  • 下一篇: 數(shù)字音樂盒單片機課程設(shè)計(2)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

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

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

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