微机原理课程设计电子琴

上传人:仙*** 文档编号:32448138 上传时间:2021-10-14 格式:DOC 页数:28 大小:368.51KB
收藏 版权申诉 举报 下载
微机原理课程设计电子琴_第1页
第1页 / 共28页
微机原理课程设计电子琴_第2页
第2页 / 共28页
微机原理课程设计电子琴_第3页
第3页 / 共28页
资源描述:

《微机原理课程设计电子琴》由会员分享,可在线阅读,更多相关《微机原理课程设计电子琴(28页珍藏版)》请在装配图网上搜索。

1、Micro-computer - to achieve flower proceduresAbstractWith computer technology and microelectronic technology, the development of micro-computers rather quickly, particularly from IBM introduced the IBM-PC personal computers, micro-computer quickly transition from eight to 16 Microcomputer machine. C

2、hina is no exception, many units in the affairs management, numerical calculation, data acquisition and processing, industrial automation, and other aspects of the choice of 16 aircraft. Therefore, the majority of computer applications in the engineering and technical personnel, 16 of the growing aw

3、areness of the need.16 micro-computers more widely applied to our real life, as a junior this year, we also learned this course, and in schools under the requirements of this 16 micro-computer curriculum design. The curriculum is designed around the knowledge acquired by a small independent design p

4、rocess. I design are: to achieve flower procedures. Require the use of modules 8088,8255,8279 draw by the circuit design and realization of the functions of the procedure. Flower achieve the main function is key in 8257 with the corresponding seven scale, experimental me through the speaker sounds,

5、and through the input Qiduan digital scale. This was also extended: sound recording: record by playing pieces; release recordings: any time playback latest record tracks in the process of a repertoire can be the default, according to a key player to achieve the pieces in play pre-recorded tracks or

6、Set pieces, press any button on the keyboard 8279 can be paused, and then one from the Department to suspend the broadcast is running friendly user interface.KEY WORDS: Flower 8088 8255 8279 Digital control微型计算机-实现电子琴的程序摘 要随着计算机技术与微电子技术的发展,微型计算机的发展相当迅速,特别是从 IBM 公司推出的IBMPC 个人计算机以来,微型计算机很快的由八位微型机过渡到十六

7、位机。在我国也不例外,很多单位在事务管理,数值计算,数据采集与处理,工业自动化等方面都选用了十六位机。因此,对于广大从事微机应用的工程技术人员来说,十六位机的认识愈来愈需要了。十六位微型计算机越来越广泛的应用到我们的现实生活中,作为大三的我们今年也学习了这门课程,并且在学校的要求下进行了这次十六位微型计算机的课程设计。本次课程设计的内容是围绕所学的知识自主设计一个小程序。我的设计内容是:实现电子琴的程序。要求利用所学的8088,8255,8279 等模块画出所设计的电路图以及实现该功能的程序。实现电子琴的主要功能是用8257 键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显

8、示输入音阶。同时还对此进行了扩展:录音:记录所弹奏曲目;放录音:任意时刻重放最新记录曲目;在程序中可预设一曲目,按一键实现播放该曲目;在播放录制曲目或预设曲目时,按 8279 键盘上任意键可以暂停播放,再按一次从暂停处继续播放;程序运行时有友好的用户介面。关键词:电子琴 8255 8088 数码管电子琴设计1目 录1 电子琴的设计内容 .22 元件与仪器介绍 .32.1 8253 的介绍 .32.1.1 8253 的工作原理.32.1.2 8253 初始化编程.52.2 对 8255 的认识 .62.2.1 8255 引脚功能.62.3 8088 功能介绍 .72.4 DAC0832 .92.

