基于电子琴的设计(编辑修改稿)内容摘要:

实现该程序。 软硬件调试 使用 LCA51 软件,将程序输入进行编译。 通过编译通过后,则将制作的 PCB电路与 AEDK51HB 仿真机进行联机仿真。 检测功能和设计任务能不能实现。 如果不能达到预期效果,则必须重新检查硬件或修改程序。 程序固化 经过调试,实现了预期的成果和功能。 就可以开始程序固化了。 运用AEDK51HB 仿真将程序烧录到 89C51 内部 ROM 中,然后将单片机放入到电路中,再进行观察。 江苏技术师范学院毕业设计说明书 (论文 ) 15 第 3 章 系统的硬件设计 硬件模块简介 发声电路简介 发声电路是这次设计的电路中的一个重要的组成部分,它承担着把单片机所产生的声音信号放大并输出的重要作用。 而我的设计中的发声电路主要是由两个CS9013 组成。 CS9013 是一种小功率的放大管,属于 NPN 型三极管,而对三极管管脚的判断可以使用下面的方法 [5]。 一、判断三极管基极。 对于 NPN 型三极管,用黑表笔接某一个电极,红表笔分别接另外两个电极,若测量结果阻值都较小,交换表笔后测量结果阻值都较大,则可断定第一次测量中黑表笔所接电极为基极;如果测量结果阻值一大一小,相差很大,则第一次测量中黑表笔接的不是基极,应更换其他电极重测。 二、判断三极管发射极 e和集电极 c。 三极管基极确定后,通过交换表笔两次测量 e、 c 极间的电阻,如果两次测量的结果应不相等,则其 中测得电阻值较小的一次为红表笔接的是 e极,黑表笔接的是 c 极。 对于 PNP 型三极管,方法与 NPN 管类似,只是红、黑表笔的作用相反。 在测量 e、 c 极间电阻时要注意,由于三极管的 V(BR)CEO 很小,很容易将发射结击穿。 当我们对三极管的管脚判断结束后,我们就可以用两个三极管构成一个达林顿结构。 首先,当单片机 口输出一个高电平 ,由两个三极管构成的达林顿才能导通 ,导通后又能对电流有一定的放大作用 ,这样输送到喇叭的信号就能够让我们清楚地听到了。 9013 构成的达林顿如下图所示: 图 31 达林顿结构 江苏技术师范学院毕业设计说明书 (论文 ) 16 键盘电路 简介 键盘电路作为二十一音电子琴系统中最重要的输入设备,在系统中承担着把操作人员想要输入的信号输入单片机的重要作用,所以对这这部分电路的设计我也花了不少心思,为了能最合理地应用单片机的端口,我采用了 3 7 的矩阵键盘电路。 整个矩阵电路是共阳极接法,采用的扫描方式是低电平逐行逐列扫描。 根据这样的设计思路,设计的键盘电路如下图所示 图 32 键盘原理图 W78  三端集成稳压器简介 从外形上看,集成串联型稳压电路有三个脚,分别为输入端、输出端和公共端,因此称为三端稳压器。 按功能分为固定式和可调节式稳压电路;前者输出的电压不能进行调节,为固定值;后者可通过外接外接元件使输出电压得到很宽的调节范围。 三端稳压器具有体积小、重量轻、性能好、成本低、靠性高和使用方便等优点。 本设计中用的 W78  系列的三端稳压器为固定式稳压电路。 下面就对 W78 做一下介绍。 W78  系列输出正电压,有七个等级 W780 W780 W780 W781 W781 W781 W7824 W79  系列输出负电压、有七个等级 W790 W790 W790 W791 W791 W791 W7924 型号最后两位数为输出电压值, 如本次设计中采用的 W7805 其输出的电压为5V。 江苏技术师范学院毕业设计说明书 (论文 ) 17 当输出电压 UO 因某种原因 (如电网电压的波动和负载的变化)而增大时,内部比较放大电路的反相输入端电位随之生高,使得放大电路输出端电位下降,UO 势必随之减小;当输出电压因某种原因而减小时,各部分的变化与上述过程相反;因而输出电压稳定 [6]。 Protel 软件制板及硬件的制作 随着现代科学技术日新月异地发展 ,现代电子工业也取得了长足的进步 ,大规模、超大规模集成电路的使用使印制电路板的走线愈加精密和复杂。 在这种情况下,传统的手工方式设计和制作印制电路板已显得愈来愈难以适应形势了。 进入 90 年代以来,计算机技术取得了令人瞩目的成就。 Protel 99 保持了Protel Technology 公司的革新传统,比起 Protel 98,它在许多方面都有大幅度的提高。 它具有极为全面的工具、文挡以及设计项目的组织功能,使用户可比以往任何时候更轻松地驾驭电子线路设计的全过程。 Protel 软件的良好信誉以及 Protel 99 的卓越表现使之很快成为众多 EDA 用户的首选软件 [7]。 Protel 99 的特点 Protel99 主要由两大部分组成: 原理图设计系统。 他主要用于电路原理图的设计,为 印制电路板的设计打好基础。 印制电路板设计系统( PCB 99)。 它只要用于印制电路板的设计,产生最终的 PCB 文件,直接联系到印制电路板的生产。 印制电路板设计 一般而言,印制电路板设计最基本的完成过程大体可分为 3 个步骤: 一、原理图的设计。 二、产生网络表。 三、印制电路板的设计。 具体有以下几个步骤: ( 1)先打开 SCH 原理图编辑器。 ( 2)新建一个 SCH。 江苏技术师范学院毕业设计说明书 (论文 ) 18 ( 3)放置元器件。 ( 4)连线(如图 33 所示)。 连线之后,得到的就是 Protel 软件设计的原理图。 图 33 二十一音电子琴硬件原理图 ( 5)设置零件的属性(标号,值, PCB 封状)。 ( 6)制作元件封装(如图 34 所示)。 图 34 元件封装的制作 ( 7)产生网络表 江苏技术师范学院毕业设计说明书 (论文 ) 19 ( 8)打开 PCB 编辑器并定边框。 ( 9)加载网络表。 ( 10)零件布局。 ( 11)手动布线(如图 36 所示)。 图 36 二十一音电子琴 PCB 图 ( 12)电气规则检查 [8]。 .3 元器件的安装 经过多次修改后画出了附录 3 中的 PCB 图最后将设计 好的 PCB 板送到厂里做出来。 最后 购买清点元器件,进行板子的焊接,在过程中必须注意焊接的质量及工艺,避免存在漏焊,虚焊的情况,元器件的安装注意美观,引脚问题。 江苏技术师范学院毕业设计说明书 (论文 ) 20 第四章 单片机的软件设计 单片机汇编语言简介 机器指令是 CPU 能直接识别并执行的指令,它的表现形式是二进制编码。 机器指令通常由操作码和操作数两部分组成,操作码指出该指令所要完成的操作,即指令的功能,操作数指出参与运算的对象,以及运算结果所存放的位置等。 由于机器指令与 CPU 紧密相关,所以,不同种类的 CPU 所对应的机 器指令也就不同,而且它们的指令系统往往相差很大。 但对同一系列的 CPU 来说,为了满足各型号之间具有良好的兼容性,要做到:新一代 CPU 的指令系统必须包括先前同系列CPU 的指令系统。 只有这样,先前开发出来的各类程序在新一代 CPU 上才能正常运行 [9]。 由于用机器语言编写程序有以上诸多的不便,现在几乎没有程序员这样编写程序了。 虽然用机器语言编写程序有很高的要求和许多不便,但编写出来的程序执行效率高, CPU 严格按照程序员的要求去做,没有多余的额外操作。 所以,在保留“程序执行效率高”的前提下,人们就开始着手研究一种能大 大改善程序可读性的编程方法。 为了改善机器指令的可读性,选用了一些能反映机器指令功能的单词或词组来代表该机器指令,而不再关心机器指令的具体二进制编码。 与此同时,也把 CPU 内部的各种资源符号化,使用该符号名也等于引用了该具体的物理资源。 如此一来,令人难懂的二进制机器指令就可以用通俗易懂的、具有一定含义的符号指令来表示了,于是,汇编语言就有了雏型。 现在,我们称这些具有一定含义的符号为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令 (或汇编指令 )。 汇编语言是汇编指令集、伪指令集和使用它们规则的统称。 伪指令是在程序设计时所需要的一些辅助性说明指令,它不对应具体的机器指令,有关内容在以后的各章节中会有详细叙述,在此不展开介绍。 用汇编语言编写的程序称为汇编语言程序,或汇编语言源程序,也可简称为江苏技术师范学院毕业设计说明书 (论文 ) 21 源程序。 汇编语言程序要比用机器指令编写的程序容易理解和维护 [10]。 系统软件框图以及程序设计 针对需要解决的问题需要,将 CPU 所要执行的操作写在一个方框里,并以一定的次序,用带箭头的直线把这些框框连接起来,指示出 CPU 的操作过程,这种表示出 CPU 操作过程的方框图称为程序框图或程序流程图。 主程序流程图如图41 所示 图 41 主程序流程图 二十一音电子琴系统的软件部分主要是有主程序、初始化程序、按键扫描子程序、防抖动子程序、键盘服务子程序、 发声子程序、 T0 中断服务子程序、延时子程序构成。 下面就具体来介绍每一个部分的设计内容。 初始化程序 开始 初始化 是否有键按下 防抖动程序 键盘服务程序 发声程序 结束 江苏技术师范学院毕业设计说明书 (论文 ) 22 初始化程序的主要作用是定义一些变量的初值以及对中断、定时器的初始化。 只有完成了了初始化程序后,后面的程序才能正常运行。 在初始化程序中要对 R0, A 赋初值,要对 中断进行设置,也要对定时器进行设置。 根据这个思路,初始化程序如下 [11]: CLR TR0 ;关中断 MOV SP,60H ;定义堆栈 SETB ;使 口为高电平 MOV A,00H ;清零 A寄存器 SETB EA ;开中断 SETB ET0 ;允 许 T0 中断 MOV IP,2 ;令 T0 的中断优先级最高 MOV TMOD,1 ;设定 T0 工作于方式 1 MOV TH0,00H ;设定 T0 初始值 MOV TL0,00H 按键扫描以及键盘防抖程序 在初始化程序结束后,就进入了按键扫描程序,这部分程序主要就是完成对键盘电路所输入的信号进行扫描,为下一步发声程序做好准备。 扫描程序首先会给 ~ 低电平,又由于 ~ 经过按钮和电阻接的是高电平,所以如果此时读取的 ~ 0FFH不相等的话 ,就是有键按下,随后,调用键盘防抖程序。 在防抖动程序运行结束后重复一次扫描的程序,如果在~ 读入的数据与之前的数据相同 ,则确实有键按下 ,按键扫描程序结束。 根据这样的思路,写出按键扫描程序如下: SCAN: MOV R0,00H ;清零 R0 MOV P0,01FH ;让 ~ 输出 0 MOV A,P2 ;把 P2 口的输入情况传送给 A CJNE A,0FFH,SCAN1 ;让 A 与 FFH 比较 ,判断是否有键按下 NOP AJMP SCAN ;没有按键按下 ,继续扫描 SCAN1: LCALL DELAY ;调用防抖动程序 江苏技术师范学院毕业设计说明书 (论文 ) 23 MOV A,P2 ;再次测试是否真的有键按下 CJNE A,0FFH,TEST ;真的有键按下 ,调用键盘测试程序 NOP SJMP SCAN ;继续扫描键盘 DELAY: MOV R7,2 ; 防抖动程序 D1: MOV R6,10 D2: DJNZ R6,D2 DJNZ R7,D1 RET 键盘服务程序 前面的按键扫描程序已经完成了对是否有键按下的判断,但这还是不够的。 因为现在我们还不知道具体是。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。