8096单片机音乐程序设计.docx
《8096单片机音乐程序设计.docx》由会员分享,可在线阅读,更多相关《8096单片机音乐程序设计.docx(13页珍藏版)》请在冰豆网上搜索。
8096单片机音乐程序设计
课程设计
课程名称:
单片机课程设计
学院:
电气工程学院专业:
电气工程及其自动化
姓名刘明学号:
0908040270
年级:
092任课教师:
刘晓波
2012年7月10日
目录
摘要3
关键字3
设计要求3
设计内容3
设计原理4
1、8098芯片管脚介绍:
4
2、2764EPROM芯片管脚介绍:
5
3、74LS373锁存器介绍6
4、6264RAM芯片介绍:
6
程序设计7
1、硬件连接图7
2、程序流程图9
3、汇编程序10
程序条件13
心得体会14
参考资料15
摘要
通过对MCS-96系列单片机的学习和理解来进行本次课程设计,通过本次课程设计,加深对单片机的理解。
掌握定时器和汇编语言的基本原理,以达到综合运用自己所学的知识。
关键字
MCS—96系列单片机芯片流程图汇编
设计要求
本设计要求运用程序和相应的硬件连接,设计一个可以具有使定时器唱歌的功能。
设计内容
音乐播放条件是利用P2.5管脚输出高低电平的变化,即通过改变高低电平的变化速率和改变时间,来实现不同的音调和节奏。
音乐程序的编写是通过程序运行时所消耗的状态周期来延时,根据每条指令所需要的状态周期,通过改变参数来实现频率的输出和节拍的形成。
运用查表的方法完成音乐的演奏。
设计原理
1、8098芯片管脚介绍:
48脚的8098芯片
①输入/输出口
48脚8098有4个8位并行I/O口:
P0口:
只用于输入。
也可用作8路A/D转换器模拟量信号的输入口线ACH0~ACH7。
P2口:
多功能双向口。
P3口、P4口:
在访问外部存储器时用作系统的地址/数据总线。
②输入/输出控制、状态寄存器
8098中有2个I/O控制寄存器IOC0、IOCl,以及2个状态寄存器IOS0、IOS1。
I/O控制器0(IOC0)
I/O控制器1(IOC1)
I/O状态寄存器0(IOS0)
I/O状态寄存器1(IOS1)
图18098单片机芯片
2、2764EPROM芯片管脚介绍:
2764EPROM芯片:
2764是容量为8K*8的EPROM,紫外线擦除,电编程,为28脚的芯片,工作电压我+5V,编程电压为+21V,地址线为A0—A12.工作电源为+5V,编程电源为+21V,最大工作电流为100mA,标准读出时间为250ns的,也有为200ns的,2764引脚图见图2
图22764EPROM芯片引脚图
3、74LS373锁存器介绍:
74LS373是具有8个锁存器的芯片,其引脚图如图3
图3
74LS373引脚图管脚功能
(1)1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态)。
(2)当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态。
4、6264RAM芯片介绍:
6264是一种8K×8的静态存储器,采用CMOS工艺制作,为双列直插式封装,共28只引脚,其中地址线为A0—A12,使用单一+5V电源,额定功耗为220mW,典型存取时间为200ns。
芯片引脚见图4。
图4
程序设计
1、硬件连接图
图5整体设计硬件连线图
2、程序流程图
NO
YES
3、汇编程序
ORG2080H
JMPINITIAL
ORG2006H
JMPTONE-INT
ORG2000H
JMPBEAT-INT
MAIN:
LDSP,#00C0H;
LDBINT-MASK,#01H;
EI
LDEX,#2030H
STEX,2000H[0]
LOOP;CALLLOAD-TONE
CALLLOAD-BEAT
CLREX
JMPLOOP
(载入音阶)
LOAD-TONE:
LDDPTR,#TONE
LDBA,#86H
LDBA,DPTR
JNZCONTINUE
LDIOC1,#01H
LDIOC0,#04H
JMPLOAD-TONE
CONTINUE:
LD20H
LDTH0,A
INCCX
LDBX,TIMER1
LD21H,A
LDTL0,A
INCR7
SETBTR1
RET
(载入节拍)
LOAD-BEAT:
LDDPTR,#BEAT
LDDX,CX
LDBFL,#FFH
JBCHIS-STATUS,1,LOOP
LDTH1,#BASE
LDTL1,#BASE
SETBTR1
RET
(音阶中断子程序)
TONE-INT:
CLRTR1
CPLSPEAKER
LDA,20H
LDTH1,A
LDA,21H
LDTL0,A
SETBTR1
RET
(节拍中断子程序)
BEAT-INT:
CLRTR1
DJNZDX,AGAIN
CLRTR1
AGAIN:
LDTH1,#BASE
LDTL1,#BASE
SETBTR1
DW3BAH3BAH27EH27EH238H238H27EH
DW2CCH2CCH2F5H2F5H352H352H3BAH
DW20CH20CH30FH30FH370H370H30FH
DW269H269H294H294H24CH24CH20CH
RET
END
程序条件
音乐输出:
通过改变P2.5管脚对外输出高低电平的时间和变化速度,来实现输出不同的频率和时值。
各音调所对应的频率值,见下表:
音调
1
2
3
4
5
6
7
1
频率(Hz)
262
294
330
349
392
440
494
524
一周期(us)
3816
3401
3030
2865
2551
2272
2024
1908
高电平(us)
3BAH
352H
2F5H
2CCH
27EH
238H
1FAH
1DDH
循环值(次)
20CH
24CH
294H
269H
30FH
370H
3DEH
418H
高低电平出现的次数所需时间值和循环次数所需时间值之和近似为1秒,较好的方法就是将音乐程序运用高速输出管脚来控制。
心得体会
两周的单片机课程设计终于顺利完成了,其中包含着快乐,也有辛酸。
我的设计题目是“音乐程序设计”,刚开始时,真的是一头雾水,硬件电路不知如何下手,更何谈解决程序那块,因为我们所学的都是单片机方面的理论知识,应用到实践中去还比较少。
不过,也没偷下懒,迅速去查阅和收集资料。
去了图书馆借一些参考书,上网找一些相关资料,并且请教指导老师和周围的同学探讨。
通过不断努力,终于把音乐程序设计的思路定了下来并开始去修改程序。
做了之后,发现设计电路虽然简单,但我认为它真正困难的地方是程序设计,不过在我们同心努力下最终完成了设计,在此期间得到了老师、朋友和同学们的支持和帮助,最终基本实现了预期目的。
在完成单片机课程设计后,发现我们还有许多不足,所学到的知识还远远不够。
但通过学习这一次实践,增强了我们的动手能力,提高和巩固了单片机方面的知识,特别是软件方面。
从中增强了我们的团队合作精神,并让我们认识到把理论应用到实践中去是多么重要。
参考资料
●《单片机原理与应用》大连理工大学出版社
●《单片机原理与接口技术》北京航空航天大学出版社
●刘复华编著,《8098单片机原理及应用系统设计》,北京:
清华大学出版社
●王培东主编,《8098单片机原理及应用》,哈尔滨:
哈尔滨工业大学出版社