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

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

点击数:7276 次   录入时间:03-04 11:50:53   整理: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。
软件设计:本程序可以实现课程设计的基本要求和附加功能,并可以通过按键播放七首歌曲。实验程序如下:


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

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吗转化为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
;--------------------------------------------------------------------




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