ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:33.85KB ,
资源ID:23021812      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23021812.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理与汇编语言程序设计课程设计报告.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理与汇编语言程序设计课程设计报告.docx

1、微机原理与汇编语言程序设计课程设计报告课程设计报告名 称:微机原理与汇编语言程序设计课程设计 题 目: 汇编语言编程实践及电子钟设计 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: 设计周数: 成 绩: 微机原理与汇编语言程序设计课程设计评分表实验结果(60分)电话号码本程序完善(5分) 显示器I/O程序设计(10分)中断程序设计(5分)发声系统设计(10分)键盘程序设计(10分)电子钟设计(20分)实验报告(30分)报告规范完整、符合要求,工作量大,文档逻辑性强,表述流畅(24-30分)报告较规范完整、基本符合要求,工作量适中,文档逻辑性较强,表述较流畅(15-23分)报告不

2、规范完整、不符合要求、文档逻辑性差,表述不清(0-14分)实验过程(10分)实验认真,主动性强,反映出较强的综合分析、解决问题的能力,出勤率高,无迟到早退现象(7-10分)实验较认真,较积极主动,反映出一定的综合分析、解决问题的能力,出勤率较高,较少迟到早退(4-6分)实验不认真主动,分析解决问题能力一般,出勤率低(1-3分)总成绩(0-100分)优(90-100分)良(80-89分)中(70-79分)通过(60-69分)不通过(60分)任 务 书一、 目的与要求本课程设计包含软件部分和硬件部分两个环节。软件部分:进一步熟悉汇编语言设计方法和步骤,完成在有限的课内实验环节无法涉及到的具有综合设

3、计性的软件实验,如中断程序设计、I/O程序设计、宏设计等。硬件部分:利用伟福试验设备中的8253可编程定时/计数器,8259中断控制器,8255可编程并行接口芯片和七段数码管等设计一个电子钟电路,并编制一个程序使电子钟能正常运行。 通过软硬件环节的设计和调试,巩固所学知识,增强动手能力,提高综合性工程素质。二、 主要内容软件部分:1.熟悉编程环境,完善前期电话号码本设计的功能;2.显示器I/O程序设计,完成窗口控制程序;3.中断程序设计,完成内部中断服务程序和外部中断服务程序设计;4.发声系统设计;5.键盘程序设计。 硬件部分:1.总体模块设计,查阅资料,设计主程序和中断服务程序的流程;2.详

4、细设计,完成软硬件模块的框架。3.调试,对前述工作进一步细化;4.完善功能,实现电子钟的准确运行,并进一步改进其功能;5.验收、实验报告撰写。三、 进度计划序号设计(实验)内容完成时间备注1熟悉环境,完善电话号码本设计的功能半天2显示器I/O程序设计1天3中断程序设计1天4发声系统设计1天5键盘程序设计1天6验收、实验报告总结、撰写半天7总体模块设计半天8详细设计1天半9调试1天10完善功能1天11系统验收、实验报告撰写1天四、 设计(实验)成果要求1.软件环节要求掌握各环节的设计原理、能实现各环节要求的功能。2.硬件环节要求利用相关接口芯片,实现电子钟的准确运行等功能。3.总结实验,撰写实验

5、报告。五、 考核方式实验结果(60)+实验报告(30)+实验过程表现(10)1验收:完成课程设计题目后由指导老师验收,学生汇报上机题目完成情况,回答提出的问题。2撰写课程设计实验报告:完成课程设计题目后,应认真撰写课程设计报告,报告应内容全面、格式规范。 学生姓名: 指导教师: 年 月 日实验一电话号码本设计完善一、 课程设计(综合实验)的目的与要求1. 熟练掌握汇编语言程序设计环境,根据前期掌握程度,可选择Masm for windows集成实验环境(实验室配备),或自行安装masm5.0、masm6.0、Emu8086,Tasm等,软件开发环境可由学生根据使用爱好自选。2 .根据课内实验验

6、收时指导教师提出的意见,以及和同学讨论的结果,设计实现一个功能比较完善的电话号码本,并在设计中体现自己的工作特色,即具备和其他设计不同之处。二、 设计(实验)正文1. 定义电话本的结构体2. 删除子程序CANCEL PROC ;删除记录的过程 newline MOV DX,OFFSET CZTS MOV AH,9H INT 21H MOV AH,01H ;输入学号 INT 21H MOV BJ1,AL MOV AH,01H INT 21H MOV BJ2,AL MOV BX,0 MOV DI,30ALCZ9:MOV SI,0 ;先检查是否有要删除的数据 MOV AH,BJ1 CMP AH,ST

