8253论文汇编语言论文.docVIP

  • 8
  • 0
  • 约 6页
  • 2016-12-09 发布于重庆
  • 举报
8253论文汇编语言论文

8253论文汇编语言论文 摘要:本设计将汇编中最重要的三大芯片——8059(中断)、8053(定时/计数)、8055(并行接口)融合起来,同时涉及汇编中较为复杂的文件操作以及键盘接口电路,并将汇编的软硬件设计结合,为广大汇编初学者熟悉汇编编程和汇编语言的教学提供了一定的参考价值。 关键词:8253;8259a;8255;汇编语言;音乐 music player design and implementation based on assembly language wang shuai (southwest university of science and technology,school of information engineering,mianyang621010,china) abstract:this design combines the most important three chips-8059 (interrupted),8053 (timer/counter),8055 (parallel interface) together, and involves file operation and keyboard interface circuit which are very complicated,also combine the software and hardware design in assembly,thus it has a certain reference value to assembly language teaching and programming among the wide beginners. keywords:8253;8259a;8255;assembly language;music 汇编以其精简、高效和libc无关性的特点在当今程序设计语言中仍然占据重要位置,如果想学好计算机编程技能,想做一名合格的编程人员,想在计算机编程之路走的更远,学习者只有也必须从汇编语言开始,才能完整、完善的建立计算机编程知识体系!本设计的效果是:将存储于磁盘上的音乐数据通过计算机的扬声器播放出来并键盘实现对歌曲的选择以及开始播放、暂停播放、快进、快退等功能。 一、硬件设计 二、软件设计 (一)音乐数据在磁盘上如何存储 由于本程序采用dos功能调用,因此原始数据的存储格式要严格服从程序整体算法的设计:所有数据存放于文本文档中;前半部分存放延时时间信息,后半部分存放频率信息,二者以“;”号隔开;各部分内部以“,”号隔开;结尾用“.”标识。例如 “6,5,6,8,……,10,18,;262,294,330,262,……,196,262,.” 不难看出,本设计将“,”作为最小信息单位的标志,即两个“,”之间的一定是一个信息,所以千万不要漏掉“;”和“.”前面的“,”,否则程序无法辨认末尾数据! (二)装载数据到内存 本过程分为三步,即打开文件,读文件中的数据至dta(数据缓冲区)和关闭文件,分别使用dos中的3dh、3fh和3eh功能实现。打开文件后开始从头读取数据,读到“.”号时关闭文件。 (三)如何还原数据 从文件读入内存的是用ascii码表示的字符,比如“262,”读入内存将变成“32h36h32h2ch”,因此,还原数据就成了本程序最大的难点。本设计提供的思路是利用一个计数变量记录信息的位数n,若信息从高位开始的数值为a1、a2、a3……,则信息值应为a1× +a2× +a3× ……,但千万不要漏掉计算前要对数据做“减30h”的处理。 (四)声音音调的变化 该部分是本程序的核心,本程序是利用8253工作于方式3输出不同频率的方波来实现声音频率的变化的.首先要保护现场,然后读取频率和延时时长信息,接着初始化8253并设置计数初值,同时初始化8255打开扬声器和gate门,最后调用延时子程序。其中8253计数初值的计算是一个要重点解决的问题。假设8253的clk端输入时钟脉冲信号为 ,out端输出的信号频率为 ,则8253的计数初值为:n= / ,而 =1.19318mhz,故被除数应该为1234dch。注意这里可能会有可能产生溢出错误,原因是被除数与除数相差过于悬殊。 (五)如何实现对键盘的检测 为了训练汇编初学者对8259a的熟练度,本程序提供了利用8059a实现对键盘操作的检测方案。硬件连接图如图一所示。该部分程序伊始首先关中断,然后保存原09h中断向量,随即设置新09h中断向量,同时设置8059a的中断屏蔽字,允许ir1中断,接着开中断,主程其他工作处理,最后恢复原09h中断向量。而中断服务程序的流程是从60h端口读入扫描码,若有键按下则保存扫描码到keycode单元,并开始

文档评论(0)

1亿VIP精品文档

相关文档