电子琴微机原理基于8086课程设计.docx
- 文档编号:25810289
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:13
- 大小:56.38KB
电子琴微机原理基于8086课程设计.docx
《电子琴微机原理基于8086课程设计.docx》由会员分享,可在线阅读,更多相关《电子琴微机原理基于8086课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
电子琴微机原理基于8086课程设计
湖南科技大学
潇湘学院信息与电气工程系
《课程设计报告》
题目:
基于8086的电子琴设计
专业:
通信工程
班级:
通信一班
姓名:
罗婷
学号:
18
指导老师:
欧青立陈君宋芳管志利李目
2015年12月28日
信息与电气工程系
课程设计任务书
2015—2016学年第1学期
专业:
通信工程学号:
18姓名:
罗婷
课程设计名称:
微机原理与接口技术
设计题目:
基于8056的电子琴设计
完成期限:
自2015年12月14日至2015年12月26日共2周
设计内容:
通过8255和8253来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。
输入部分:
主要是由8255和8个常开型开关来完成。
发音部分:
CUP通过对定时器8253的通道2进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低位控制通道2门控的开断,以产生特殊的音响。
本文用到的是8253的方式3——方波发生器。
基本要求:
1.以8255接八个开关K1~K8,做电子琴按键输入。
2.以8253控制扬声器,拨动不同的开关,发出相应的音阶。
要求:
开关
K1
K2
K3
K4
K5
K6
K7
K8
对应频率
静音
si
la
so
fa
mi
ri
do
对应数据
0FEH
0FDH
0FBH
0F7H
0EFH
0DFH
0BFH
7FH
指导教师(签字):
批准日期:
年月日
摘要
定时器/计数器8253可以产生不同频率的信号,经过三极管放大驱动扬声器发出不同的音阶。
硬件上以8086作为核心处理单元,将8253的输出端连接音频模块。
软件上检测按键是否有键按下,判断按键并驱动对应发音子程序。
通用MIDI音源模块制作制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。
这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。
手机中通用的音乐芯片构成音源模块,效果不错,价格更低廉,如韩国产的QS6400等,这些芯片的驱动要复杂一些,需要对芯片进行初始化设置。
此外还有音乐盒、附有生日歌的生日卡片等等。
所以利用微机制作的简易电子琴在我们的日常生活中随处可见。
关键词:
AltiumDesigner;masm.5.0;8086;8255;8253定时器;
1.设计目的
检验和提高我在原理与接口综合应用方面分析问题与解决问题的能力,同时也给我提供更多、更好的训练机会。
根据设计要求,尽可能完成设计要求的功能,选择最合适的器件,构成最有效的硬件电路来完成。
2.元件与仪器
1.计时器8253
2.并行控制器8255A
3.实验台
4.PC机
3.设计内容
⑴根据扬声器发声原理可知:
不同频率的方波通过扬声器可发出不同的声音。
⑵由此构想运用8253通道二工作在方式3的状态下控制其2#计数器对应寄存器中的数值,然后将输出端口OUT2产生的方波通过扬声器转换成为声音。
⑶为了实现弹奏按键来控制扬声器,可以通过用开关改变8253(工作在方式3的状态下)2#计数器对应寄存器中的数值,8253输出端口OUT2通过74LS08后与扬声器相连接。
⑷最后要实现的就是将开关对应的数字信号存入寄存器中采用8255A并行接口特点,使端口A工作在方式PB1并作为输出口,端口B工作在方式0,并作为输入口。
将开关与8255A的输入端口A相连接。
4.电路工作原理
整个电路采用模块化来进行设计,分为控制模块和发声模块。
主要的器件有一个并行接口8255,和一个8253定时器。
输入部分的硬件原理图比较简单,控制模块其主要是由8个常开型开关和一个并行接口8255组成。
8个开关一端接地,另一端接到8255的A口输入,并且通过一个电阻接到+5V。
因此,在开关不按下时,从8255A口输入的是高电平,当开关按下时,输入的则是低电平,这样通过低电平触发,既方便也对芯片起保护作用。
通过软件检测输入的数据,然后给8253送相应频率的计数值。
发音模块连接到扬声器上的是8253定时器2,GATE2与端口61H的PB0相连,当PB0=1时,GATE2获得高电平,使定时器2可以在模式3(方波)下工作。
定时器2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连。
当PB1=1时,允许OUT2的输出信号到达扬声器电路。
因此,只有PB0和PB1同时为“1”时,才能驱动扬声器鸣叫。
5.1控制模块工作原理
控制部分主要是由8255和8个常开型开关来完成。
常开型开关如右图。
8个常开型开关K1~K8与8255的A口PA0~PA7相接,不触动开关时,为高电平输入,当按下开关时,就接地,为低电平输入。
例如当K1键按下时,从8255中A口输入的数为B,十六进制为0FEH。
每一个开关按下时,都对应一个ASCII码,由于PC计算机的时钟晶振为1.1931816MHz,根据频率的公式:
f=1/T
则频率周期为
T=1/f
定时器的计数器为16位计数器,则最大的计数值为65536,那么其定时时间为:
t=65536*T=65536/f=0.0549254(秒)
即:
PC定时器每秒可中断18.2065次。
开关
K1
K2
K3
K4
K5
K6
K7
K8
对应数据
0FEH
0FDH
0FBH
0F7H
0EFH
0DFH
0BFH
7FH
对应频率
静音
493Hz
440Hz
392Hz
349Hz
329Hz
293Hz
261Hz
5.28255A芯片:
8255A是为Intel公司的微处理器配套的通用可编程并行接口芯片,其基本功能如下:
8255A接口芯片有3个8位并行输入/输出端口,可利用编程方法设置3个端口是作为输入端口还是作为输出端口;
8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。
如无条件传送,查询方式传送,中断方式传送。
与此相应,8255A设置了方式0、方式1以及方式2。
5.2.18255A的内部结构
8255A的C口比较特殊,除作数据口外,在工作方式1和2下,它的部分信号线被分配作专用的联络应答信号。
8255A的内部结构机外部引脚,它包括四个部分:
数据总线缓冲器,读写控制逻辑,A组和B组控制电路。
1.数据总线缓冲器
2.读写控制逻辑
3.A组和B组控制
A和端口C的高4位(PC7~PC4)构成A组,由A组控制部件来对它进行控制;端口B和端口C的低4位(PC3~PC0)构成B组,由B组控制部件对它进行控制。
5.2.28255的外部引脚
8255的外部引脚
1.与CPU相连的引脚
D7~D0:
数据线,双向、三态。
:
读信号,输入、低电平有效。
:
写信号,输入、低电平有效信号。
:
片选信号,输入、低电平有效。
2.8255A的数据线、片选信号线、地址线、读写控制线等分别与系统总线相连,其中A、B、C三个端口一排针形式引出。
表18255A端口地址表
信号线
寄存口
编址
IY03
A口
60H
B口
61H
C口
62H
控制寄存器
63H
5.2.38255的方式控制字
8255A的工作方式控制字格式和各位的含义。
A组有三种工作方式,而B只有两种工作方式。
方式0—基本的输入/输出方式
方式1—选通式输入/输出
方式2—双向选通输入/输出方式
6.发声模块工作原理
要使扬声器发出不同的音阶,就得输入不同频率的信号。
通过给定时/计数器8253送入不同的初值,可以从输出端得到不同频率的波形,在74LS08的作用下经过放大器三极管8550的放大作用,便可驱动扬声器发出不同的音阶。
音阶声音的持续时间可以通过软件延时程序实现。
1~7某一按键被系统检测到,系统驱动PC对应子程序使扬声器输出对应的音阶。
6.1.18253芯片
8253内设三个计数器都独立工作,用-65536之间的一个数去输入频率,可以实现每个计数器的独立编程。
每个计数器占有一个独立的端口地址。
可以通过A0、A1、和CS来寻址这些端口如下图所示:
6.1.28253的6种工作方式:
方式0--计数结束产生中断
方式1--单稳负脉冲信号发生器
方式2--分频器
方式3--方波信号发生器
方式4--软件触发的选通信号发生器
方式5--硬件触发的选通信号发生器
本课题采用通道二方式3,当通道2用于发声时,采用的是模式3,在模式3下,输出线为“1”和为“0”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。
从定时器输出的方波信号,三极管驱动扬声器。
送到扬声器的信号还受到了从并行接口芯片8255(端口地址为61H)来的双重控制,端口61H的最低位控制通道2的门控开断,以产生特殊的音频信号,端口61H的PB1位和定时器的输出信号同时作为与门的输入,PB0和PB1位可由程序决定为0还是为1。
显然只有PB0和PB1都是1时,才能使扬声器发出声音。
控制音长的时间可以简单地通过反复执行指令来得到。
我们知道执行2801次LOOP指令约需要10MS的时间。
因此用10MS的倍数值来控制扬声器开关的时间间隔,就可控制发声的音长了。
打开X86PC扬声器,GATE2必须设置为高电平,以便计数器2提供CLK信号。
该端口61H的PB0来完成,由下图还可以看到计数器2的OUT2和端口61H的PB1进行与操作,然后输入到PNP三极管8550进行放大作用再到扬声器中进行播放。
为此,为了将OUT2传送到扬声器,端口61H的PB1也必须为高电平。
INAL,61H;获得端口B的当前设置
MOVAH,AL;保存
ORAL,00000011B;使PB0=1,PB1=1
MONAL,AH;获得端口B的初始设置
OUT61H,AL;关闭扬声器
7.整体电路图
8.主要程序与编译软件
Masmforwindows集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特点开发的一个简单易用的汇编语言学习与实验软件,现在已全面支持最新操作系统VISTA,支持DOS的16/32位汇编程序和Windows下的32汇编程序(并提供调试通过的30个WINDOWS汇编程序实例源代码),它具有错误信息自动定位、关键字实时帮助并且在帮助中动画演示汇编指令的执行过程、语法着色、无限次撤消与恢复、WORD式的查找、替换、定位、支持中文、长文件名等功能。
本课程设计采用Masmforwindows集成实验环境极大方便了程序的编辑与调试。
9.软件程序:
DATASEGMENT
TABLEDW493;K2—发si的音493Hz
DW440;K3—发la的音440Hz
DW392;K4—发sol的音392Hz
DW349;K5—发fa的音349Hz
DW329;K6—发mi的音329Hz
DW293;K7—发re的音293Hz
DW261;K8—发do的音261Hz
DATAENDS
;定义堆栈段
STACKSEGMENTPARASTACK'STACK'
STADB48DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT;定义代码段
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX;初始化DS
MOVAX,STACK
MOVSS,AX;初始化SS
MOVAX,TOP
MOVSP,AX
MOVAL,90H;初始化8255
OUT63H,AL
;从8255A口输入一个数据
K0:
INAL,60H
;以下为检测哪个键按下
CMPAL,0FEH
JZK1
CMPAL,0FDH
JZK2
CMPAL,0FBH
JZK3
CMPAL,0F7H
JZK4
CMPAL,0EFH
JZK5
CMPAL,0DFH
JZK6
CMPAL,0BFH
JZK7
CMPAL,7FH
JZK8
JMPEXIT;如没有键按下,或不止一个键按下,则跳到EXIT
K1:
JMPK0;如果为K1按下,则返回继续循环,为静音
K2:
MOVBX,TABLE;如为其它键则把相应的频率送给BX
JMPSOUNDF
K3:
MOVBX,TABLE+1
JMPSOUNDF
K4:
MOVBX,TABLE+2
JMPSOUNDF
K5:
MOVBX,TABLE+3
JMPSOUNDF
K6:
MOVBX,TABLE+4
JMPSOUNDF
K7:
MOVBX,TABLE+5
JMPSOUNDF
K8:
MOVBX,TABLE+6
SOUNDF:
MOVDX,12H
MOVAX,348CH
DIVBX
CALLSOUND;调用发音子程序
CALLDELAY;调用延时程序
EXIT:
MOVAH,06H;有无键盘动作
MOVDL,0FFH
INT21H
JZK0;如果没有,则跳到KO循环
MOVAH,4CH;如果有,则结束返回
INT21H
;以下是发音子程序
SOUNDPROCNEAR
PUSHAX
MOVAL,B;初始化8253
OUT43H,AL
POPAX
OUT42H,AL;送计数值
MOVAL,AH
OUT42H,AL
INAL,Y2;发音设置,打开扬声器
ORAL,03H
OUTY2,AL
RET
SOUNDENDP
;以下是延时子程序
DELAYPROCNEAR
PUSHCX
PUSHAX
MOVAX,0FFFH
X11:
MOVCX,2801
X12:
LOOPX12
DECAX
JNZX11
POPAX
POPCX
RET
DELAYENDP
CODEENDS
ENDSTART
10.心得体会
在为期两周的课程设计中我学到了很多。
其中知道了一个课题需要从硬件开始设计在进行软件的设计。
程序编好后,编译,连接,运行,即可实现电子琴效果。
可以在计算机键盘上弹奏出美妙动听的音乐,这样学习兴趣和热情自然就高。
通过该实验可以对所学知识有更进一步的理解,对知识的应用有更进一步的体会,从而可以站在一个更高的层面上认识所学的知识。
比如此例实际上就是从定时、计数问题中派生出来的,把计和定时联系起来,就会引出频率的概念,由频率又可以引出声音。
如果不仅考虑音调的高低,还考虑发声所占时间的长短,就会产生音乐。
这样综上所述,可以看到,在接口课程的实际教学中,结合实例进行讲解比纯理论的“天马行空”更能实实在在地将理论知识落到实处,使我更加明晰知识的来龙去脉以及与工程实践相结合的情况。
知道了知识的用处再去进行深刻的钻研,既有任务驱动的实效性又具切身体会的真实性,使我不再把接口课程看作是枯燥空洞的无味课,而是与实际联系密切,学有所用的趣味课。
本案例虽然主要针对8253芯片,但这里面所蕴涵的思想和方法同样也适用于其他接口知识的讲解。
同时在这两周的实践中我要感谢我的指导老师,在设计的过程中我遇到了很多这样那样的问题在老师的指点下我很快的解决了,同时让哦受益匪浅。
其次我也要感谢我的同学在课程设计期间我知道交流的重要性在交流的过程中我们可以从别人的想法中得到启发。
参考文献
[1]MuhammadAliMazidiJaniceGillispieMazidiDannyCausey.X86PC汇编语言、设计与接口.
[2]季爱明,冷智涛。
“微机原理与接口技术”课程教学改革和实践[j].中国教育技术装备.2008(12)
[3]戴志强.《微机原理与接口技术》教学改革探讨[J].中国科技信息.2009(24)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子琴 微机 原理 基于 8086 课程设计