9、4.1 DA 转换 dac0832 的原理与应用.93 设计原理、思路及流程图 .113.1 设计原理 .113.2 电路连接图 .113.3 设计思路 .123.3.1 简单电子琴主程序.123.4 流程图 .13致 谢.16参 考 文 献.17附录 1 源程序代码 .18附录 2 系统原理图 .261 电子琴的设计内容 随着计算机技术与微电子技术的发展,微型计算机的发展相当迅速,特别是从 IBM 公司推出的 IBMPC 个人计算机以来,微型计算机很快的由八位微型机过渡到十六位机。在我国也不例外,很多单位在事务管理,数值计算,数据采集与处理,工业自动化等方面都选用了十六位机。因此,对于广大从

10、事微机应用的工程技术人员来说,十六位机的认识愈来愈需要了。编写一实现电子琴的程序,并实现若干扩展功能。基本功能:用 8257 键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;扩展功能:录音:记录所弹奏曲目;放录音:任意时刻重放最新记录曲目;在程序中可预设一曲目,按一键实现播放该曲目;在播放录制曲目或预设曲目时,按 8279 键盘上任意键可以暂停播放,再按一次从暂停处继续播放;程序运行时有友好的用户介面。电子琴设计32 元件与仪器介绍 本设计所要用到的元器件有:计时器 8253,使用 8088 芯片的键盘控制器,并行控制器8255A,实验台。2.1 8253 的介

11、绍8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。2.1.1 8253 的工作原理 8253是可编程的计数器/定时器,其CLK0CLK2是计数器02的时钟脉冲输入端, GATE0GATE2是门控脉冲输入端, OUT0OUT2是输出端及内部结构见下图。 当用8253做外部事件计数器时,在CLK端所加的计数脉冲由外部事件产生,这些脉冲的间隔可以不相等。如果要用它做定时器,则CLK端应输入精确的时钟脉冲。这时, 8253所能实现的定时时间决定于计数脉冲的频率和计数器的初值,即定时时间=时钟脉冲周期t

12、c 预置的计数初值n8253的控制逻辑由5个控制信号WR、CS、A1和A0组成,对应的操作见表1。8253编程时,要对其控制字寄存器写入相应的控制字,控制字寄存器格式如表2所示。其中: SC1, SC0通道选择位。为00, 01, 10分别表示选择0, 1, 2通道。RL1, RL0读/写操作位。00 表示锁存数据,可随时读取计数器中的计数值; 01 表示只读/写低8位,高8位自动置为0; 10表示只读/写高8位,低8位自动置为0; 11表示读/写16位数据,先低8位,后高8位。M2,M1,M0工作方式选择位。8253 具有3 个独立的16 位减法计数器,6 种不同的工作方式。方式0 :又称计

13、数结束产生中断工作方式。当程序将工作方式控制字写入控制字寄存器时,计数器的输出端OUT 立即变为低电平。在计数初值写入该计数器后,输出仍将保持为低电平。当门控信号GATE 为高电平时,计数器对输入端CLK的输入脉冲开始作减一计数,当计数器从初值减为0 时,输出端OUT由低电平变为高电平,该输出信号可作为向CPU 发出的中断请求信号。 方式1 :又称可编程单稳态工作方式。功能是在GATE 信号的上升沿作用下,输出端OUT 产生一个负脉冲信号,负脉冲的宽度可由定时器的计数初值和时钟频率编程确定。 方式2 :又称频率发生器工作方式。当程序将工作方式控制字写入控制字寄存器时,计数器的输出端OUT立即变

14、为高电平。在写入计数初值后,计数器对输入时钟CLK计数。在计数电子琴设计5过程中OUT 保持不变,直到计数器从初值减为1 时,输出OUT 将变低,再经过一个CLK周期,OUT 恢复为高电平,并按已设定的计数初值重新开始计数。在需要产生某个脉冲信号或将某一个较高频率的脉冲信号分频为较低频率时,可使用8253 的方式2。 方式3 :又称方波发生器工作方式。方式3 的工作类似于方式2 ,不同之处是方式3 的输出OUT是方波。 方式4 :又称软件触发选通工作方式。其功能是在输出OUT 端隔一定时间产生一价目负脉冲。与方式0 不同的是,输出脉冲的宽度是固定的,但产生负脉冲所相隔时间是可编程的。 方式5