7、UBX.NUMSI JNE ALCZ8 INC SI MOV AL,BJ2 CMP AL,STUBX.NUMSI JE ALSC1 ;有此学号就转到删除它 ALCZ8:ADD BX,TYPE STU DEC DI CMP DI,0 JNE ALCZ9 newline MOV AH,9H MOV DX,OFFSET NO ;没有就告知用户 INT 21H newline CALL TO_DOES ALSC1:MOV BX,0 LSC4:MOV SI,0 MOV AH,BJ1 CMP AH,STUBX.NUMSI JNE LSC1 INC SI MOV AL,BJ2 CMP AL,STUBX.NU

8、MSI JE LSC2 ;找到要删除的学生就删除 LSC1:ADD BX,TYPE STU JMP LSC4 LSC2:MOV SI,0 ;删除学生资料,即把它清零 MOV STUBX.NUMSI,0 INC SI MOV STUBX.NUMSI,0 MOV SI,0 MOV CX,20 LSC3:MOV STUBX.NAMSI,0 INC SI LOOP LSC3 MOV SI,0 MOV CX,12SC1: MOV STUBX.TLESI, INC SI LOOP SC1 newline MOV AH,9 MOV DX,OFFSET SCCG ;显示删除成功 INT 21H newline

9、 RETCANCEL ENDP3. 查找记录FIND PROC ;查找记录的过程 newline MOV DX,OFFSET CZTS MOV AH,9H INT 21H MOV AH,01H ;输入查找的学号 INT 21H MOV BJ1,AL MOV AH,01H INT 21H MOV BJ2,AL newline MOV BX,0 MOV DI,30;循环次数 LCZ9: MOV SI,0 ;先检查是否有要查找数据 MOV AH,BJ1 CMP AH,STUBX.NUMSI JNE LCZ8 INC SI MOV AL,BJ2 CMP AL,STUBX.NUMSI JE LCZ7LC

10、Z8: ADD BX,TYPE STU DEC DI CMP DI,0 JNE LCZ9 MOV AH,9H ;没有数据就告知用户 MOV DX,OFFSET NO INT 21H newline CALL TO_DOESLCZ7: CALL LINE ;有要找的学号时先输出栏目名称 newline MOV DX,OFFSET ML MOV AH,9H INT 21H newline mov ah,02h; MOV DL, MOV DL, INT 21H MOV BX,0;从第1个学生开始查找LCZ4: MOV SI,0 MOV AH,BJ1 CMP STUBX.NUMSI,AH JNE LC

11、Z5 INC SI MOV AL,BJ2 CMP STUBX.NUMSI,AL JZ LCZ2LCZ5: ADD BX,TYPE STU JMP LCZ4LCZ2: MOV SI,0 ;开始输出要找的学生的资料 MOV AH,02H MOV DL,STUBX.NUMSI ;输出学号 INT 21H INC SI MOV DL,STUBX.NUMSI INT 21H MOV CX,4;输出空格 MOV AH,02HHG: MOV DL, INT 21H LOOP HG MOV SI,0LCZ3: MOV DL,STUBX.NAMSI ;输出姓名 INT 21H INC SI CMP STUBX.

12、NAMSI,0 JNE LCZ3 MOV CX,20 SUB CX,SI ;输出空格以便使数据输出时对齐 HG4: MOV DL, INT 21H LOOP HG4 MOV SI,0LDY1: MOV DL,STUBX.TLESI ;输出电话号码 CMP DL, JE JJB INT 21H INC SI JMP LDY1JJB: newline CALL LINE newline CALL TO_DOES RETFIND ENDP5.浏览记录SKIM PROC ;浏览记录的过程 newline MOV BX,0 MOV DI,30YY1: MOV SI,0 ;检查是否一个数据都没有 CMP

13、STUBX.NAMSI,0 JNE KK1 ;有数据时转输出 ADD BX,TYPE STU DEC DI CMP DI,0 JNE YY1 MOV AH,9H ;没有就告知用户 MOV DX,OFFSET NODA INT 21H newline CALL TO_DOESKK1: CALL LINE newline MOV AH,9H;先输出栏目名称 MOV DX,OFFSET ML INT 21H newline MOV BX,0 MOV DI,30LL1: MOV SI,0 ;开始输出所有学生资料 CMP STUBX.NAMSI,0 JNZ PP1 ADD BX,TYPE STU DEC

14、 DI CMP DI,0 JNE LL1 JMP DOES10PP1: MOV SI,0 MOV DL, INT 21H MOV DL, INT 21H MOV DL,STUBX.NUMSI;输出学号 INT 21H INC SI MOV DL,STUBX.NUMSI;输出学号 INT 21H MOV SI,0 MOV CX,4 MOV AH,02H HG3: MOV DL, INT 21H LOOP HG3NA1: MOV DL,STUBX.NAMSI;输出姓名 INT 21H INC SI CMP STUBX.NAMSI,0 JNZ NA1 MOV CX,20 SUB CX,SIHG2:

