0934091单片机设计Word文档下载推荐.docx
- 文档编号:18383120
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:32
- 大小:137.18KB
0934091单片机设计Word文档下载推荐.docx
《0934091单片机设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《0934091单片机设计Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
1、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音响,从而演奏乐曲(最少储存三首乐曲,每首不少于三十秒);
2、采用LCD显示;
3、开机时有英文欢迎字符,播放时显示歌曲序号(或名称);
4、可通过功能键选择乐曲,暂停,播放;
5、选做内容:
显示乐曲播放时间或剩余时间;
6、本设计中用89C51单片机,4*4键盘,蜂鸣器,16*2LCD,七段显示数码管LED;
3、总体设计
原理图如下图所示:
图1总体原理图
应用AT89S51单片机来设计音乐盒的硬件电路,并利用汇编语言进行程序设计。
通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制发音时间的长短。
程序通过把乐谱转化成相应的定时常数来驱动发音设备演奏出悦耳动听的音乐。
对于不同的音乐只需要改变相应的定时常数即可。
声音是音频振动的结果,振动的频率高则为高音,频率低则为低音。
音频范围为20HZ-200KHZ之间,而人类耳朵比较容易辨识的声音大概是200HZ-20KHZ。
一般音响电路是以正弦波信号驱动喇叭,产生悦耳的音乐的;
在数字电路里,则是以脉冲信号驱动喇叭以产生声音。
同样的频率,脉冲信号或正弦信号产生的音效,对于人类的耳朵来说很难有所区别。
AT89S51单片机有3个独立的16位定时/计数器,即定时/计数器0(T0),定时/计数器1(T1)和定时/计数器2(T2)。
它们都有定时或事件计数功能,可用于定时控制、延时、对外事件计数和检测等场合。
3个16位定时/计数器,其中T0,T1可作16位加1计数器,T2既可作16位加1计数器,也可作减1计数器,每个定时/计数器都可由软件设置为定时工作方式或计数工作方式。
当设置为计数工作方式时,通过引脚T0(P3.4),T1(P3.5),T2(P1.0)对外部脉冲信号计数,当输入脉冲信号从1到0负跳变时,计数器就自动就1。
为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。
表1曲调参考
曲调值
DELAY
调4/4
125ms
62ms
调3/4
187ms
94ms
调2/4
250ms
4、各部分电路设计
图2键盘
1.按键功能说明:
=:
第一首歌曲;
0:
第二首歌曲;
On/c:
第三首歌曲
—:
第四首歌曲;
3:
第五首歌曲;
2:
第六首歌曲;
1:
第七首歌曲;
*:
第八首歌曲;
6:
第九首歌曲;
5:
第十首歌曲;
+:
歌曲暂停;
7:
开机画面。
当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。
也可在LED显示歌曲号。
2、显示系统
对于显示时间程序的设计,主要依靠单片机内部定时器的计数功能实现。
单片机P0口接LCD数码管,并外接1K欧的排阻,利用单片机内部的定时器中断控制时间程序,然后在数码管上显示出时间。
图3LED显示系统
3、发音系统
图4扬声器
4、软件设计
程序流程图
图5程序流程图
5、整体电路图
图6整体电路图
六、设计总结
1、设计过程中遇到的问题及解决方法
有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发行是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。
程序中的跳转指令的运用很重要,为保险起见,都用LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。
当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。
编程时要注意,在程序开始时,要写入各定时器中断的入口地址。
编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。
2、设计体会
学习单片机,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;
其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次阅读编写单片机的大程序,很有成就感。
单片机AT89S51是一种非常小巧但功能非常多,应用非常广的一种芯片,功率也非常的小,采用AT89S51作为系统核心制作音乐演奏控制设计电路简单了很多,由于可以反复烧写,为学习降低成本。
本设计外部采用单片机的复位电路设计、单片机的震荡电路设计、LCD数码管显示正在播放的音乐序号,按键控制等,但由于AT89S51分辨率不是太高,音乐有点单调,另外,由于时间关系具体电路还有的地方不尽完善之处。
3、对设计的建议
希望下一次课程设计中,每个人都能有一块实验开发板,这样能使每个人都能得到充分的锻炼!
七:
参考文献
[1]杨恢先,单片机原理与应用,人民邮电出版社社,2006年。
[2]李传军,单片机原理及应用(第一版),河南科学技术出版社,2006年。
[3]杨志忠,数字电子技术,高等教育出版社(第四版),2007年。
[4]张静武,单片机原理、应用与PROTEUS仿真,电子工业出版社,2009年。
附:
RSBITP2.0;
定义液晶显示端口标号
RWBITP2.1
EBITP2.2
;
********************************************
L50MSEQU60H
L1MSEQU61H
L250MSEQU62H
SECEQU65H
MINEQU64H
HOUEQU63H
*******************************************
org0000h
ljmpmain
ORG000BH
LJMPTT0
ORG001BH
LJMPT1INT
org1000h
main:
-----------------------;
液晶初始化
MOVSP,#70H
MOVP0,#01H;
清屏
CALLENABLE
MOVP0,#38H;
8位,2行显示
lCALLENABLE
MOVP0,#0FH;
屏显on,光标on,闪烁on
MOVP0,#06H;
计数地址加1,显示幕on
-------------------------------内存初始化
lcallinitil
-------------------------------
key1:
lcallkey
lcallmodd
ljmpkey1
---------------------键盘扫描
key:
nop
lcallks
jnzk1;
有按键转到K1
lcallkaiji
lcallSOP
xn:
ljmpkey
k1:
lcallmodd
jnzk2
k2:
movR2,#0feh;
读键盘
movR4,#00h
k3:
movA,R2
movP1,A
movA,P1
JBACC.4,L1;
为1跳转,第一行无按键
mova,#00h
ljmplk
L1:
jbacc.5,L2
mova,#04h
L2:
jbacc.6,L3
mova,#08h
L3:
jbacc.7,next1
mova,#0ch
-------------------------------------------------------
lk:
adda,R4
pushacc
k4:
lcalldelay1;
若同时有其他按键,则等待
jnzk4
--------------------------------------------------------
movr3,#07h
clra
movr0,#30h
movr1,#31h
mm1:
mova,@r1
mov@r0,a
incr0
incr1
djnzr3,mm1
popacc
mov@r0,a
RET
------------------------------------------------------
next1:
incR4;
------列扫描
mova,R2
JNBacc.3,n2
ljmpn1
n2:
n1:
rla
movR2,a
ljmpk3
----------------------------------------------
ks:
mova,#0f0h;
判断P1口
movP1,a
mova,P1
cpla
anla,#0f0h
--------------------------------------------------
DELAY1:
SETBRS0
dl:
movR5,#0ah
dl2:
movR6,#63
dl3:
nop
djnzR6,dl3
djnzR5,dl2
CLRRS0
---------------------------------------------------
30H-37H初值为零
----------------------------------------------------
initil:
movr3,#08h
m1:
mov@r0,#00h
djnzr3,m1
显示
---------------------------------------------------
modd:
MOVP0,#8EH
CALLENABLE
movA,37H
movDPTR,#TABLE3
MOVCA,@A+DPTR
CALLWRITE2
开机提示字
-------------------------------------------------
kaiji:
mova,37h
cjnea,#0fh,DFF
MOVP0,#80H;
设光标地址
MOVDPTR,#TABLE1;
写数据
CALLWRITE1
DFF:
按键值播放歌曲
SOP:
cjnea,#01h,A11
LCALLMODD
MOV52H,#HIGHTABLE10
MOV53H,#LOWTABLE10
LCALLINITILE2
lcallMAIN0
A11:
CJNEA,#02H,A22
MOV52H,#HIGHTABLE20
MOV53H,#LOWTABLE20
LCALLINITILE2
A22:
CJNEA,#03H,A33
MOV52H,#HIGHTABLE30
MOV53H,#LOWTABLE30
lcallMAIN0
A33:
CJNEA,#04H,A44
MOV52H,#HIGHTABLE40
MOV53H,#LOWTABLE40
A44:
CJNEA,#05H,A55
MOV52H,#HIGHTABLE50
MOV53H,#LOWTABLE50
A55:
CJNEA,#06H,A66
MOV52H,#HIGHTABLE60
MOV53H,#LOWTABLE60
A66:
CJNEA,#07H,A77
MOV52H,#HIGHTABLE70
MOV53H,#LOWTABLE70
A77:
CJNEA,#08H,A88
MOV52H,#HIGHTABLE80
MOV53H,#LOWTABLE80
A88:
CJNEA,#09H,A99
MOV52H,#HIGHTABLE90
MOV53H,#LOWTABLE90
A99:
CJNEA,#0AH,AAA
MOV52H,#HIGHTABLE100
MOV53H,#LOWTABLE100
AAA:
RET
******************************************
INITILE2:
MOVL50MS,#20
MOVL1MS,#00H
MOVL250MS,#00H
MOVSEC,#00H
MOVMIN,#00H
MOVHOU,#00H
MOVA,HOU
MOVB,#10
DIVAB
ADDA,#30H;
将BCD吗转化为ASIIC码
MOVP0,#0C8H;
显示小时十位
CALLWRITE2
MOVA,B
ADDA,#30H
MOVP0,#0C9H;
显示小时个位
MOVA,#3AH
MOVP0,#0DH;
显示冒号
MOVA,MIN
MOVP0,#0CBH;
显示分十位
MOVP0,#0CCH;
显示分个位
MOVP0,#0CDH;
MOVA,SEC
ADDA,#30H
MOVP0,#0CEH;
显示秒十位
MOVP0,#0CFH;
显示秒个位
MOVP0,#0C0H;
MOVDPTR,#TABLE2;
*********************************************写指令
ENABLE:
CLRRS
CLRRW
CLRE
LCALLDELAY
SETBE
**********************************************写数据
WRITE1:
MOVR1,#00H
A1:
MOVA,R1
INCR1
CJNEA,#0FEH,A1;
未到字符串末尾继续
WRITE2:
MOVP0,A
SETBRS
CALLDELAY
**********************************************
DELAY:
MOVR4,#05
D1:
MOVR5,#0FFH
DJNZR5,$
DJNZR4,D1
TAB:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h
db80h,90h,88h,83h,0c6h,0a1h,86h,8eh
TAB1:
db89h,86h,0c7h,0c7h,0c0h
TAB2:
db0c6h,88h,0c0h
TABLE1:
DB'
WELCOMHERE'
0FEH
TABLE2:
DFFWB'
TABLE4:
CAU'
TABLE3:
DB30H,31H,32H,33h
DB34H,35H,36H,37H
DB38h,39H,41H,42H
DB43H,44H,45H,46H
--------------------------------------------------------------------
播放歌曲程序
MAIN0:
MOVTMOD,#11H
MOVIE,#8aH
;
MOVTH1,#3cH
MOVTL1,#0b0H
jnzTTM12
MOV40H,#00H
---------------------------------------------------------
NEXT20:
MOVA,40H
MOVDPH,52H
MOVDPL,53H
MOVCA,@A+DPTR
MOVR2,A
JZSTOP
ANLA,#0FH
MOVR1,A
MOVA,R2
SWAPA
JNZSING
CLRTR0
JMPW1
----------------------------------------------------------
SING:
DECA
MOV22H,A
RLA
MOVDPTR,#TABLE00
MOVCA,@A+DPTR
MOVTH0,A
MOV21H,A
MOVA,22H
INCA
MOVTL0,A
MOV20H,A
SETBTR0
SETBTR1
W1:
LCALLDELAY30
INC40H
LCALLKS;
------有键跳出
JNZSTOP
LJMPNEXT20
-----------------------------------------------------------
STOP:
CLRTR0
CLRTR1
LJMPMAIN0
TTM12:
LCALLK2
MOVA,37H
CJNEA,#0EH,TTM13
LCALLDELA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0934091 单片机 设计