15、: 又称硬件触发选通工作方式。方式5的工作类似于方式4 ,不同之处是GATE 信号的作用不同。方式5 的计数过程由GATE 的上升沿触发,当计数结束时,OUT 将输出一个CLK周期的低电平信号。 其中方式0的工作过程如下:当程序送一控制字将所选的计数器置于所设定的方式后,该计数器的输出为低;当计数器初值装入被选中的计数器后,在外部输入的门控高电平的控制下,则可通过各自的计数脉冲进行递减计数。此时其输出仍为“低”。当计数器从初始值减到全“0”时,便产生一高电平输出,利用此输出信号向CPU发计数完中断;此中断请求一直保持到程序再次向计数器装入初值为止。BCD计数方式选择位。1 表示按十进制计数,

16、0表示按二进制计数。2.1.2 8253 初始化编程 编程时,可选择计数器1工作在方式0。在8253的方式0工作方式中,从将计数初值写入计数器到开始减1计数之间,有一个时钟脉冲的延迟。若计数初值为n = 999,那么经过n + 1个即1000个脉冲时计数值减为0,并在OUT1端输出一正跳变,这可以作为中断请求。在中断服务子程序中CPU可以做其他处理,如送下一个包装箱等。设计数初值为1999 (要求一个包装箱内装工件2000) ,按十进制计数,先送低8位,再送高8位,控制字为01110001B。初始化程序为:MOV AL, 01110001BAL, 01110001BMOV DX, 0356HO

17、UT DX,AL ;送方式控制字MOV AL, 99HMOV DX, 0352HOUT DX,AL ;向通道1送计数初值低8位MOV AL, 19HOUT DX,AL ;向通道1送计数初值高8位2.2 对 8255 的认识单片机系统里常用的 8255 芯片是一个典型的可编程通用并行接口芯片,用来扩展单片机的端口,它具有 3 个 8 位的并行口,有三种工作方式,可作为单片机与各种外部设备连接的接口电路! 下面介绍 8255 的引脚图及引脚功能。2.2.1 8255 引脚功能 123456ABCD654321DCBATitleNumberRevisionSizeBDate:16-Oct-2002S

18、heet of File:E:-.ddbDrawn By:12345678910111213141516171819204039383736353433323130292827262524232221PA3PA2PA1PA0RDCSGNDA0A1PA7PA6PA5PA4PA0PA1PA2PA3PB0PB1PB2PA5PA6PA7PA0WRRESETD0D1D2D3D4D5D6D7VccPA7PA6PB5PB4PB382558255 引脚功能说明:RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成输入方式。 PA0PA7:端口 A

19、输入输出线,一个 8 位的数据输出锁存器/缓冲器, 一个 8 位的数据输入锁存器。PB0PB7:端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器。PC0PC7:端口 C 输入输出线,一个 8 位的数据输出锁存器/缓冲器, 一个 8 位的数据输入缓冲器。端口 C 可以通过工作方式设定而分成 2 个 4 位的端口, 每个 4 位的端口包含一个4 位的锁存器,分别与端口 A 和端口 B 配合使用,可作为控制信号输出或状态信号输入端口。电子琴设计7CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许 8255 与 CPU 进行通讯。RD:读信号线,当这个

20、输入引脚为低电平时,允许 8255 通过数据总线向 CPU 发送数据或状态信息,即 CPU 从 8255 读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许 CPU 将数据或控制字写 8255。D0D7:三态双向数据总线,8255 与 CPU 数据传送的通道,当 CPU 执行输入输出指令时,通过它实现 8 位数据的读/写操作,控制字和状态信息也通过数据总线传送。2.3 8088 功能介绍 多数引脚采用复用、分时,因为 40 条引脚不够分配,只能使一部分引脚分时复用:一条引脚当两条引脚使用。 8086 管脚图见图 4.2.1(图 4.2.1 同时给出了 8088 的管脚图), 图中第

