没有合适的资源?快使用搜索试试~ 我知道了~
单片机课程设计音乐盒.doc
需积分: 9 1 下载量 153 浏览量
2022-07-17
11:14:48
上传
评论 1
收藏 100KB DOC 举报
温馨提示
试读
25页
单片机课程设计音乐盒.doc
资源详情
资源评论
资源推荐
微机原理课程设计
微机原理课程设计
题 目:数字音乐盒
姓 名:
学 号:
指导老师 :
目 录
一、任务与要求 3
二、硬件设计 3
. . . .
2 / 25
三、软件设计 3
四、调试 24
五、收获和体会 25
六、参考文献 25
单片机课程设计实验报告
一、任务与要求
课程设计题目:数字音乐盒
课程设计要求:1.利用 I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音
调,从而演奏乐曲(最少三首乐曲,每首不少于 30 秒)
2.采用 LCD 显示信息
3.开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)
4.可通过功能键选择乐曲,暂停,播放。
5.选作容:显示乐曲播放时间或剩余时间
二、硬件设计
硬件电路:本设计中用到了 98C51 单片机,4*4 键盘,蜂鸣器,16*2 LCD,七段
显示数码管 LED。(硬件电路原理图附于后页)
原理说明:当键盘有键按下时,判断键值,启动计数器 T0,产生一定
频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器 T1,
显示乐曲播放的时间,并驱动 LCD,显示歌曲号与播放时间。
. . . .
3 / 25
也可在 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
. . . .
4 / 25
;-------------------------------存初始化
LCALLINITIL
;-------------------------------
key1: LCALL key
LCALLmodd
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
ACC.4,L1 ;为 1 跳转,第一行无按键
mov a,#00h
ljmp lk
L1: acc.5,L2
mov a,#04h
ljmp lk
L2: acc.6,L3
mov a,#08h
ljmp lk
L3: acc.7,next1
mov a,#0ch
;-------------------------------------------------------
lk: add a,R4
push acc
k4: lcall delay1 ;若同时有其他按键,则等待
lcall ks
jnz k4
. . . .
5 / 25
;--------------------------------------------------------
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 初值为零
剩余24页未读,继续阅读
智慧安全方案
- 粉丝: 3642
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0