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

上传人:叶*** 文档编号:37570238 上传时间:2022-09-01 格式:DOC 页数:28 大小:388.50KB
返回 下载 相关 举报
微机原理与汇编语言程序设计课程设计报告.doc_第1页
第1页 / 共28页
微机原理与汇编语言程序设计课程设计报告.doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《微机原理与汇编语言程序设计课程设计报告.doc》由会员分享,可在线阅读,更多相关《微机原理与汇编语言程序设计课程设计报告.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课程设计报告名 称:微机原理和汇编语言程序设计课程设计 题 目: 汇编语言编程实践及电子钟设计 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: 设计周数: 成 绩: 28 / 28微机原理和汇编语言程序设计课程设计评分表实验结果(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,STUBX.NUMSI JNE A

7、LCZ8 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.NUMSI JE LSC2;找到要删除

8、的学生就删除 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 RETCANCEL ENDP3. 查

9、找记录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 LCZ7LCZ8: ADD BX,TYPE STU DE

10、C 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 LCZ5 INC SI MOV AL,BJ2 CMP

11、 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.NAMSI,0 JNE LCZ3 MOV CX,20

12、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 STUBX.NAMSI,0 JNE KK1;有数据时转输出

13、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 DI CMP DI,0 JNE LL1 JMP DOES10PP

14、1: 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: MOV DL, INT 21H LOOP HG2 MOV SI,0

15、 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 JZ ONE SCROLL 5,50,15,70,1 POS_CU

18、RSE 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).编写一个可屏蔽的外部中断服务程序,中断请求来自8259A的IRQ0,在新的外部中断服务程序(新0

20、8H中断)中,使得每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软件中的的调用DOS内部子程序的方法。但对于dos环境下的汇编程序的

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

22、11 011 0out 43h,alpop axout 42h,almov al,ahout 42h,alretspeaker endpspeakon proc;扬声器开push axin al,61hor al,03hout 61h,alpop axretspeakon endpspeakoff proc;扬声器关 push ax in al,61h and al,0fch out 61h,al pop ax retspeakoff endp2.输入判断,并调用first: mov ah,1h int 21h cmp al,1bh jz exit cmp al,31h jb close cm

23、p 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: mov dl,al mov ah,2 int 21h dec ch jnz rotate retbin

25、ihex 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 ah,2 int 21h ;打印回车换行 mov dl,0Dh mov ah,2 int 21h mo

26、v dl,0Ah mov ah,2 int 21h三 课程设计(综合实验)总结或结论本实验中的要求是将输入的十六进制的数转换为十进制的数,并进行输出,结果是将十六进制的数按ASCII码转换而得的。在此程序中较为复杂的是进行转换,程序中,需要设定循环次数,以及跳转方向。同时,在输出字符时也需要进行判断,分类输出。实验六:电子钟设计一 课程设计(综合实验)的目的和要求利用伟福实验系统提供的8253计数器,8259中断控制器、七段数码管、8255并行接口芯片等,设计实现一个电子钟的电路,并编制一个程序使得该电子钟能正常工作。其中,8253计数器用于产生计时脉冲(如1s、100ms等),中断服务程序用

27、于对时、分、秒的计数更新,并存入相应的存储单元,主程序设置相应芯片的工作方式、完成时、分、秒信息的显示等。二 设计(实验)正文在程序中自己进行完成的方面有: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 MOV AH,0 MOV BX,OFFSET LEDMAP ADD BX,AX MOV AL,BX

28、 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

29、,AL MOV LEDBUF+4,3FH MOV LEDBUF+5,3FH CALL DISPLAYLED ;调用完LED显示 CALL TESTKEY ;测试是否有输入,有则判断,无则继续显示 JNE SHI1 JMP SHI2SHI1: CALL GETKEY CMP AL,0FH JZ NXIAOSHI CMP AL,0EH JZ NFENZHONG CMP AL,0BH JZ JEND1NFENZHONG: ;分钟判断。按E进行自增 INC NMinute cmp NMinute,60 jz Nt2 JMP Nt3Nt2: mov NMinute,00Nt3: JMP SHI2JEND

30、1: JMP END1NXIAOSHI: ;小时。按F进行自增 INC NHour CMP NHour,24 jz Nt0 JMP Nt1 Nt0: mov NHour,00 Nt1: JMP SHI2END1: RET ;按B结束NAOZHONG ENDP2. 按暂停,以及重置进行显示字母pause: CLI mov ledbuf+3,6DH mov ledbuf+4,79H mov ledbuf+5,00H mov ledbuf+2,3EH mov ledbuf+1,77H mov ledbuf+0,73H call displayled CALL TESTKEY JE PAUSE JMP

31、 CONTIUE jmp LPReset: cli MOV Hour,00 MOV Minute,00 MOV Second,00 mov ledbuf,31H mov ledbuf+1,79H mov ledbuf+2,6DH mov ledbuf+3,79H mov ledbuf+4,78H mov ledbuf+5,0 call displayled CALL TESTKEY JE RESET JMP CONTIUE STI JMP LP3. 在设置计数时,AX所能存放的太小,不能达到1秒显示,又只能调用一个8253,所以进行设置中断20次才调用一次显示。inc count mov al

32、,count cmp al,20 jne exit三 课程设计(综合实验)总结或结论 在此实验中较为复杂的有实验本身存在难度,在两个子程序中想要搞清楚较为复杂。同时,实验还需要结合硬件,硬件要求要有较好的基础,明白8253,8259,8255是如何工作的。本次课程设计,也因为理论知识掌握比较好,花了三天时间将程序修改好,添加功能。在本次设计,真正体会到软硬件结合,在我们写好程序之后还必须懂得硬件电路怎么连接,设计程序过程中经常发现程序报错,程序太长就觉得烦,压迫自己把程序的注释写上去,这样很容易知道程序的入口跳转以及错误等。本次设计懂得了耐心很重要,虽然程序有点长,但是只要有耐心终究能将此程序完成的。附录实验一电话号码本设计完善结果:实验二:显示器I/O程序设计结果:输入删除左窗口左窗口回车实验三:中断程序设计结果内部中断:外部中断:实验五:键盘程序设计 结果: 实验六:电子钟设计 电路图:

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

当前位置:首页 > 技术资料 > 施工组织

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