计算机接口技术课程设计-简易电子琴设计.doc_第1页
计算机接口技术课程设计-简易电子琴设计.doc_第2页
计算机接口技术课程设计-简易电子琴设计.doc_第3页
计算机接口技术课程设计-简易电子琴设计.doc_第4页
计算机接口技术课程设计-简易电子琴设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机接口技术课程设计报告计算机接口技术课程设计简易电子琴设计作 者 姓 名: 专业 班级: 机电一体化 学 号: 8 指 导 教 师: 开 始 日 期: 年 月 日 完 成 日 期: 年 月 日 答 辩 日 期: 年 月 日 威海海洋职业学院Weihai Ocean Vocational College计算机接口技术设计报告独创性声明作者郑重声明:所呈交的设计(论文),是本人在指导教师指导下或自己独立完成,尽我所知,除文中已经注明引用内容和致谢的地方外,本设计(论文)不包含其他个人或集体已经发表的成果,也不包含其他已申请或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献均已在设计(论文)中做了明确的说明并表示了谢意。若有不实之处,本人愿意承担相关法律责任。设计报告题目:作者签名: 日期: 年 月 日摘 要 定时器/ 计数器8253 可以产生不同频率的信号, 经过三极管放大驱动扬声器发出不同的音阶。硬件上以8086 作为核心处理单元, 将8253 的输出端连接音频模块。软件上检测按键是否有键按下, 判断按键并驱动对应发音子程序。通用MIDI音源模块制作制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。手机中通用的音乐芯片构成音源模块,效果不错,价格更低廉,如韩国产的QS6400 等,这些芯片的驱动要复杂一些,需要对芯片进行初始化设置。此外还有音乐盒、附有生日歌的生日卡片等等。所以利用微机制作的简易电子琴在我们的日常生活中随处可见。关键词:Altium Designer;ISIS 7 Professional;8086;8255;8253定时器;目 录摘 要3绪 论5第一章 方案设计61.1方案一61.2 方案二6第二章 硬件电路设计72.1控制器808672.2输入按键的设计72.3 8255应用设计82.3发声模块的设计92.4 8253应用设计10第三章 软件设计133.1 主程序的设计133.2 子程序的设计13第四章 仿真与调试结果17第五章 总结20参考文献21致 谢22附录1 整体电路图23附录2 程序流程图及代码24 绪 论随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要作用。多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。本次课程设计是基于微机原理与接口技术的简单应用。微机技术目前运用最广泛的就是单片机。单片机是随着大规模集成电路的出现极其发展,将计算机的CPU、RAM、ROM定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机。它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果。单片机控制通用MIDI音源模块制作制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。手机中通用的音乐芯片构成音源模块,效果不错,价格更低廉,如韩国产的QS6400 等,这些芯片的驱动要复杂一些,需要对芯片进行初始化设置。此外还有音乐盒、附有生日歌的生日卡片等等。所以利用微机制作的简易电子琴在我们的日常生活中随处可见。微机原理简易电子琴设计主要是通过对电子琴主体部分的电路进行模仿设计,达到电子琴固有的基本功能,故叫简易电子琴。利用定时器可发出不同频率的方波,不同频率的方波经喇叭就会发出不同音调。其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的方波,本设计中按键一次,会发出方波,松开后随之延时,但在延时的期间继续检测按键,若此时又有键被按下,若被按下的仍为原键则声音不变,否则键盘会译出被按下的另一个键的音调。本次课程设计的目的是通过D/A转换器产生摸拟信号,使PC机作为简易电子琴。其主要任务有以下几点:基于8086系统;使用计算机的数字键1、2、3、4、5、6、7、8作为电子琴的按键,按下即可发出相应的音阶;音阶通过扬声器发出声音。本次设计通过8255和8253来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。输入部分:主要是由8255和8个常开型开关来完成。发音部分:CUP通过对定时器8253的通道2进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低位控制通道2门控的开断,以产生特殊的音响。本文用到的是8253的方式3方波发生器。第1章 方案设计1.1方案一首先利用了编程程序,编辑8255芯片控制字,对其进行初始化,使其工作在方式0,即基本输入输出状态,将8255的A端口设置为输出,C端口进行,经CPU运算后,输出到8254芯片的A端口中,由此实现对其的初始化。将8254芯片设置为工作在方式3,即输出对称方波状态。A端口为输入,“OUT”指令可将输出对应一定频率的方波送到扬声器中,由此实现发声4。本实验频率大小控制发出声音的高低,通过对延时程序的调用控制发出声音的长短。并通过所编程序实现对键盘的重复扫描,从而可以弹奏多个音符的试验目的。1.2 方案二8253的CLK0接1MHz时钟,GATE0接+5V,OUT0接8255的PA0,K8跳线连接喇叭,使用汇编语言设计一个运行于计算机的电子琴程序,程序应实现弹奏功能。其中弹奏:用户每按一琴键弹奏相应音符;软件预想功能为:按数字18为弹奏功能,按下即发出相应的音阶。按键发音,当从键盘上敲击18时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的音节。对比方案一,其实两个方案差不多,但是我对于8254不熟悉,所以最终决定此方案为我选择的最佳方案,并附上本次设计的设计框图如图1-1所示:系统总线8255芯片8253芯片扬声器发声键盘8255芯片8253芯片扬声器发声图1-1 设计框图第二章 硬件电路设计2.1控制器80868086拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth) 的队列(queue)位指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息2.2输入按键的设计 控制部分主要是由8255和8个常开型开关来完成。常开型开关如右图。8个常开型开关K1K8与8255的A口PA0PA7相接,不触动开关时,为高电平输入,当按下开关时,就接地,为低电平输入。例如当K1键按下时,从8255中A口输入的数为11111110B,十六进制为0FEH。每一个开关按下时,都对应一个ASCII码,由于PC计算机的时钟晶振为1.1931816MHz,根据频率的公式:图2-1常开型开关f=1/T 则频率周期为T=1/f 定时器的计数器为16位计数器,则最大的计数值为65536,那么其定时时间为:t=65536*T=65536/f=0.0549254(秒) 即:PC定时器每秒可中断18.2065次。表2-1开 关K1K2K3K4K5K6K7K8对应数据0FEH0FDH0FBH0F7H0EFH0DFH0BFH7FH对应频率静音493 Hz440 Hz392 Hz349 Hz329 Hz293 Hz261 Hz图22控制按键硬件图2.3 8255应用设计8255的内部结构8255A是为Intel公司的微处理器配套的通用可编程并行接口芯片,其基本功能如下:(1)8255A接口芯片有3个8位并行输入/输出端口,可利用编程方法设置3个端口是作为输入端口还是作为输出端口;(2)8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。如无条件传送,查询方式传送,中断方式传送 。与此相应,8255A设置了方式0、方式1以及方式2。8255A的C口比较特殊,除作数据口外,在工作方式1和2下,它的部分信号线被分配作专用的联络应答信号。8255A的内部结构机外部引脚,它包括四个部分:数据总线缓冲器,读写控制逻辑,A组和B组控制电路。 1. 数据总线缓冲器 2. 读写控制逻辑 3. A组和B组控制A和端口C的高4位(PC7PC4)构成A组,由A组控制部件来对它进行控制;端口B和端口C的低4位(PC3PC0)构成B组,由B组控制部件对它进行控制。 8255的外部引脚 1. 与CPU相连的引脚 D7D0:数据线,双向、三态。 :读信号,输入、低电平有效。 :写信号,输入、低电平有效信号。 :片选信号,输入、低电平有效。 2. 8255A的数据线、 片选信号线、 地址线 、读写控制线等分别与系统总线相连,其中A、 B、 C三个端口一排针形式引出。表2-2 8255A端口地址表信号线 寄存口 编址 IY03 A口60H B口 61H C口 62H控制寄存器 63H 8255的控制方式8255A的工作方式控制字格式和各位的含义。A组有三种工作方式,而B只有两种工作方式。 方式0基本的输入/输出方式 方式1选通式输入/输出 方式2双向选通输入/输出方式图2-3 8255硬件图2.3发声模块的设计要使扬声器发出不同的音阶, 就得输入不同频率的信号。通过给定时/ 计数器 8253 送入不同的初值, 可以从输出端得到不同频率的波形,在74LS08的作用下 经过放大器三极管8550的放大作用, 便可驱动扬声器发出不同的音阶。音阶声音的持续时间可以通过软件延时程序实现。17 某一按键被系统检测到, 系统驱动PC对应子程序使扬声器输出对应的音阶。CPU 通过对定时器的通道(2) 进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低位控制通道(2)门控的开断,以产生特殊的音响。 当通道2用于发声时,采用的是方式(3),在方式3下,输出线为“1”和为“0”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。从定时器输出的方波信号,经功率放大和滤波后驱动扬声器。送到扬声器的信号还受到了从并行接口芯片8255(端口地址为61H)来的双重控制,端口61H的最低位控制通道2的门控开断,以产生特殊的音频信号端口61H的PB1位和定时器的输出信号同时作为与门的输入,PB0和PB1位可由程序决定为0还是为1。显然只有PB0和PB1都是1时,才能使扬声器发出声音。控制音长的时间可以简单地通过反复执行指令来得到。 图2-4 扬声器硬件图2.4 8253应用设计8253内部设计8253内设三个计数器都独立工作,用-65536之间的一个数去输入频率,可以实现每个计数器的独立编程。每个计数器占有一个独立的端口地址。可以通过A0、A1、和CS来寻址这些端口如下图2-5所示:图2-5寻址端口 8253的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的倍数值来控制扬声器开关的时间间隔,就可控制发声的音长了。图2-6 8253硬件图打开X86 PC扬声器,GATE2必须设置为高电平,以便计数器2提供CLK信号。该端口61H的PB0来完成,由下图还可以看到计数器2的OUT2和端口61H的PB1进行与操作,然后输入到PNP三极管8550进行放大作用再到扬声器中进行播放。为此,为了将OUT2传送到扬声器,端口61H的PB1也必须为高电平。IN AL, 61H ;获得端口B的当前设置MOV AH, AL ;保存OR AL, 00000011B ;使PB0=1,PB1=1MON AL, AH ;获得端口B的初始设置OUT 61H, AL ;关闭扬声器第三章 软件设计3.1 主程序的设计电子琴主程序流程图如图3-1所示:求出音阶值保存赋相应频率值延时时键盘读入一个字符是ESC键吗?是数字18键吗?返回DOS开始始YNNY图3-1电子琴主程序流程图3.2 子程序的设计(1)发音子程序本子程序实现放音功能。首先从键盘读出一个字符,判断,如果是ESC键,返回DOS,如果不是,判断,如果键码不是18,即仍然处于音阶输入准备状态,如果是,即求出音阶值保存,取60次32个正弦波数据,播放32个数据,组成一个正弦波。播放60次后,然后判断是否有按键,如果有就进入死循环,直到下次按键为止。在弹奏时都需调用发音子程序,发音子程序的作用是控制扬声器的发音,其流程图如图3-2所示:8253初始化开扬声器延时关扬声器返回图3-2 发音子程序流程图发音部分功能实现由更件的连接形式可知,扬声器的开断是由8255的PB0和PB1以及8253通道2同时控制的,PB0和PB1同时为高电平时,扬声器开,有一个为低电平时,扬声器关断,又知8255 B口地址为61H,8253通道2地址为42H,控制口地址为43H。具体程序编写5如下: 8253初始化程序段: mov al,10110110b ;选择8253的通道2,并设置为工作方式3out 43h,al mov ax,bxout 42h,al ;将计数初值的低8位写入计数通道mov al,ahout 42h,al ;将计数初值的高8位写入计数通道开扬声器程序段:in al,61h ;读入B口数据or al,03h ;将PB0 和PB1置1out 61h,al ;将设置好的数据送回B口关扬声器程序段:in al,61h ;读入B口数据 and al,0fch ;将PB0 和PB1置0out 61h,a ;将设置好的数据送回B口(2)弹奏子程序当按键为1-8时,调用演奏子程序。演奏子程序的流程图如下图3-3所示:查表得相应频率计算计数初值返回调用发音子程序图3-2 演奏子程序的流程图弹奏功能的实现 当按键为数字1-8时,选择弹奏功能,通过对按键的判断,求得其偏移地址,然后通过查表得其相应频率值,再由上述计算计数初值的方法求得计数初值,然后将计数初值送人8253的通道2,最后调用发音子程序即实现弹奏功能。具体程序段如下: sub al,31h ;求偏移量 shl al,1 mov bl,al ;保存偏移量 mov bh,0 mov ax,num1 ;计算计数初值 mov dx,num2 div word ptrtab+bx mov bx,ax ;保存计数初值(3)延时子程序当弹奏完音乐之后,音乐延时播放。延时子程序的流程图如下图3-3所示:取出音阶值求出8253定时时间常数(计数器初值)8253初始化为方式0设置8253A口输入PA0为1吗?吗?子程序返回 Y N图3-3 延时子程序的流程图延时功能的实现当弹奏完音乐之后,调用延时子程序,音乐延时播放。具体程序段6如下:delay proc near ;延时子程序ccc:mov bx,offset timemov dx,io8253b ;置8253通道0为方式0工作mov al,10hout dx,almov dx,io8255b ;设8255A口输入mov al,9bhout dx,almov al,num ;取相应的时间常数xlatmov dx,io8253aout dx,al ;向8253通道0输出kkk:mov dx,io8255ain al,dx ;从8255A口读一字节test al,01 ;判PA0口是否为1jz kkk ;若不为1,则转KKKret ;子程序返回delay endp第四章 仿真与调试结果1.把弹奏功能的程序代码输入计算机代码:data segmentioportequ 0d400h-0280hio8253aequ ioport+280hio8253bequ ioport+283hio8255aequ ioport+288hio8255bequ ioport+28bhio0832aequ ioport+290hdata1 db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h db 80h,66h,4eh,38h,25h,15h,09h,04h db 00h,04h,09h,15h,25h,38h,4eh,66h;正弦波数据time db 120,106,94,89,79,70,63,59;发不同音时8253的计数器初值msg db Press 1,2,3,4,5,6,7,8,ESC:,0dh,0ah,$num db ?;num为8253计数器初值的序号data endscode segment assume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset msgmov ah,9int 21h ;显示提示信息sss:mov ah,7int 21h ;从键盘接收字符,不回显cmp al,1bhje exit ;若为ESC键,则转EXITcmp al,31hjl ssscmp al,38hjg sss ;若不在1-8之间转ssssub al,31hmov num,al ;求出相应的时间常数的序号mov cx,60 ;取60次32个正弦波数据ddd:mov si,0lll:mov al,data1si ;取正弦波数据mov dx,io0832aout dx,al ;放音call delay ;调延时子程序inc sicmp si,32 ;是否取完32个数据jl lll ;若没有,则继续loop ddd ;总循环次数60是否完,没有,则继续jmp sssexit:mov ah,4chint 21hdelay proc near ;延时子程序ccc:mov bx,offset timemov dx,io8253b ;置8253通道0为方式0工作mov al,10hout dx,almov dx,io8255b ;设8255A口输入mov al,9bhout dx,almov al,num ;取相应的时间常数xlatmov dx,io8253aout dx,al ;向8253通道0输出kkk:mov dx,io8255ain al,dx ;从8255A口读一字节test al,01 ;判PA0口是否为1jz kkk ;若不为1,则转KKKret ;子程序返回delay endpcode endsend start2.与硬件相结合进行修改调试,运行程序后,显示如下界面,等待输入字符,如图4-1所示图4-1 运行界面从键盘上敲击18时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的音节,则调试成功。第五章 总结整个电路采用模块化来进行设计,分为控制模块和发声模块。主要的器件有一个并行接口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”时,才能驱动扬声器鸣叫。在此次项目设计中,制做项目的步骤。第一部是硬件设计主要是实现控制对象与被控制对象之间的联系。第二步就是软件设计,就是要完成各个可编程芯片与CPU之间的数据传送和各个进程的逻辑顺序。在本次设计中对硬件要求就要熟练掌握可编程器件8255A和8253的应用。对软件设计就要熟练掌握汇编语言。参考文献1邵淑华,高巍巍.C语言程序设计教程与实训(教程).中国时代经济出版社.2012年1月第一版.2雷印胜.微机原理及接口技术(第四版).大连理工大学出版社.2014年12月第四版3徐江维; 李菲.简易电子琴设计.电子世界 .2017-05-08 4任肖丽; 王骥.基于8086的电子琴设计 .电子元器件应用.2010-07-15 5 戴志强. 微机原理与接口技术教学改革探讨J. 中国科技信息. 2009(24) 6杨素行.微型计算机系统原理及应用M.北京.清华大学出版社,20047龚尚福.微机原理与接口技术M.西安电子科技大学出版社,2003.88李芷.微机原理与接口技术M.电子工业出版社,2002 9宋杰等.微机原理与接口技术课程设计M.机械工业出版社,200510小捷. 汇编语言程序设计(第二版)M.西安电子科技大学出版社,2003 11钱晓捷.汇编语言程序设计(第二版)M.电子工业出版社,200312杨立,邓振杰等.微型计算机原理与接口技术(第二版)M.中国铁道出版社,2006 致 谢在论文完成之际,我要特别感谢我的指导老师胡彩霞老师的热情关怀和悉心指导。在我撰写论文的过程中,胡彩霞老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了胡彩霞老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。 在论文的写作过程中,也得到了许多同学的宝贵建议,同时还到许多在工作过程中许多同事的支持和帮助,在此一并致以诚挚的谢意。 感谢所有关心、支持、帮助过我的良师益友。附录1 整体电路图附录2 程序流程图及代码DATA SEGMENT TABLE DW 493 ;K2发si的音493Hz DW 440 ;K3发la的音440Hz DW 392 ;K4发sol的音392Hz DW 349 ;K5发fa的音349Hz DW 329 ;K6发mi的音329Hz DW 293 ;K7发re的音293Hz DW 261 ;K8发do的音261HzDATA ENDS;定义堆栈段STACK SEGMENT PARA STACK STACK TOP EQU LENGTH STASTACK ENDSCODE SEGM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论