微机原理与汇编语言课设

上传人:大米 文档编号:512899193 上传时间:2023-01-03 格式:DOCX 页数:20 大小:122.24KB
返回 下载 相关 举报
微机原理与汇编语言课设_第1页
第1页 / 共20页
微机原理与汇编语言课设_第2页
第2页 / 共20页
微机原理与汇编语言课设_第3页
第3页 / 共20页
微机原理与汇编语言课设_第4页
第4页 / 共20页
微机原理与汇编语言课设_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《微机原理与汇编语言课设》由会员分享,可在线阅读,更多相关《微机原理与汇编语言课设(20页珍藏版)》请在金锄头文库上搜索。

1、微机原理与汇编语言课程设计电子琴学院:计算机科学技术专业:计算机科学与技术(工)班级:计13-1班姓 名:肖林英学号:25指导教师:2016年 6月 10日微机原理与汇编语言课程设计任务书一、题目:电子琴二、设计的目的1. 掌握利用PC机扬声器发出不同频率声音的方法;2. 学习利用系统功能调用从键盘上读取字符的方法;3. 掌握定时器/计数器8253的工作原理;三、设计要求编写程序,程序运行时使PC机成为一架可演奏的“钢琴”。当按下数字键1-8时,依次发出1, 2,3,4,5,6,7,七个高音和低音,Esc则退出演奏状态。独立完成课程设计。四、设计内容及步骤1. PC机扬声器电路电路图如图1所示

2、:计数值控制字图1 PC机扬声器控制电路通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。当与门打开后,经过放 大器的放大作用,便可驱动扬声器发出不同频率的音调。为使该音调的声音持续一段时间,要插入 一段延时程序,之后再将扬声器关闭(关闭与门)。2建立音频表要使计算机成为可弹奏的简易电子琴,需要使用系统调用的01H功能以接收键入字符,并且要 建立一张音频表。键入字符123456了8H-符12345C7i频率值52158866069 S7848 S09SB101S五、课程设计工作量每人的程序量应在100行有效程序行以上,不得抄袭,否则给不及格成绩。六、课程设计工作计划2016年6

3、月6日2016年6月6日2016年6月10日2016年6月10日下午指导教师讲课,学生准备文献资料; 每人完成自己程序并能独立演示; 验收,学生撰写课程设计报告。指导教师签字:专业主任签章:微机原理与汇编语言课程设计指导教师评语与成绩目录一、概述 11.课题描述 12.程序设计目的 1二、需求分析 1三、总体设计 21.电子琴程序 22.单音调子程序 SOUND 3四、详细设计 31.扬声器 32.界面设计 4五、调试与运行结果说明 51.主界面 52.退出界面 6六、课程设计总结 6七、结束语 7八、程序清单 7参考文献 14一、概述1.课题描述随着社会发展,计算机硬件技术越来越多的应用到生

4、活中的各个领域,人们对软硬件技术结合 开发出来的产品的要求越来越迫切,需求日益增加,如今用软硬件结合设计电子产品已经成为了一 大时尚。本设计编写的一个用PC机模拟电子琴的程序,利用PC机中的8253和键盘的按键模拟电子 琴8个音节的发声。编程使计算机的数字键1、2、3、4、5、6、7、8作为电子琴按键,按下即发出 相应的音阶。在本次课程设计中,考察了我们编程的技巧、运用Debug动态调试工具进行程序的调试的能力。 同时,本道设计题目还检查了我们对汇编语言这门课程的基本知识的掌握程度。只有掌握汇编语言 基本编程方法,掌握程序各部分功能及其相互联系、相互作用,并要熟悉基本的音乐知识,才能独 立的把