15、MOV DL, INT 21H LOOP HG2 MOV SI,0 LDY2: MOV DL,STUBX.TLESI;输出电话号码 CMP DL, JE JJ1 INT 21H INC SI JMP LDY2JJ1: newline ADD BX,TYPE STU DEC DI CMP DI,0 JNE LL1DOES10:CALL LINE newline CALL TO_DOES RETSKIM ENDP三、 课程设计(综合实验)总结或结论 通过本次课程设计,进一步掌握了汇编的程序设计方法,对原来学过的和没学过的知识都有了较深的理解,也深刻体会到用汇编语言编写代码却是不容易,汇编好几行语句

16、在高级语言中只需要一条就可以完成,但事物总有两面行,存在即具其合理性,asm的优越的性能(时间和空间),高级语言是望尘莫及的,所以学号汇编也是为我们以后的成功奠定基础。相信通过这次汇编的课程实际,自己的分析问题和处理问题的能力都有了一次不小的提高,收获不少。同时也要感谢在课程设计中给予我帮助的老师。此次课程设计目的已经达到。实验二:显示器I/O程序设计一 课程设计(综合实验)的目的与要求示器I/O程序设计,完成屏幕窗口控制程序。要求在屏幕上开出三个窗口,它们的左上角和右下角的坐标分别是(5,10),(15,30)和(5,50),(15,70)和(18,15),(22,65),如从键盘输入字符,

17、则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示出左窗口的内容。如果再按下键,输入字符就会接在先前输入的字符之后显示出来。当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示与最低一行,窗口最高一行向上卷动后消失。二 设计(实验)正文I/O窗口中自己达到的目的有:1.回车:通过获取回车键的接通码进入该程序段,进行卷一行,且光标设置,并进行分左右窗口设置,跳转不同。ENTERHUAN: SCROLL 18,15,22,65,1 MOV DWY,15 CMP WINDOWNUM,0

18、JZ ONE SCROLL 5,50,15,70,1 POS_CURSE 15,50 MOV RY,50 mov rx,15 JMP INPUTONE: SCROLL 5,10,15,30,1 POS_CURSE 15,10 MOV LY,10 mov lx,15 JMP INPUT 2.删除:通过int 10功能中03H获取光标位置,通过卷行,向前卷动,以达到删除效果。DEL: mov ah,03h int 10h dec dl push dx SCROLL dh,dl,dh,dl,0 pop dx pos_curse dh,dl mov ry,dl jmp input三 课程设计(综合实验

19、)总结或结论此实验中是在别人的基础上进行改动,虽然自己编写的程序不太长,但是仍然存在很多困难。并且在此程序中仍然存在错误,如删除中,向前滚动,并不能达到删除,会出现输出第二个字母的时候向后跳显示,只是屏幕上显示删除,实际内存中并没删除。并且并没有判断到窗口的最左行想上一行跳。实验三:中断程序设计一 课程设计(综合实验)的目的与要求中断程序设计,完成内部中断服务程序和外部中断服务程序设计。具体要求为:(1).编写一个内部中断服务程序,使其能够显示以“0”结尾的字符串(利用显示器功能调用INT 10H)。字符串缓冲区首地址为入口参数,利用DS:DX传递此参数。(2).编写一个可屏蔽的外部中断服务程

20、序,中断请求来自8259A的IRQ0,在新的外部中断服务程序(新08H中断)中,使得每55ms的中断在屏幕上显示一串信息“A 8259A Interrupt!”,显示10次后,恢复原中断服务程序,返回DOS。二 设计(实验)正文1. 内部中断2. 外部中断其中增加了一小段进行延迟,及中断10次才输出一次inc counter1 cmp counter1,0ah jb stop mov counter1,0 inc counter三 课程设计(综合实验)总结或结论通过本次试验,我了解了汇编程序的开发过程,能够在MASM for window环境下的进行编辑,变异,连接程序,掌握了INT 21H软

21、件中的的调用DOS内部子程序的方法。但对于dos环境下的汇编程序的编辑编译连接使用还不是很熟悉,只能是在masm for window继承软件开发环境熟悉的编译连接运行。实验四:发声系统设计一 课程设计(综合实验)的目的与要求发声系统设计,参考教材中的例9.1,利用扬声器控制原理,编写一个简易乐器程序。要求当按下18数字键时,分别发出连续的中音17和高音i(对应频率依次为524Hz、588Hz、660Hz、698Hz、784Hz、880Hz、988Hz和1048Hz);当按下其他键时,暂停发声。如果时间允许,可在此基础上自行发挥,如增加按键功能、编辑歌曲等。二 设计(实验)正文1. 扬声器设置