21、 2431 号管脚具有两种定义。括弧中表示的是最大模式下的管脚定义。首先我们介绍 8086 在最小模式下的管脚定义。 有一部分引脚的功能和 CPU 的工作方式有关:在最小方式和最大方式下,这些引脚可能有不同的功能。(1) 数据总线 D0D15 16 位(8088 仅 8 位),双向传输, 可分别使用其低 8 位或高 8 位,该总线与地址总线 A0A15共用 CPU 引脚形成复用总线 AD0AD15, 地址、数据分时传送。(2) 地址总线 A0A19 20 位,单向,地址由 CPU 产生,用于寻址访问存储器单元或 IO 端口。A0A15与 D0D15复用,A16A19与状态信号 S3S6复用(A

22、16/S3 A19/S6)。其中 AD15AD0地址数据复用信号(标号 216、39),双向,三态。 在总线周期的 T1状态(地址周期)AD15AD0上出现的 是低 16 位的地址信号 A15A0;在 T3状态(数据周期)AD15AD0上出 现的是数据信号D15D0。作为分时复用管脚,因为既做地址信号,又做数据信号,因此是双向信号。 在总线周期的 T1状态 AD15AD0输出 CPU 所要访问的存储器或者 I/O 端口的地址; 而在总线周期的T3状态,AD15AD0上出现的是 CPU 和存储器或 I/O 端口交换的数据。T2状态对于读周期和写周期来说 AD15AD0上的状态是不同的: 在是读周

23、期, AD15AD0要从 CPU 驱动(地址周期)切换为存储器或 I/O 端口驱动(数据周期),AD15AD0管脚需要在一个状态周期内维持高阻状态,以便不同总线驱动源的切换。如果是写周期,地址和数据信号都是由 CPU 驱动,所以 CPU 从 T2开始便输出数据。T2T3都是数据周期。A19/S6A16/S3 (Address/Status):地址状态复用信号(标号 3538),输出。 在总线周期的 T1状态(地址周期)A19/S6A16/S3上出现的是地址的高 4 位。在 T2T4状态,A19/S6A16/S3上输出状态信息。(3) 状态信号 S3S6S6:指示 8086 当前是否与总线相连。

24、S60 表示 8086 连在总线上。S5:表示中断允许标志状态。S51 表示中断允许标志 IF1(对可屏蔽中断请求起作用)。S50 表示 IF0,禁止可屏蔽中断。S4和 S3用来指出当前使用的段寄存器。 S4、S3代码组合对应的含义如表 4.2.1 所示:S4S3当前正在使用的段寄存器00ES01SS10CS 或未使用任何段寄存器11DS表 4.2.1地址和状态信号也都是由 CPU 驱动, 所以 T1地址周期之后,紧接着的 T2T4是状态周期。(4) 控制信号 与 CPU 工作模式无关的信号有:BHE#、NMI、INTR、RD#、CLK、RESET、READY#、TEST#、MN/MX#、GN

25、D电子琴设计92.4 DAC0832DAC0832 是采样频率为八位的 D/A 转换器件,下面介绍一下该器件的中文资料以及电路原理方面的知识。DAC0832 内部结构资料:芯片内有两级输入寄存器,使 DAC0832 具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路 D/A 异步输入、同步转换等)。D/A 转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过 RFB 端引用片内固有电阻,海可以外接。 该片逻辑输入满足 TTL 电压电平范围,可直接与 TTL 电路或微机电路相接,下面是芯片电路原理图2.4