5、程序写出来,才能把程序写好。开发工具:汇编语言 MASM FOR WINDOWS2.程序设计目的课程设计是培养学生运用有关课程的基础理论和技能解决实际问题,进一步提高学生本专业必 要的基本技能、方法和创新能力的重要环节之一。通过课程设计使学生受到设计方法的初步训练, 能用文字、图形和现代设计方法简要、系统、正确地表达设计成果。微机原理与汇编语言课程设计 主要是训练学生综合运用学过的微机原理的软件和硬件知 识,独立完成一个实际的微机应用设计系统,并在实验室实现。此次课设是对个人的程序设计方法 和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,为学习后继的基础 课和专业课打下坚

6、实的基础。课设所用的是汇编语言,它是一种机器语言,是计算机能提供的最快 最有效的语言,也是能够利用计算机所有硬件性能并能直接控制硬件的语言。实验不仅培养了实际动手能力,也进一步学习了汇编语言的结构和使用方法,提高了汇编语言 的水平。二、需求分析本实验是利用微机原理试验箱、8255芯片、8253芯片、键盘、扬声器等硬件设备,设计简易电 子琴。首先利用了编程程序,编辑了8255芯片控制字,对其进行初始化,使其工作在方式0,即基本 输入输出状态,将8255的A端口设置为输出,C端口进行,经CPU运算后,输出到8253芯片的A端 口中,由此实现对其的初始化。将8253芯片设置为工作在方式3,即输出对称

7、方波状态。A端口为输入,“OUT”指令可将输出 对应一定频率的方波送到扬声器中,由此实现发声。本实验通过频率大小控制发出声音的高低,通 过对延时程序的调用控制发出声音的长短。并通过所编程序实现对键盘的重复扫描,重而可以弹奏 多个音符的试验目的。三、总体设计1.电子琴程序由于是用键盘的数字键 1-8,要先读取键盘的输入,判断输入是否在1-8 之间,不在 就退到主菜单,若是就根据键值查表找出相应的频率,计算初值,调用发音子程序即可, 此时的音长固定。初值的计算方法是用输入的 clk 频率除以音符的频率。程序流程图如图 1 所示。YNYNAL大于8AL小于1显示提示信息 等待键盘按键放入AL查表FR

8、EQ得频率调用8253初始化程序计算初值,置音长返回主菜单AL30AL图 1.1 电子琴程序流程图2.单音调子程序 SOUND单音调子程序的调用前需要进行以下几个方面工作:(1)确定相应的音调所对应的频率,查表可以得到,再由频率得到对应的8253计数初值。(2)确定音长,即一个音符所持续的时间。在单音调子程序中实现发出一个音符的声音,持续所 需的时间,流程图如图2所示:图 2.1 单音调子程序流程图1.扬声器在PC/XT机中,扬声器接口电路由8255A-5、8253-5、驱动器和低通滤波器等构成,其中8253-5 是音频信号源,8255A-5作控制器,驱动器用来增大8253-5输出的TTL电平

9、信号的驱动能力,低通 滤波器将脉冲信号转换成接近滤波的音频信号,去驱动扬声器发声。8253-5的计数器2的CLK2端所加的时钟脉冲频率为1.19318MHZ。可根据这个频率和所要产生 的声音频率,计算出定时常数,经编程让计数器2输出指定频率的波形。8255A-5的PBO接8253-5的GATE2,作为计数器的门控信号,允许或禁止8253-5计数。8255A-5的PB1接与门U87的一个输 入端,用来对计数器2的0UT2端输出的波形作进一步的控制,当PB1=1时,8253-5从0UT2输出的 波形才能通过与门U87送到驱动器75477的A端,送到扬声器插座使之发声。当PB1=0时,OUT2输 出

10、的波形不能通过与门,扬声器不会发声。当PB1PB0=11时扬声器能连续发声。2.界面设计主界面为一架电子琴,并采用漂亮的字体作为提示语。利用int 10h实现,利用宏定义画线和矩 形。DRAWSQRE MACRO START_X,START_Y,END_X,END_Y,COLORLOCAL ROW_UP,ROW_DOWN,RANK_LEFT,RANK_RIGHTPUSH AXPUSH BXPUSH CXPUSH DXPUSH SIMOV AH,0CHMOV AL,COLORMOV BH,0MOV CX,START_XMOV DX,START_YROW_UP:;画上边INT 10HINC CXC