22、speaker proc push ax mov al,0b6h;10 11 011 0 out 43h,al pop ax out 42h,al mov al,ah out 42h,al retspeaker endpspeakon proc ;扬声器开 push ax in al,61h or al,03h out 61h,al pop ax retspeakon endpspeakoff proc ;扬声器关 push ax in al,61h and al,0fch out 61h,al pop ax retspeakoff endp2.输入判断,并调用first: mov ah,1h

23、 int 21h cmp al,1bh jz exit cmp al,31h jb close cmp al,38h ja close and al,0fh mov ah,00h add ax,ax mov si,ax mov bx,offset freq mov ax,bx+si mov cx,ax mov dx,0012h mov ax,34dch div cx call speaker call speakon jmp first close: call speakoff jmp first三 课程设计(综合实验)总结或结论音符和频率之间有一定的对应关系,如果计算机键盘上的一些键和音符、

24、频率也形成一种对应关系,则可通过键盘控制扬声器发出各种音符声音,这时计算机键盘就变成了钢琴键盘,就可以用他弹奏出简单的乐曲了。实验五:键盘程序设计 一 课程设计(综合实验)的目的与要求键盘程序设计,编写一个程序,每当在键盘上按下一个按键时,就显示其接通和断开扫描码。具体原理参见教材第十一章,并行接口。二 设计(实验)正文1. 输出接通扫描码的十位个位计算binihex proc mov ch,4rotate: mov cl,4 rol bx,cl ;循环左移 mov al,bl and al,0fh add al,30h cmp al,3ah jl print add al,7print: m

25、ov dl,al mov ah,2 int 21h dec ch jnz rotate retbinihex endp1 计算断开扫描码,在接通扫描码的基础上加80h并调用以上程序2 键盘上F1F9在字符上的输出,先输出F,再对其接通扫描码减去3bh,进行输出mov ah,2 ;是就输出F mov dl,46h int 21h sub ch,3bh add ch,30h mov dl,ch mov ah,2 int 21h mov dl,0Dh mov ah,2 int 21h mov dl,0Ah mov ah,2 int 21h jmp againnext: mov dl,cl mov a

26、h,2 int 21h ;打印回车换行 mov dl,0Dh mov ah,2 int 21h mov dl,0Ah mov ah,2 int 21h三 课程设计(综合实验)总结或结论本实验中的要求是将输入的十六进制的数转换为十进制的数,并进行输出,结果是将十六进制的数按ASCII码转换而得的。在此程序中较为复杂的是进行转换,程序中,需要设定循环次数,以及跳转方向。同时,在输出字符时也需要进行判断,分类输出。实验六:电子钟设计一 课程设计(综合实验)的目的与要求利用伟福实验系统提供的8253计数器,8259中断控制器、七段数码管、8255并行接口芯片等,设计实现一个电子钟的电路,并编制一个程序

27、使得该电子钟能正常工作。其中,8253计数器用于产生计时脉冲(如1s、100ms等),中断服务程序用于对时、分、秒的计数更新,并存入相应的存储单元,主程序设置相应芯片的工作方式、完成时、分、秒信息的显示等。二 设计(实验)正文在程序中自己进行完成的方面有:1. 闹钟到点报时NAOZHONG PROC NEAR MOV AL,MINUTE ;将要进行调整的闹钟赋给闹钟的时间 MOV NMINUTE,AL MOV AL,HOUR MOV NHOUR,ALSHI2: MOV AL,NHOUR ;将时间数字转换赋给LED显示缓冲区 MOV AH,0 MOV CL,10 DIV CL MOV CH,AH

28、 MOV AH,0 MOV BX,OFFSET LEDMAP ADD BX,AX MOV AL,BX MOV LEDBUF,AL MOV BX,OFFSET LEDMAP MOV AL,CH MOV AH,0 ADD BX,AX MOV AL,BX OR AL,80H MOV LEDBUF+1,AL MOV AL,NMINUTE MOV AH,0 MOV CL,10 DIV CL MOV CH,AH MOV AH,0 MOV BX,OFFSET LEDMAP ADD BX,AX MOV AL,BX MOV LEDBUF+2,AL MOV BX,OFFSET LEDMAP MOV AL,CH MOV AH,0 ADD BX,AX MOV AL,BX OR AL,80H MOV LEDBUF+3,AL MOV LEDBUF+4,3FH MOV LEDBUF+5,3FH CALL DISPLAYLED ;调用完LED显示 CALL TESTKEY ;测试是否有输入,有则判断,无则继续显示 JNE SHI1 JMP SHI2SHI1: CALL GETKEY CMP AL,0FH JZ NXIAOS

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1