26、.1 DA 转换 dac0832 的原理与应用 DAC0832 是 8 位分辨率 D/A 转换集成芯片,与处理器完全兼容,其价格低廉,接口简单,转换控制容易等优点,在单片机应用系统中得到了广泛的应用。 (1) DAC0832 的引脚及功能DI0DI7:数据输入线,TLL 电平。 ILE:数据锁存允许控制信号输入线,高电平有效。 CS:片选信号输入线,低电平有效。 WR1:为输入寄存器的写选通信号。 XFER:数据传送控制信号输入线,低电平有效。 WR2:为 DAC 寄存器写选通输入线。 Iout1:电流输出线。当输入全为 1 时 Iout1 最大。 Iout2: 电流输出线。其值与 Iout1

27、 之和为一常数。 Rfb:反馈信号输入线,芯片内部有反馈电阻. Vcc:电源输入线 (+5v+15v) Vref:基准电压输入线 (-10v+10v) AGND:模拟地,摸拟信号和基准电源的参考地. DGND:数字地,两种地线在基准电源处共地比较好. 电子琴设计113 设计原理、思路及流程图3.1 设计原理(1)对于一个特定的/转换接口电路,CPU 执行一条输出指令将数据送入/, 即可在其输出端得到一定的电压输出。给/转换器输入按正弦规律变化的数据, 在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。 各音阶标称频率值: (2)产生一个正弦波的数据可取32个(小于亦可) ,不同频率的

28、区别,可通过调节向转换器输出数据的时间间隔,例如:发频率为261。1HZ,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/320.12ms. 定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。本程序中设置默认长度为60个正弦波。3.2 电路连接图电路连接图如下:(1)8253 和 8255 连接如下 (2)8279键盘在一个扩充板上,用一根20芯扁平电缆与实验台上扩展插头J7相连。3.3 设计思路在本次课程设计中,根据复杂程序设计思想模块化程序设计,分析和确定程序总体设计目标:电子琴基本功能及部分扩展功能后,将总体目标划

29、分为若干模块。程序设计的思路按以下顺序进行:a. 分析与确定程序总体设计目标b. 将总体目标划分为若干模块c. 定义每个模块的具体任务,明确它与其他模块间的通信方式d. 编写源程序,进行调试。3.3.1 简单电子琴主程序结合实验指导书的两程序,将其分为5个子程序,实现简单的播放和显示音阶的功能。(1)录音子程序实现记录弹奏曲目并播放的功能。首先由9触发,将输入的音阶存入缓存区song中,输入的同时可以发声和显示。当再次按9时录制完成。(2)放音子程序本子程序实现放音功能。首先从8279键盘读出键码,判断,如果键码不是18即回到程序开始,如果是,即求出相应的时间常数的序号,取60次32个正弦波数

30、据,播放32个数据,组成一个正弦波。播放60次后,从PORT1中取出值到AL,和1相与,判断是否有按键,如果有就进入死循环,直到下次按键为止。(3)放歌子程序调用放音子程序。(4)暂停子程序在乐曲播放过程中,每调用一次MUSIC,就从PORT1中取出AL,检测AL个数,即每次发音后按键盘的次数。当检测到AL为1时,即按了一次任意就使程序进入一个死循环,不发音,到此实现了暂停,然后再次按动任意键时,AL就为2,不为1,所以程序跳出死循环,继续从断开处调用乐曲,继续播放。(5)源程序整体程序开始,显示提示信息,对缓存区、8279初始化。接着调用发音子程序,键盘子程序,在把AL送缓存区,实现发音和显

31、示。接着对9键、0键、f键、r键进行逐个判断,当9按下时,调用录音子程序。当按下0时,播放录制的曲目。当按下f键时,播放程序中预设的曲目。当检测到r时,退出到DOS状态。当每一个都检测不到时,退回到调用发音子程序,电子琴设计13继续发音显示。从而实现有扩展功能的电子琴。3.4 流程图以下用主程序与子程序配合流程图其进行说明。(1)主程序流程图开始显示缓存区,初始化8279 初始化调用发音子程序调用键盘子程序键盘码送缓存区是否 9 键是否 0 键是否 S 键是否 R 键录音子程序放录音子程序放歌子程序返回 DOSYNNNYYYN 陕西科技大学镐京学院毕业论文(设计说明书) 14(2)发音子程序流

