版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与汇编语言课程设计电子琴学院:计算机科学技术专业:计算机科学与技术(工)班级:计13-1班姓名:肖林英学号:25指导教师:2016年6月10日微机原理与汇编语言课程设计任务书一、题目:电子琴二、设计的目的.掌握利用PC机扬声器发出不同频率声音的方法;.学习利用系统功能调用从键盘上读取字符的方法;.掌握定时器/计数器8253的工作原理;三、设计要求编写程序,程序运行时使PC机成为一架可演奏的“钢琴”。当按下数字键8时,依次发出1,2,3,4,5,6,7,七个高音和低音,Esc则退出演奏状态。独立完成课程设计。四、设计内容及步骤.PC机扬声器电路电路图如图1所示:61H端口第。位61H端口
2、第。位计数值控制字图1PC机扬声器控制电路通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。当与门打开后,经过放大器的放大作用,便可驱动扬声器发出不同频率的音调。为使该音调的声音持续一段时间,要插入一段延时程序,之后再将扬声器关闭(关闭与门)。.建立音频表要使计算机成为可弹奏的简易电子琴,需要使用系统调用的01H功能以接收键入字符,并且要建立一张音频表。五、课程设计工作量每人的程序量应在100行有效程序行以上,不得抄袭,否则给不及格成绩。六、课程设计工作计划2016年6月6日2016年6月6日2016年6月10日2016年6月10日下午指导教师讲课,学生准备文献资料;每人完成自
3、己程序并能独立演示;验收,学生撰写课程设计报告。指导教师签字:专业主任签章:微机原理与汇编语言课程设计指导教师评语与成绩TOC o 1-5 h z HYPERLINK l bookmark15 一、概述1 HYPERLINK l bookmark17 .课题描述1 HYPERLINK l bookmark19 .程序设计目的1 HYPERLINK l bookmark21 二、需求分析1 HYPERLINK l bookmark23 三、总体设计2 HYPERLINK l bookmark25 .电子琴程序2 HYPERLINK l bookmark27 .单音调子程序SOUND3 HYPER
4、LINK l bookmark29 四、详细设计3 HYPERLINK l bookmark31 .扬声器3.界面设计4 HYPERLINK l bookmark33 五、调试与运行结果说明5 HYPERLINK l bookmark35 .主界面5 HYPERLINK l bookmark37 .退出界面6 HYPERLINK l bookmark39 六、课程设计总结6 HYPERLINK l bookmark41 七、结束语7 HYPERLINK l bookmark43 八、程序清单7参考文献14第第 页共18页七、结束语汇编语言作为一种低级程序设计语言,既然是低级所以应该是最底层的,
5、与我们计算机内部的结构联系应该联系很密切,而且在我们学习中也深刻的了解到了这一点。比如说后来学到的寄存器、中断、还要各种寻址方式以及进栈出栈,好多的就是设计到计算机硬件。学完汇编这门课我也对之前的高级语言中的一些知识有了更新的认识,能够让我们更好的理解高级语言,尤其是高级语言中的C语言。汇编语言对于内存的操作都是基于内存地址的,而C语言中最令人头疼的指针概念,说白了就是内存的地址指针的学习和应用中最头疼的就是在指针这个抽象的概念和实际的内存单元之问建立思维映射,而这些恰恰是我们在汇编语言学习中频繁做的一件平常事另外,对于c语言中的数据类型形参实参函数调用全局变量局部变量等概念及操作,我们都可以
6、用汇编语言中的一些操作相关联,把这些抽象的概念和过程,通过汇编语言形成一个具体的映像,深度割析,这样我们才能真正的学会学好C语言计算机科学的各个方面是一个统一的整体,只有多方面穿插,交互才能更好的搭建计算机知识体系。我想如果想学好计算机编程技能,如果想做一名合格的编程人员,如果想在计算机编程之路走的更远,我们也必须从汇编语言开始,才能完整、完善的建立计算机编程知识体系!所以对于我自己来说,要以今天的学习为跳板,为今后的汇编语言的继续学习打好基础。愿自己在计算机这条道路上越走越远。本次设计得到了老师的大力支持和帮助,其中老师对此次设计的题目的主要难度以及一些要求和目的给出了详细的解释。同学对设计
7、中遇到的汇编语言方面的知识给予了很大的帮助。感谢陈微老师这学期对我们的谆谆教导、对微机原理课程的认真讲解以及对课程设计的细心指导。您的认真负责让我感觉到了一个电脑工作者所要具备的素质,您的讲课风格让我对微机原理这门课产生了浓厚兴趣,并会更努力的去学习它!八、程序清单DRAWMACROSTART_X,START_,YEND_X,END_Y,COLORLOCALDRAW_NEXT;1吐避免宏重复调用时,标号的重复;功能:画填充的矩形;使用条件:START_XEND_X,START_YEND_YPUSHAXPUSHBXPUSHCXPUSHDXMOVAH,0CH;写像素点MOVAL,COLOR;设置颜
8、色MOVBH,0;选用页号0MOVCX,START_X;列起始点MOVDX,START_Y;行起始点DRAW_NEXT:INT10H;画点INCCX;画横线CMPCX,END_X;比较行是否画完JNEDRAW_NEXT;画另一行MOVCX,START_X;另一行的起始点INCDXCMPDX,END_Y;比较列是否画完JNEDRAW_NEXT;未完继续画POPDXPOPCXPOPBXPOPAXENDMDRAWSQREMACROSTART_X,START_Y,END_X,END_Y,COLORLOCALROW_UP,ROW_DOWN,RANK_LEFT,RANK_RIGHT;功能:画不填充的矩形P
9、USHAXPUSHBXPUSHCXPUSHDXPUSHSIMOVAH,0CHMOVAL,COLORMOVBH,0MOVCX,START_XMOVDX,START_YROW_UP:;画上边INT10HINCCXCMPCX,END_XJNEROW_UPRANK_RIGHT:;画右边INT10HINCDXCMPDX,END_YJNERANK_RIGHTMOVCX,START_X;下边起始点MOVSI,END_XINCSIROW_DOWN:;画下边INT10HINCCXCMPCX,SIJNEROW_DOWNMOVDX,START_Y;右边起始点MOVCX,START_XRANK_LEFT:;画右边IN
10、T10HINCDXCMPDX,END_YJNERANK_LEFTPOPSIPOPDXPOPCXPOPBXPOPAXENDMDATASSEGMENT;此处输入数据段代码DATA1DB49h,56h,62h,66h,74h,83h,94h,10h;音频表NUMDB?;NUM为8253计数器初值的序号;白色琴键坐标ST_LXDW50,61,72,83,94,105,116ST_MXDW127,138,149,160,171,182,193ST_HXDW204,215,226,237,248,259,270ST_YDW50ED_LXDW60,71,82,93,104,115,126ED_MXDW137
11、,148,159,170,181,192,203ED_HXDW214,225,236,247,258,269,280ED_YDW90;黑色琴键坐标BT_XDW57,68,90,101,112DW134,145,167,178,189DW211,222,244,254,265BT_YDW50BD_XDW64,75,97,108,119DW141,152,174,185,196DW218,229,251,262,273BD_YDW70;定义在屏幕绘制字START_COLDB?;存储起始行TEXTDB16;起始行DB2;起始列DB31H;字体颜色DBThisIsMyCurriculumDesign,
12、0FFHDBThankYouForYourSupport,0FFHDB1.PRESS18TOPLAY,0FFHDB2.PRESSESCTOEXIT,0FFH,0FFH;显示字DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSMAINPROCNEARSTART:;此处输入代码段代码CALLINIT;调用初始化程序MOVBX,OFFSETDATA1;获取音频表SKY:MOVAH,07H;无回显过滤的字符输入AL=8位数据INT21HCMPAL,27;如果按CTRL+C,退出J
13、EEXIT1CMPAL,31H;若AL小于1,循环,否则继续执行程序,31H是ASKII码1JLSKYCMPAL,38H;若AL大于8,循环,否则继续执行程序,38H是ASKII码8JGSKYSUBAL,31HMOVAH,00HMOVDI,BX+SIMOVSI,AXMOVNUM,AL;将所获取的键值赋给8253计数器MOVAL,BXSIPUSHBXCALLINIT1CALLWAITFINAL,61HANDAL,0FCHOUT61H,ALJMPSKYMAINENDP;8253初始化子程序INIT1PROCNEARMOVDL,0AHMULDLMOVDI,AXMOVAL,0B6HOUT43H,ALM
14、OVDX,0012HMOVAX,34DEHDIVDIOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HMOVAH,ALORAL,03HOUT61H,ALRETINIT1ENDP;延时子程序WAITFPROCNEARPUSHAXWAITF1:INAL,61HANDAL,10HCMPAL,AHJEWAITF1MOVAH,ALLOOPWAITF1POPAX;寄存器基址加变址寻址方式;关闭扬声器;选择方式三通道二;控制扬声器声音;声音开始;保护寄存器;读取PB端口值;低四位清零RETWAITFENDPINITPROCNEAR;初始化屏幕:画琴键MOVAX,DATASMOVDS,AXM
15、OVAH,0MOVAL,0DHINT10HMOVAH,0BHMOVBH,0MOVBL,09HINT10HCALLSHOW_TEXTDRAW45,30,285,94,05HDRAWSQRE45,30,285,94,0DHDRAWSQRE49,48,280,49,00HLEASI,ST_LXLEADI,ED_LXMOVCX,21INIT_DRAW:DRAWSI,ST_Y,DI,ED_Y,0FHDRAWSI,90,DI,93,07HADDSI,2ADDDI,2LOOPINIT_DRAWLEASI,BT_XLEADI,BD_XMOVCX,15INIT_BLOCK:DRAWSI,BT_Y,DI,BD_Y
16、,00HADDSI,2;设置屏幕;BIOS对屏幕及显示器所提供的服务程序;背景色;画21个白色键;阴影;画15个黑色键ADDDI,2LOOPINIT_BLOCKRETINITENDPSHOW_TEXTPROCNEAR;在屏幕上显示字符LEADI,TEXT;载入字符串首地址MOVDH,DI;赋行值INCDI;取得列MOVDL,DIMOVSTART_COL,DLMOVAH,2MOVBH,0INT10HINCDIMOVBL,DICHAR_WRITE:INCDIMOVAL,DICMPAL,0FFHJEBUMP_ROWCMPAL,0JZEND_TEXTCALLSHOW_CHARJMPCHAR_WRITE;赋列值;保存开始列;设置光标位置;0页;取得颜色值;赋颜色值;取得要显示的字符;行结束否;下一行;结束否;显示字符;下一个字符END_TEXT:RETBUMP_ROW:INCDH;下一行MOVDL,START_COL;赋开始列值MOVAH,2;设光标位置MOVBH,0INT10HJMPCHAR_WRITESHOW_TEXTENDPSHOW_CHARP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重点岗位双重预防机制操作指南
- 足底反射区按摩手法教学指引
- 产后营养调理专属配餐食谱
- 门店满意度调查管理规范
- 足底反射区按摩手法技术规范
- 水稻种子包衣处理技术操作规程
- 电疗仪器使用安全操作守则
- 外委施工人员安全教育培训方案
- 康复理疗设备日常清洁规范
- 专职安全员履职能力提升指南
- 2024秋期本科《知识产权法》一平台在线形考(第一至四次形考任务)试题及答案
- 人教版高中物理选择性必修第一册期末复习全册知识点考点提纲
- 2025年超星尔雅学习通《生物信息学(浙江大学版)》考试备考题库及答案解析
- 上海市复兴中学2026届化学高一第一学期期末达标测试试题含解析
- 铲车驾驶员安全操作规程
- 职业指导师-国家职业标准
- 封箱机安全操作规程
- 医院一级护理知识培训课件
- T/CHES 129-2024山区小流域沟道治理人工阶梯-深潭系统技术导则
- 人工智能在商业中的应用
- 内科护理心电图监测与护理要点
评论
0/150
提交评论