11、MP CX,END_XJNE ROW_UPRANK_RIGHT:;画右边INT 10HINC DXCMP DX,END_YJNE RANK_RIGHTMOV CX, START_X;下边起始点MOV SI,END_XINC SIROW_DOWN:;画下边INT 10HINC CXCMP CX,SI;右边起始点JNE ROW_DOWNMOV DX,START_Y;画右边MOV CX,START_XRANK_LEFT:INT 10HINC DXCMP DX, END_YJNE RANK_LEFTPOP SIPOP DXPOP CXPOP BXPOP AXENDM五、调试与运行结果说明1主界面OS

12、E:匸 |::DOSBom 0.74r Cpu speed: 3000 cycles. Frameskip 0r Program: TEMPFILE| = i 事 I图5.1主界面2退出界面豳 DOS Bex D.74r Cpu speed: 3000 cycles, Frameskip 0f Program: DVTEMP二 LHJ |0Pre弓弓 am. km. to continum图5.2退出界面六、课程设计总结本次课程设计由我、邓云杰、刘萌萌三个同学协作共同完成。通过这次的课程设计,让我对微 机原理与汇编语言这门课有了更深的认识,系统的掌握了微机原理与汇编语言的应用知识。这次课程设计

13、我们做的是用PC机模拟电子琴发声,通过老师的提示及相关实验指导书的资料 我们找到了入手点,在已有基础题目的基础上加入创新内容。在基础功能的实现上并没有遇到问题, 主要也是有参考内容的指导,同时通过参考内容更好的把握了设计的整体思路及各个模块的细节。 但是在拓展功能上就有不少的问题。对于在程序设计中出现的一些问题,我们通过翻阅相关资料和 请教老师,最终都得到了解决。虽然此次课程设计的过程是艰辛的,但结果还是令我们比较欣慰的。提高了自己的分析解决问 题的能力,并且使自己所学的知识与实践相结合,应用到实践当中。遇到问题时,应该对自己有信 心,但也要知道自己的不足,认真去查阅资料和学习不懂的知识。另外

14、在本次课程设计中,培养了 同学之间协作精神,有问题时一起讨论共同解决问题,提高了自己的合作能力。七、结束语汇编语言作为一种低级程序设计语言,既然是低级所以应该是最底层的,与我们计算机内部的 结构联系应该联系很密切,而且在我们学习中也深刻的了解到了这一点。比如说后来学到的寄存器、 中断、 还要各种寻址方式以及进栈出栈,好多的就是设计到计算机硬件。学完汇编这门课我也对之前的高级语言中的一些知识有了更新的认识 , 能够让我们更好的理 解高级语言,尤其是高级语言中的C语言。汇编语言对于内存的操作都是基于内存地址的,而C语言 中最令人头疼的指针概念,说白了就是内存的地址指针的学习和应用中最头疼的就是在指

15、针这个抽 象的概念和实际的内存单元之问建立思维映射, 而这些恰恰是我们在汇编语言学习中频繁做的一件 平常事另外,对于 c 语言中的数据类型形参实参函数调用全局变量局部变量等概念及操作, 我们都 可以用汇编语言中的一些操作相关联, 把这些抽象的概念和过程, 通过汇编语言形成一个具体的映 像, 深度割析,这样我们才能真正的学会学好 C 语言计算机科学的各个方面是一个统一的整体, 只 有多方面穿插,交互才能更好的搭建计算机知识体系。我想如果想学好计算机编程技能, 如果想做一名合格的编程人员, 如果想在计算机编程之路 走的更远, 我们也必须从汇编语言开始, 才能完整、完善的建立计算机编程知识体系! 所以对于我 自己来说, 要以今天的学习为跳板, 为今后的汇编语言的继续学习打好基础。愿自己在计算机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号