32、程图(3)键盘显示子程序流程图 (4)显示子程序流程图 电子琴设计 15(5)录音子程序流程图 (6)放录音子程序流程图入口调用键盘子程序键盘码存缓存区调用发音子程序调用显示子程序把键盘码输入 song,inc al是否 9 键返回显示提示信息NY入口显示提示信息键盘码存缓存区调用显示子程序调用发音子程序al 是否 9返回YN 陕西科技大学镐京学院毕业论文(设计说明书) 16致 谢本课题在选题及研究过程中得到刘红科老师的悉心指导。刘老师多次询问课程进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。刘老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,虽历

33、时三载,却给以终生受益无穷之道。对刘老师的感激之情是无法用言语表达的。同时要感谢小组成员之间的互相帮助,俗话说的好,众人拾柴火焰高,团队精神自古以来都是我们取得成功必不可少的步骤,三年的社会实践,三年的论文报告,使我们深深的体会到了团结就是力量,团结就有成果,我们的成功建立在互帮互助的基础之上,我们的报告在不知不觉中圆满完成了,为我们小组成员之间的成果骄傲。在课程设计即将完成之际,我的心情无法平静,从开始进入课题到报告的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们! 电子琴设计 17参 考 文 献1钱晓捷、陈

34、涛 微型计算机原理及接口技术 机械工业出版社 1999.12杨素行 微型计算机系统原理及应用. 清华大学出版社1995.103钱晓捷 汇编语言程序设计 电子工业出版社 2000.94周明德 微型计算机IBM PCXT系统原理及应用 清华大学出版社 1991.7 陕西科技大学镐京学院毕业论文(设计说明书) 18附录 源程序代码DATA SEGMENTIOPORT EQU 0C400H-0280HPORT0 EQU IOPORT+2B0H ;8279 DATA PORTPORT1 EQU IOPORT+2B1H ;8279 CTRL PORTSEC1 DB 0 ;HOUR HIGHTSEC2 DB

35、 0 ;HOUP LOWMIN1 DB 0 ;MIN HIGHTMIN2 DB 0 ;MIN LOWHOUR1 DB 0 ;SEC HIGHTHOUR2 DB 0 ;SEC LOWLED DB 3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;7段管对应的显示码DB 67H,37H,73H,31H,3EH,36H,66HIO8253A EQU IOPORT+280HIO8253B EQU IOPORT+283HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+28BHIO0832A E

36、QU IOPORT+290HDATA1 DB 80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDHDB 0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96HDB 80H,66H,4EH,38H,25H,15H,09H,04HDB 00H,04H,09H,15H,25H,38H,4EH,66H ;正弦波数据TIME DB 120,106,94,89,79,70,63,59 ;发不同音时8253的计数器初值MSG DB*,0DH,0AHDBTHIS IS OUR WORK, PLEASE SUPPORT US, THANK YOU,0DH,0AHDB

37、1.PRESS 18 TO PLAY,0DH,0AH,0DH,0AHDB2.PRESS 9 TO RECORD,0DH,0AH,0DH,0AHDB3.PRESS 0 TO PLAY THE RECORD,0DH,0AH,0DH,0AHDB4.PRESS F TO PLAY THE SONG,0DH,0AH,0DH,0AHDB5.PRESS ANYKEY TO PAUSE/START WHEN PLAY THE RECORD,0DH,0AH,0DH,0AHDB6.PRESS R TO EXIT,0DH,0AH,0DH,0AHDBCOPYRIGHTMR.LI&MR.HUANG,0DH,0AHDB*

38、,0DH,0AH,$NUM DB ? ;NUM为8253计数器初值的序号SONG DB 50 DUP(?)SONG1 DB 1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1MSGPLAY DB 0DH,0AH,0DH,0AH,RECORDING.PLESS 9 TO END,0DH,0AH,0DH,0AH,$MSGEND DB RECORD FINISHED.,0DH,0AH,0DH,0AH,0DH,0AH,0DH,0AH,$ 电子琴设计 19MSGPLAY1 DB 0DH,0AH,0DH,0AH,PLAYING.PRESS ANYKEY TO PAUSE.,0DH,0AH

