欢迎来到天天文库
浏览记录
ID:9625920
大小:373.40 KB
页数:34页
时间:2018-05-04
《微机原理课程设计--电子琴设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程设计说明书题目姓名专业班级系(部)指导老师34目录摘要11设计任务及要求22工作原理22.18253简介32.28255简介43设计思路43.1程序功能描述43.2程序流程图53.3DOS/BIOS功能调用63.3.1INT16H(键盘I/O中断)63.3.2INT10H(屏幕及显示器中断)73.3.3INT21H(DOS系统功能调用)84方案比较及论证85程序源代码及注释86运行结果分析117调试过程记录128课程设计小结13参考文献14附录1534摘要本文通过8255和8253来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分
2、。输入部分主要是由8255和8个常开型开关来完成。发音部分由CUP通过对定时器8253的通道2进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低位控制通道2门控的开断,以产生特殊的音响。本文用到的是8253的方式3——方波发生器。在程序设计中,为了避免过于频繁的调用中断显示字符串,应用了宏定义;还通过子程序调用,有效的解决了跳转和转移过多的问题;再加上合理的DOS和BIOS功能调用,以及各种指令的综合,最终作出了漂亮的电子琴界面,并实现了电子琴演奏高、中、低音,以及播放预存乐曲的功能。关键词:电子琴8253定时器825
3、5DOS调用宏定义341设计任务及要求初始条件:用汇编语言设计一个电子琴,在屏幕上显示出来,界面要美观,功能上模拟现实电子琴功能。要求完成的主要任务:1.实现弹奏功或演奏。其中弹奏:用户每按一琴键弹奏相应音符;演奏:按下某键后自动弹奏预存琴谱功能;还可以附加变调2.界面要美观。2工作原理PC机扬声器电路以及相关接口电路如图2-1。图2-1PC机扬声器电路及相关接口电路通过8255和8253来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。输入部分:主要是由8255和8个常开型开关来完成。发音部分:CUP通过对定时器的通道2进行编程,
4、使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低位控制通道2门控的开断,以产生特殊的音响。当通道2用于发声时,采用的是方式3,在方式3下,输出线为“1”和为“034”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。从定时器输出的方波信号,经功率放大和滤波后驱动扬声器。送到扬声器的信号还受到了从并行接口芯片8255(端口地址为61H)来的双重控制,端口61H的最低位控制通道2的门控开断,以产生特殊的音频信号,端口61H的PB1位和定时器的输出信号同时作为与门的输入,PB0和PB1位可由程序决定为0还是为1。显然只有PB0
5、和PB1都是1时,才能使扬声器发出声音。控制音长的时间可以简单地通过反复执行指令来得到。2.18253简介8253芯片是常用的可编程计数器,在微机中有着极其重要的作用。常用于事件计数器,单稳态触发器,分频器,方波发生器,硬件触发的单脉冲发生器等。计数器/定时器8253包括3个独立的16位计数器通道,而每个计数器都有6种工作方式,可以按二进制或十进制(BCD码)进行计数。本文用到的是8253的方式3——方波发生器来实现了简易电子琴的设计。8253的方式控制字如图2-2所示。图2-28253的方式控制字8253的工作方式3——方波发生器:它的特点是:
6、(1)输出为周期性的方波。若计数值为N,则输出方波的周期是N个CLK脉冲的宽度。34(2)写入控制字后,输出将变为高电平,当写入计数初值后,就开始计数,输出仍为高电平;当计数到初值的一半时,输出变为低电平,直至计数到0,输出又变为高电平,重新开始计数。(3)若计数值为偶数,则输出对称方波;如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N-1)/2个CLK脉冲期间输出为低电平。(4)GATE信号能使计数过程重新开始,GATE=1允许计数,GATE=0禁止计数。停止后OUT将立即变高电平,当GATE再次变高以后,计数器将自动装
7、入计数初值,重新开始计数。2.28255简介按功能可把8255分为三个逻辑电路部分,即:口电路、总线接口电路和控制逻辑电路。8255共有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。8255A的方式控制字如图2-3所示。图2-38255A的方式控制字3设计思路343.1程序功能描述程序开始,显示电子琴界面和提示信息,对缓存区初始化。按键扫描,接着调用发音子程序把al送缓存区,发出与按键相对应频率的声音,从而实现计算机钢琴功能:键盘按键“q、w、e、r、t、y、
8、u”实现音调的高音输入;键盘按键“a、s、d、f、g、h、j”实现音调的中音输入;键盘按键“z、x、c、v、b、n、m”实现音调的低音输
此文档下载收益归作者所有