微机原理与接口技术(电子琴设计报告)
更新时间:2024-03-09 22:05:01 阅读量: 综合文库 文档下载
微机原理与接口技术
课程设计
基于8086系统的电子琴设计报告
05级电子信息工程2班
杨锡乐 学号:0504030223 参与成员:田友详、李丽华
一、设计任务及要求
1. 以8255接八个开关K1~K8,做电子琴按键输入。 2. 以8253控制扬声器,拨动不同的开关,发出相应的音阶。 要求: K1—静音
K2—发si的音493Hz K3—发la的音440Hz K4—发sol的音392Hz K5—发fa的音349Hz K6—发mi的音329Hz K7—发re的音293Hz K8—发do的音261Hz
二、方案比较和认证
通过8255和8253来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。输入部分主要是由8255和8个常开型开关来完成。常开型开关如右图。8个常开型开关K1~K8与8255的A口PA0~PA7相接,不触动开关时,为高电平输入,当按下开关时,就接地,为低电平输入。例如当K1键按下时,从8255中A口输入的数为11111110B,十六进制为0FEH。每一个开关按下时,都对应一个ASCII码,如下表所示:
开 关 K1 K2 K3 K4 K5 K6 K7 K8
对应数据 0FEH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 7FH
对应频率 静音 493 Hz 440 Hz 392 Hz 349 Hz 329 Hz 293 Hz 261 Hz
输入部分的硬件实现比较简单,所以说主要还是在发音部分。在设计中驱动扬声器地声的主要有两种方式,分别是以位触发和定时器控制。下面就这两种不同的方式确定两个不同的设计方案。
方案1:
发声采用位触发方式。电路原理图如下所示。程序直接控制PPI(8255可编程序外围接口芯片)的输出控制寄存器(I/O端口为61H)的第一位,使该位按所需的频率进行1和0的交替变化,从而产生一串脉冲控制波形,这些脉冲经过放大后驱动扬声器发出声音。
可以利用软件延时来控制所产生的脉冲波形的长度和脉宽,就可以实现产生不同频率和不同音长的声音。软件实现的程序如下: IN AL,61H MOV AH,AL
AND AL,0FCH ;关断定时器通道2的门控 SOUND:XOR AL,2 ;触发61H端口第1位 OUT 61H,AL
MOV CX,DX ;(DX)=控制脉冲的计数值 WAIT: LOOP WAIT ;延时循环 DEC BX ;(BX)=脉冲持续的时间 JNZ SOUND MOV AL,AH
OUT 61H,AL ;恢复61H端口
在本方案中,通过程序的方法来控制PB1,使其在1和0之间按一定的频率变,从而产生一串脉冲。控制
脉冲宽度的计数值的算法如下:
计数值=2801*100/音频
如果音频为f,则脉冲周期1/f一个半波的时间为1/2f秒,而1/2f秒的延时可简单地通过LOOP指令的循环来取得,由于2801次LOOP指令循环执行所需时间是10MS,所以一秒钟时间约执行2801*100次LOOP指令。控制脉冲宽度的计数值的实现程序如下: MOV AX,2801
MOV BX,50 ;频率不同该值就不同 MUL BX
DIV DI ;(DI)= f
MOV DX,AX ;(DX)=1/2f
算出了脉冲宽度,再通过高低电平的不断变换,就可实现不同频率的脉冲方波。把此方波经滤波放大即可驱动扬声器发声了。
方案2:
利用定时器发声。这里是通过硬件即8253定时器产生声音。
CUP通过对定时器的通道2进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低位控制通道2门控的开断,以产生特殊的音响。当定时器接收的计数值为533H时,能产生896Hz的声音,因此产生其他频率的计数值就可由下式计算: 计数值=533H×896÷ f=1234DCH÷ f
在送出频率计数值之前,还要给方式寄存器送一个方式值,该数决定对哪一个通道编程,采用什么模式,送入通道的计数值是一字节还是两字节,是二进制码还是BCD码。其位组合的格式如下:
当通道2用于发声时,采用的是模式3,在模式3下,输出线为“1”和为“0”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。 产生指定频率声音的程序段如下: MOV AL,0B6H
OUT 43H,AL ;43H为8253的控制字端口 MOV DX,12H MOV AX,34DCH DIV DI ;(DI)=频率
OUT 42H,AL ;42H为8253的通道2端口 MOV AL,AH MOV 42H,AL
从定时器输出的方波信号,经功率放大和滤波后驱动扬声器。送到扬声器的信号还受到了从并行接口芯片8255(端口地址为61H)来的双重控制,端口61H的最低位控制通道2的门控开断,以产生特殊的音频信号,端口61H的PB1位和定时器的输出信号同时作为与门的输入,PB0和PB1位可由程序决定为0还是为1。显然只有PB0和PB1都是1时,才能使扬声器发出声音。控制音长的时间可以简单地通过反复执行指令来得到。我们知道执行2801次LOOP指令约需要10MS的时间。因此用10MS的倍数值来控制扬声器开关的时间间隔,就可控制发声的音长短了。实现程序如下: IN AL,61H MOV AH,AL OR AL,3
OUT 61H,AL ;开扬声器
L: MOV CX,2801 DY:LOOP DY DEC BX JNZ L MOV AL,AH
OUT 61H,AL ;关扬声器 下图是利用定时器发音的电路图:
8255 PA1
Q0 8255 PA0 门控 控制喇叭 8253 计数器 与门 扬声器驱动 扬声器 定时器发音的电路图 方案比较:
在上述两个方案中,输入部分都是一样的。区别在于以不同的方式来驱动扬声器发声。经对比可知,两种方案都各有优缺点。在方案1中,其优点是电路简单,所用的器件芯片少,主要芯片只有需一片8255,产生方波是通过软件来实现的,易于修改和维护。然而它也存在一定的缺点,就是系统不断地通过软件来产生方波,系统资源被占用,无法再做其它事。与方案1相比,方案2增加了一个8253芯片和一个与门,虽然电路比方案1复杂,但通过定时器产生方波,实现起来比较简单,而且也不会出现系统资源被全部占用的情况。
经分析,选择方案2进行设计。
三、系统原理与单元设计
总体设计
1.用PC机的键盘数字键对应电子琴的8个琴键。
2.8255和8253配合构成音频发生器。8255的PA0口控制扬声器的开关,8253控制
扬声器的发声频率。
3.音频信号经LM386放大后,驱动扬声器
经过分析对比上述的两种方案可知,选取方案2是比较合理的。下面就方案2来分析一下整个系统的工作原理。前面已经提到,整个电路分成输入和发音两大部分。主要的器件有一个并行接口8255,和一个8253定时器。输入部分的硬件原理图比较简单,如下图所示的为输入电路,其主要是由8个常开型开关和一个并行接口8255组成。由图中可看到,8个开关一端接地,另一端接到8255的A口输入,并且通过一个电阻接到+5V。因此,在开关不按下时,从8255A口输入的是高电平,当开关按下时,输入的则是低电平,这样通过低电平触发,既方便也对芯片起保护作用。如下表,当不同的开关按下时,从A口输入就对应一个8位的数据。
开 关 K1 K2 K3 K4 K5 K6 K7 K8
输入数据 0FEH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 7FH
开头控制电路
通过软件检测输入的数据,然后给8253送相应频率的计数值。检测的程序如下: IN AL,60H ;从8255A口输入一个数据 CMP AL,0FEH
JZ K1 ;K1—K8分别为不同程序断的标号 CMP AL,0FDH JZ K2 CMP AL,0FBH JZ K3 CMP AL,0F7H JZ K4 CMP AL,0EFH JZ K5 CMP AL,0DFH JZ K6 CMP AL,0BFH JZ K7 CMP AL,7FH JZ K8
4、对于发音部分,PC机上的大多数输入/输出(I/O)都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的。PPI包括3个8位寄存器,两个用于输入功能,一个用于输出功能。输入寄存器分配的I/O端口号为60H和62H,输出寄存器分配的I/O端口号为61H。由PPI输出寄存器中的0、1两位来选择扬声器的驱动方式。如下图。
连接到扬声器上的是定时器2,GATE与端口61H的PB0相连,当PB0=1时,GATE2获得高电平,使定时器2可以在模式3(方波)下工作。定时器2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连。当PB1=1时,允许OUT2的输出信号到达扬声器电路。因此,只有PB0和PB1同时为“1”时,才能驱动扬声器地声。通过以下指令实现: IN AL,61H OR AL,3 OUT 61H,AL
上面的指令用以打开扬声器,如要关闭扬声器时则为: AND AL,0FCH OUT 61H,AL
当从8255中采集到输入的数据时,需要确定相应的频率,所以在软件编程时要建立一个数据表: TABLE DW 493,440,392,349,329,293,261 把相应的频率送到一个寄存器上,通过公式: 计数值=533H×896÷ f=1234DCH÷ f
算出计数值,再把算得的计数值送给8253,就可产生所要频率的方波。在把计数值送8253前,必须先把8253进行初始化: MOV AL,0B6H OUT 43H,AL
使其选用通道2,工作在方式3下。
就整个电路而言,接好电路后,通过软件编程不断地采集从8255口中输入的信号,而8个开关都接在8255的A口上,只要有开关按下,就会采集到一个数据,根据这个数据与事先编好的表对应,得到一个计数值,把这个计数值送给8253的通道2,8253的通道2工作的方式3下,这样就可以产生满足频率要求的发声方波。这个方波经驱动放大就可以使扬声器发出相应的声音。
所以8255在这里完成两个任务,它不仅从A口中采集到数据,而且B口的PB1和PB0两个位要控制发声。8253的主要任务就是产生所要求发声的不同频率的方波。
5、本设计中所采用的方案2的硬件I/O接译码连线图如下:
在设计过程中,独立编址时,用地址线的低位A2、A3、A4和控制信号AEN进行组合产生 I/O接口电路的片选信号(CS),用地址线的低位A0、A1直接连到 I/O接口芯片实现端口的选择。在此采用的是译码器译码,电路图如下所示,经过74LS138译码后, 输出作为8253的片选信号(CS),即其端口地址
40H~43H。 输出作为8255的片选信号(CS),即其端口地址为60H~63H。
四、软件思想与流程图
软件部分对整个系统来说起着重要的作用,在本电子琴系统中,软件可以分为三部分,主程序部分,发音子程序部分和延时子程序部分。 主程序的流程图如下:
8253初始化 显示提示信息 等待键盘按键放入AL Y Y 回车键? N 输入字符值转化为查表偏移量, 查表取频率,转换成计数值送2号计数器 接通扬声器,并延时一段时间 返回DOS
发声程序包括3个步骤:
(1)在8253中的42端口送一个控制字0B6H(10110110B),该控制字对定时器2进行初始化,使定时器2准备接收计数初值。
(2)在8253中的42H端口(Timer2)装入一个16位的计数值(533H×895/频率),以建立将要产生的声音频率。
(3)把输出端口61H的PB0、PB1两位置1,发出声音。
以下是发声子程序的流程图:
读取8253计数初值和音长 8253置初值 开启与门和8253GATE 延时 关闭与门和8253GATE 返回
我们知道LOOP指令执行2801次的时间为10ms,所以延时子程序则很简单,只需要反复执行LOOP指令就可实现,并且所得到的延时时间为10ms的倍数。
附图1:关键元件的封装
74LS00四与门芯片
二分频芯片74LS74
74LS138译码芯片
扬声器驱动芯片LM386
正在阅读:
微机原理与接口技术(电子琴设计报告)03-09
高中物理第八章气体阶段验收评估人教版304-30
肉牛快速育肥“两料三方四步育肥法”11-15
关于征求钨矿等矿产资源三率指标要求01-13
文件编码及管理制度10-09
托福TPO1-23阅读词汇精选05-26
《网络连着你我他-QQ》教学设计10-12
浅谈幼儿园区域活动与美术活动的整合11-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 电子琴
- 微机
- 接口
- 原理
- 报告
- 设计
- 技术
- 中国细孔硅胶行业市场前景分析预测年度报告(目录) - 图文
- 2008年江苏省高考方案解读 - 追求素质教育导向对全体学生
- 酒店安全工作总结4篇独家总结范文
- 小学数学北师大版《二年级下》《五 加与减》《买电器》精选课后
- 七年级数学上、5去括号(2)学案(无答案)(新版)苏科-最新整理
- 幼儿园大班科学《气象预报》教师资格证面试试讲教案模板教师招聘
- 2012浙江高考志愿填报注意
- 江苏大学研究生英语课程讲义整理
- 推荐八年级语文下册第二单元3细菌的启示练习北师大版
- 罗汉经贸高级英语Unit9公平应该成为经济政策的目标吗 中文版
- 精选范文--木工岗位责任制
- 2016届江苏省南通中学高三上学期10月月考英语试卷及答案
- 情境导入法在初中信息技术教学中的应用研究-文档资料
- 八年级物理上册第五章透镜及其应用综合训练(五)中考真题链接(
- 施工组织设计
- 2018-2019年初中物理北师大版《第十四章 电磁现象》《七、直流电
- 2017-2022年中国工业无水氟化氢产业深度调研与投资规模分析报告
- 水旱灾害应急预案
- 小学五年级三班文明礼仪主题班会活动方案精品
- 商品价格带分析极其重要