39、,0DH,0AH,$MSGEND1 DB PLAYING FINISHED.,0DH,0AH,0DH,0AH,$DATA ENDSSTACK1 SEGMENT PARA STACK STACKDB 50 DUP(0)STACK1 ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MSGMOV AH,9INT 21H ;显示提示信息CLIMOV AX,DATAMOV DS,AXMOV SEC1,0MOV SEC2,0MOV MIN1,0MOV MIN2,0MOV H

40、OUR1,0MOV HOUR2,0 ;显示缓存区初始化MOV AX,DATAMOV DS,AXMOV AX,CSMOV DS,AXMOV DX,PORT1MOV AL,0D3H ;11010011 清除命令特征位OUT DX,AL ;8279 CLEARMOV AL,2AH ;00101010 42分频,内部使用1MHZ/42的频率OUT DX,AL ;8279 CLOCKMOV AL,40HOUT DX,AL ;READ FIFO RAM COMMANDMOV AL,00H ;8个字符显示,左入口。编码扫描键盘,双键锁定。OUT DX,AL ;KEYBORD DISPLY MODEMOV A

41、L,80H ;写入的存储单元地址为0000OUT DX,AL ;WRITE RAM COMMANDKEY1: 陕西科技大学镐京学院毕业论文(设计说明书) 20CALL MUSIC ;发音CALL KEYBORD ;CALL KEYBORD AND DISPLYNEXT2:MOV HOUR2,ALMOV HOUR1,ALMOV MIN2,ALMOV MIN1,ALMOV SEC2,ALMOV SEC1,AL ;键盘码存入显示缓冲区LP0:CMP AL,9HJZ RECMP AL,0HJZ OUTPUTCMP AL,15JZ FUCMP AL,13H ;R COMMANDJNZ LP1MOV AX

42、,4C00H ;QUIT TO DOSINT 21HLP1: JMP KEY1RE:CALL RE0 ;录音JMP LP1OUTPUT:CALL OUTPUT0 ;放录音JMP LP1FU:CALL OUTPUT1JMP LP1MAIN ENDPRE0 PROC NEAR ;录音子程序MOV DX,OFFSET MSGPLAYMOV AH,9INT 21H ;显示录音提示信息LEA SI,SONGR:CALL KEYBORDMOV HOUR2,ALMOV HOUR1,ALMOV MIN2,ALMOV MIN1,ALMOV SEC2,ALMOV SEC1,AL ;键盘码存入显示缓冲区CALL M

43、USICCALL DISP 电子琴设计 21MOV SI,AHCMP AH,9JZ QRE0INC SIJMP RQRE0:MOV DX,OFFSET MSGENDMOV AH,9INT 21H ;显示录音提示信息RETRE0 ENDPOUTPUT0 PROC NEAR ;放录音子程序MOV DX,OFFSET MSGPLAY1MOV AH,9INT 21H ;显示PLAY提示信息LEA SI,SONGOU:MOV AL,SICMP AL,9JZ QRE1MOV HOUR2,ALMOV HOUR1,ALMOV MIN2,ALMOV MIN1,ALMOV SEC2,ALMOV SEC1,AL ;

44、键盘码存入显示缓冲区CALL DISPMOV AL,AHCALL MUSICNEXT:INC SIJMP OUQRE1:MOV DX,OFFSET MSGEND1MOV AH,9INT 21H ;显示PLAYEND提示信息RETOUTPUT0 ENDPOUTPUT1 PROC NEAR ;放歌子程序MOV DX,OFFSET MSGPLAY1MOV AH,9 陕西科技大学镐京学院毕业论文(设计说明书) 22INT 21H ;显示PLAY提示信息LEA SI,SONG1OU1:MOV AL,SICMP AL,-1JZ QRE2MOV HOUR2,ALMOV HOUR1,ALMOV MIN2,AL

