您当前的位置:五五电子网电子知识电子制作自动控制-单片机数字音乐盒单片机课程设计(1) 正文
数字音乐盒单片机课程设计(1)

数字音乐盒单片机课程设计(1)

点击数:7514 次   录入时间:03-04 11:54:00   整理:http://www.55dianzi.com   自动控制-单片机
课程设计名称:数字音乐盒

实验报告
课程设计名称:数字音乐盒
课程设计单位:自动化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。
软件设计:本程序可以实现课程设计的基本要求和附加功能,并可以通过按键播放七首歌曲。实验程序如下:


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 ;计数地址加1,显示幕on
lCALL ENABLE
;-------------------------------内存初始化
lcall initil
;-------------------------------
key1: lcall key
lcall modd
ljmp key1
;---------------------键盘扫描
key: nop
nop
lcall ks
jnz k1 ;有按键转到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跳转,第一行无按键
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 ;设光标地址
CALL ENABLE
MOV DPTR,#TABLE1;写数据
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



本文关键字:单片机  课程  音乐盒  自动控制-单片机电子制作 - 自动控制-单片机