45、MOV MIN1,ALMOV SEC2,ALMOV SEC1,AL ;键盘码存入显示缓冲区CALL DISPMOV AL,AHCALL MUSICNEXT1:INC SIJMP OU1QRE2:MOV DX,OFFSET MSGEND1MOV AH,9INT 21H ;显示PLAYEND提示信息RETOUTPUT1 ENDPKEYBORD PROC NEAR ;键盘子程序MOV DX,PORT1MOV AL,0D1HOUT DX,AL ;CLEAR DISPLAYWREP:CALL DISPMOV DX,PORT1IN AL,DX ;读状态AND AL,07H ;判断是否有按键JZ WREPK

46、EYN: ;下一次的按键MOV DX,PORT0IN AL,DX ;读数据MOV BL,ALAND AL,07HAND BL,38HMOV CL,03SHR BL,CLCMP BL,00H 电子琴设计 23JNZ LINE1ADD AL,08HJMP QUIT1LINE1:CMP BL,01HJNZ LINE2JMP QUIT1LINE2:ADD AL,10HQUIT1:RETKEYBORD ENDPDISP PROC NEAR ;显示子程序PUSH SIPUSH CXPUSH DXMOV AX,DATAMOV DS,AXMOV DX,PORT1MOV AL,90HOUT DX,AL ;写地址

47、为0000的显示缓存区命令,每次写入后地址自动加1指向下一次写入地址MOV SI,OFFSET SEC1MOV CX,0001MOV BX,OFFSET LEDDISP1:CLDLODSBMOV AH,ALXLAT ;键盘码转显示码MOV DX,PORT0OUT DX,AL ;显示LOOP DISP1POP DXPOP CXPOP SIQ:RETDISP ENDPMUSIC PROC NEAR ;发音子程序PUSH SICMP AL,1JL QUIT 陕西科技大学镐京学院毕业论文(设计说明书) 24CMP AL,8JG QUIT ;若不在1-8之间转QUIT,不发音MOV NUM,AL ;求出

48、相应的时间常数的序号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是否完,没有,则继续 D: MOV DX,PORT1 ;扫描实现任意键暂停 IN AL,DX ;读状态 AND AL,01H ;判断是否有按键 JNZ FFF; ;按键延时 JMP QUITFFF: MOV CX,60 JMP DQUIT:POP SI

49、RETMUSIC ENDPDELAY 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,IO8255A 电子琴设计 25IN AL,DX ;从8255A口读一字节TEST AL,01 ;判PA0口是否为1JZ KKK ;若不为1,则转KKKRE

50、T ;子程序返回DELAY ENDPCODE ENDSEND START 陕西科技大学镐京学院毕业论文(设计说明书) 26附录 系统原理图123456ABCD654321DCBATitleNumberRevisionSizeBDate:26-Jun-2008Sheet of File:D:Design Explorer 99 SEExampleszj.ddb Drawn By:D08OUT010D17GATE011D26CLK09D35D44D53D62OUT113D71GATE114CLK115CS21RD22WR23OUT217A019GATE216A120CLK218U?8253AD01

51、6A88AD115A97AD214A106AD313A115AD412A124AD511A133AD610A142AD79A1539A16/S338NMI17A17/S437INTR18A18/S536A19/S635RD32S0/DEN26WR/LOC29S1DT/R27HOLD31S2IO/M28HLDA30ALEQS025MN/MX33INAQS124SSO34TEST23CLK19READ Y22RESET21U?8088D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET35CS6U?8255Vcc20Iout111lsbDI07Iout212DI16DI25Rfb9DI34DI416Vref8DI515DI614msbDI713ILE19WR218CS1WR12Xfer17U?DAC0832+5V1M HZ0123456891MHZ-5V+5V

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!