微机原理课程设计报告
微机原理课设报告

中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握8088,8255,0809,0832,8279 等多种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、课程设计任务本次课设选题为“模拟电压采集,直流电机控制”。
根据我自己对这个课题的理解,我认为这个课题应该实现以下的要求:基本要求:1、对模拟电压进行采集转换为数字信号,并实时显示。
2、用转换的到的数字信号再经数模转换,对直流电机进行控制。
拓展要求:1、通过发光二极管作为信号指示灯,实时的指示直流电机的工作状态是否正常。
2、建立报警电路,对电机非正常工作情况以及反转工作情况下进行报警。
三、设计思想与原理1、设计思想本次课设选题为“模拟电压采集,直流电机控制”,基本分为两大部分:模拟量采集的模数转换部分,以及电机控制中的数模转换部分。
而为了让模拟量的采集结果更加明显可察,将加入数码管显示模块,实时显示模拟量采集的大小情况。
与此同时,在选题基础上添加了直流电机工作状态指示灯电路和报警电路。
2、设计原理根据试验箱相关配置,取电位器0~5V 可调电压为模拟量输出模块,可线性调节输出。
取芯片ADC 0809 对采集到的模拟信号进行模数转换,将0~5V 的电压信号转为00~FF 的数字信号,并通过8279 键盘扫描输出模块进行相应的显示输出。
得到转换后的数字量之后,使用DAC0832 数模转换芯片进行数模转换,并将所得模拟量输出到直流电机控制端,进行电机驱动。
对于添加的模块,主要通过8255 芯片来实现,取8255 的PA0 口作为输出端口,连接试验箱上的开关量输入显示区的发光二极管。
对A口分别赋值01H (直流电机正向非正常工作)、02H(直流电机正常工作)、04H(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。
微机原理课程设报告

微机原理课程设计设计报告一、设计目的1、对微机原理课程中所学的理论知识进行进一步巩固和加深。
2、学会查阅相关手册与资料,培养独立分析与解决问题的能力。
3、学会使用屏幕编辑程序—MASM对汇编程序的编写,调试和运行。
4、了解对系统中DOS和BIOS的使用,弄懂汇编程序的上机过程以及如何运用DEBUG软件进行汇编程序的调试。
二、设计内容本次为期一周的课程设计,主要编写调试了5个程序,题目如下:1、字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,则显示“NO MATCH”。
2、从键盘上输出数据并显示为掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。
编写程序,将键盘接收到的四位十六进制数据转换为等值的二进制数,再显示在终端上。
3、字符和数据的显示设计为掌握字符和数据的显示方法,编写程序,先显示信息:INPUT STRING,THE END FLAG IS$,再接收字符。
如为0-9,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数4、学生成绩名次表设计为进一步熟悉排序方法。
编写程序,将0-100之间的30个成绩存入首址为1000H的存储区中。
1000H+i表示学号为i的学生成绩。
编写程序使得在2000H 开始的区域排除名次表。
2000H+i为学号i的学生的名次。
三、具体设计程序设计一:字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,则显示“NO MATCH”。
流程图程序DATA SEGMENTDAT1 DB 'INPUT STRING1:','$' ;$保持当前地址DAT2 DB 'INPUT STRING2:','$'DAT3 DB 'MATCH!',0AH,0DH,'$' ;0DH为回车ASCII码,0AH为换行ASCII码DAT4 DB 'NOT MATCH!',0AH,0DH,'$'STRING1 DB 50 ;最长长度DB ? ;实际长度DB 50 DUP(?) ;存储空间STRING2 DB 50DB ?DB 50 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATA ;数据段设置MOV DS,AXMOV ES,AXMOV AH,09H ;字符串显示,显示DAT1,显示DS:DX MOV DX,OFFSET DAT1INT 21HMOV AH,0AH ;字符串缓冲输入,接收输入字符串MOV DX,OFFSET STRING1INT 21HMOV DL,0AH ;输出换行MOV AH,02HINT 21HMOV AH,09HMOV DX,OFFSET DAT2 ;显示DAT2INT 21HMOV AH,0AHMOV DX,OFFSET STRING2INT 21HMOV DL,0AH ;输出换行MOV AH,02HINT 21HLEA SI,STRING1 ;比较LEA DI,STRING2ADD SI,2 ;串1首字符[SI+2]ADD DI,2 ;串2首字符[DI+2]CLD ;DF=0MOV CX,50REPZ CMPSB ;CX≠0或ZF=1时重复,DS:SI和ES:DI所指的两个字节相同则继续比较,如果比较相等,ZF=1,则继续比较下一个字节,DI和SI分别加1(DF=0时),CX-1JZ MATCHNMATCH:MOV AH,09HMOV DX,OFFSET DAT4 ;输出不匹配INT 21HJMP NEXTMATCH: MOV AH,09HMOV DX,OFFSET DAT3 ;输出匹配INT 21HNEXT: MOV AH,4CHINT 21HCODE ENDSEND START小结在设计过程中,我把程序分成了宏定义显示回车,数据段定义,初始化,开始比较,匹配时再比较,不匹配时SI指向串1首字符,DI指向新字符重新开始比较等模块。
微机原理课程设计报告文库

微机原理课程设计报告文库一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微机硬件结构及其功能;2. 学会分析微机工作原理,了解指令系统及编程方法;3. 掌握微机接口技术,了解常见接口芯片的功能和应用。
技能目标:1. 能够运用所学知识进行微机系统的简单设计和调试;2. 培养学生具备一定的微机编程能力,能够编写简单的汇编语言程序;3. 提高学生动手实践能力,能够进行基本的硬件焊接和电路搭建。
情感态度价值观目标:1. 培养学生对微机原理课程的兴趣,激发学生学习热情;2. 培养学生具备良好的团队合作意识,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生勇于探索新知识,提高自主学习能力。
课程性质:本课程为理论与实践相结合的课程,强调培养学生的动手实践能力和创新能力。
学生特点:学生已具备一定的电子技术和计算机基础,具有较强的学习能力和好奇心。
教学要求:教师应注重理论与实践相结合,引导学生主动参与课堂讨论,鼓励学生动手实践,培养学生解决问题的能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够掌握微机原理的基本知识,具备实际应用能力,为后续相关课程和未来职业发展打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 微机硬件结构:介绍微处理器、存储器、输入输出接口等硬件组件的工作原理和功能;教材章节:第一章 微机系统概述内容列举:CPU结构、存储器分类、I/O接口基础等。
2. 指令系统与编程:讲解汇编语言的基本指令、寻址方式、程序设计方法等;教材章节:第二章 指令系统与汇编语言内容列举:基本指令、汇编语言程序结构、循环、分支等编程技巧。
3. 微机接口技术:分析常见接口芯片的原理与应用,如并行接口、串行接口、定时器/计数器等;教材章节:第三章 微机接口技术内容列举:并行接口、串行接口、定时器/计数器接口芯片等。
4. 微机系统设计与实践:培养学生动手实践能力,进行简单的微机系统设计与调试;教材章节:第四章 微机系统设计与实践内容列举:硬件焊接、电路搭建、程序下载与调试等。
微机原理课程设计报告

微机原理课程设计设计报告姓名:朱文斋班级:自动化0902学号: 3090502040教师:张荣标2012 年 1 月 5 日微机原理课程设计一、目的:结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。
学会使用屏幕编辑程序——EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。
二、内容与要求:1、字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。
2、从键盘输入数据并显示的设计为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。
3、字符和数据的显示设计为掌握字符和数据的显示方法。
编写程序,先显示信息:INPUT STRING,THE END FLAG IS $,再接收字符。
如为0-9,则计数器加一,并显示数据;如为非数字,则直接显示,但不计数。
4、将键盘输入的小写字母转换成大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。
5、学生成绩名次表设计为进一步熟悉排序方法,编写程序,将100以内的30个成绩存入首址为1000H 的存储区中。
1000H+i表示学号为i的学生成绩。
编写程序使得在2000H开始的区域排出名次表,2000H+i为学号i的学生的名次。
微机原理课程设计三、示例程序下面着重介绍程序5——学生成绩名次表设计:流程图:主程序流程图SCAN子函数程序流程图微机原理课程设计程序代码及注释:CRLF MACRO ;宏定义,回车换行MOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTSTUNUM EQU 30 ;学生数MESS1 DB 'Please input 30 score:',0DH,0AH,'$' ;提示信息ERROR DB 'Input error,try again',0DH,0AH,'$' ;报错信息MESS2 DB 'The order is:',0DH,0AH,'$'EMARK DB ? ;报错标志ORG 1000H ;存放成绩地址SCORE DB 30 DUP(?) ;成绩表ORG 2000H ;存放名次地址SEQU DB 30 DUP(?) ;名次表DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,TOPMOV AH,09H ;显示提示信息MOV DX,OFFSET MESS1INT 21HMOV SI,OFFSET SCORE ;成绩表首址MOV CX,STUNUMMOV EMARK,0 ;报错标志清0UUU: CALL GETNUM ;调用子函数读取成绩CMP EMARK,01H ;判断是否出错JE START ;出错则重新开始MOV [SI],DL ;没出错则存入成绩微机原理课程设计INC SI ;指向下一个成绩单元地址LOOP UUU ;判断30个成绩是否读取完MOV CX,STUNUMMOV DI,OFFSET SEQU ;名次表首址VVV: CALL SCAN ;调用扫描子程序MOV AL,STUNUM ;学生总数SUB AL,CL ;计算名次INC ALMOV BX,DX ;学号PUSH AX ;将名次转换成压缩BCD码方便显示PUSH BXPUSH CXXOR AH,AHMOV BH,0AHDIV BHMOV CL,4SHL AL,CLADD AL,AHMOV DH,ALPOP CXPOP BXPOP AXMOV [DI+BX],DH ;存入名次LOOP VVV ;判断是否存完MOV AH,09H ;显示名次提示信息LEA DX,MESS2INT 21HMOV CX,STUNUMMOV SI,OFFSET SEQUWWW: MOV AL,[SI]CALL DISPI ;调用子函数显示名次PUSH DXPUSH AXMOV AH,02 ;显示空格MOV DL,20HINT 21HPOP AXPOP DXINC SI ;指向名次表的下一个地址LOOP WWW ;判断是否输出所有名次MOV AH,4CH ;返回DOSINT 21H微机原理课程设计SCAN PROC NEAR ;扫面子函数,每调用一遍,找出成绩表;中最高成绩,记录其学号,并将此成绩;清0PUSH CXMOV CX,STUNUMMOV AL,00HMOV BX,OFFSET SCOREMOV SI,BXCCC: CMP AL,[SI]JAE JJJMOV AL,[SI]MOV DX,SISUB DX,BXJJJ: INC SILOOP CCCADD BX,DXMOV BYTE PTR [BX],00HPOP CXRETSCAN ENDPDISPI PROC NEAR ;显示子程序PUSH CXMOV BL,AL ;显示高4位MOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPLMOV DL,BL ;显示低4位AND DL,0FHCALL DISPLPOP CXRETDISPI ENDPDISPL PROC NEAR ;将名次转换成对应的ASCII码值并显示 ADD DL,30HMOV AH,02HINT 21HRETDISPL ENDPGETNUM PROC NEAR ;读取成绩子函数微机原理课程设计PUSH CXXOR DX,DX ;清0,用于存放成绩GGG: MOV AH,01HINT 21H ;键盘字符输入CMP AL,0DHJZ RRR ;如果是回车则结束SUB AL,30HJB ERR ;小于0则报错CMP AL,09HJBE GETS ;如果在0—9之间则存成绩至DXJMP ERR ;否则报错GETS: MOV CL,04SHL DX,CL ;将DX中已有数值左移四位XOR AH,AHADD DX,AX ;紧接着将数据存在DX中低四位JMP GGG ;跳转继续读取数据ERR: MOV AH,09H ;显示报错信息MOV DX,OFFSET ERRORINT 21HMOV EMARK,01H ;报错标志置1RRR: PUSH DXCRLF ;回车换行POP DXPOP CXRETGETNUM ENDPCODE ENDSEND START微机原理课程设计四、心得体会:做过很多课程设计,但完成了微机原理的课程设计后,我才感觉这门还是真正需要些技术含量的。
微机原理课程设计报告

微机原理课程设计报告课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力,本文就来分享一篇微机原理课程设计报告,希望对大家能有所帮助!微机原理课程设计报告(一) 以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。
当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。
但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。
我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。
我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。
看着自己做出来的东西,心里面的感觉真的很好。
虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。
很有成就感。
我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。
但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。
对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。
微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。
讨论某一部分原理时又要涉及到其它部分的工作原理。
这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。
所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。
学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。
微机原理课程设计报告

微机应用系统设计与综合应用实验——(微机原理)课程设计报告专业班级学生姓名学生学号指导老师完成时间目录第一章设计课题概述 (3)1.1课程设计目的 (3)1.2课程设计要求 (4)1.3课程设计用途 (4)1.4实现技术指标 (4)第二章设计思想和实施方案 (5)2.1功能分析 (5)2.1.1波形产生 (5)2.1.2波形切换 (5)2.1.3 屏幕显示 (5)2.1.4小键盘控制 (5)2.1.5无极调频 (6)2.1.6无极调幅 (6)2.2所需芯片功能简介 (6)2.2.1 8088功能简介 (6)2.2.2 8255A功能简介 (7)2.2.3 A/D0832功能简介 (8)2.2.4 D/A0809功能简介 (9)2.3实施方案 (10)2.3.1 系统总体设计方案 (10)2.3.2系统设计方框图 (10)第三章典型程序模块及编程技巧分析 (12)3.1键盘扫描及逻辑判断模块 (12)3.2键盘编码模块 (13)3.3波形产生模块 (14)3.3.1方波 (14)3.3.2 锯齿波 (16)3.3.3 三角波 (18)3.3.4 正弦波 (20)3.4波形切换及基本控制模块 (21)3.5无级调频调幅判断及控制模块 (23)第四章遇到的问题及解决方法 (26)第五章程序清单和程序注释 (28)5.1汇编源程序 (28)5.2C语言源程序 (49)第六章课程设计收获与体会 (63)6.1实验收获 (63)6.2心得体会 (63)第七章参考文献 (65)第八章附录 (66)8.18088最小模式的连接图 (66)微机应用系统设计与综合应用课程设计报告第一章设计课题概述1.1 课程设计目的《微机应用系统设计与综合实验(实践)》课程设计是自动化专业本科生必修的一门技术基础课。
通过本课程设计,让学生对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。
微机原理课程设计

微机原理课程设计第一篇:微机原理课程设计一、设计题目单片机综合试验仪——计数/中断模块二、功能及性能指标显示计数,记到15就重新开始计数三、设计目的了解单片机综合实验仪基本构成和分模块设计方法。
掌握PROTEUS下单片机综合实验仪的设计、绘制方法。
通过本次实验,达到熟练掌握PROTEUS下单片机综合实验仪原理图绘制和模块划分调整的目的。
2通过单片机综合实验仪原理图转换为板图、制作出各模块实验板和下载程序和在实验板上调试、运行个实验项目,熟练掌握单片机综合实验仪线路板的设计制作过程;达到实现单片机综合实验仪各实验项目实际运行效果的目的。
3了解单片机综合实验仪各模块程序设计方法。
掌握KEIL C51下单片机综合实验仪各模块程序设计和调式及PROTEUS下的系统仿真方法。
通过本次课程设计,达到熟练掌握KEIL C51下和PROTEUS下单片机综合实验仪各模块程序设计、调试和仿真的目的。
四、意义该实验通过单片机的最小系统的制作,设计简单系统,拥有控制其他模块的功能,在现实生活中应用广泛,具有现实意义。
五、本人所做工作计数/中断模块部分①原理图仿真:②PCB版图设计(元件封装)与制作:部分器件封装:中断、定时计数、串行通信电路部分器件封装:SW1(TRIGGER)(3)——SW-PUSH-AUTO-LOCK(按实物设计)D9(POWER_SHOW)(3)——LED 需要设计封装器件外形图如下:中断、定时计数PCB电路图六、设计内容依据单片机综合实验仪原理图各模块及其元器件的实物结构。
在PROTEUS下设计制作单片机综合实验仪的设计、绘制方法。
通过本次实验,达到熟练掌握PROTEUS下单片机综合实验仪原理图绘制和模块划分调整的目的。
1、在PROTEUS的智能原理图输入系统ISIS下,按本本课程设计课件要求,每位同学主攻单片机综合实验仪一个模块原理图设计和绘制。
为后续实验本模块的板图设计做好准备。
2、自己制作的电路板图上焊接元件,完成实验板的制作。
微机原理课程设计实验报告

微机原理课程设计实验报告评语:成绩教师:年月日班级:学号:姓名:地点:时间:课题七直流电机转速闭环控制系统设计与实现一、课程设计题目:直流电机转速闭环控制系统设计与实现二、课程设计目的:1. 掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。
2. 了解霍尔器件的工作原理,电机转速的测量与控制的基本原理。
3. 了解闭环控制系统的组成原理。
掌握电机转速测量与控制系统的构成方法。
三、课程设计的内容:设计一个对直流电机转速测量与转速控制的闭环控制系统。
微机控制中心在监控界面上设置电机转速。
电机转速测量利用霍尔传感器电路产生转速脉冲,定时/计数电路通过脉冲计数获得转速参量。
电机转速调整采用PWM(脉宽调节)方法,控制中心采样到电机转速参量,算得转速值同预定转速设置值进行比较,若不相同,则调整控制转速脉冲的占空比,来达到调速的目的。
(占空比=脉冲宽度/脉冲周期)四、系统功能要求与设计要求1.基本功能要求:具有友好的人机交互界面,通过鼠标或键盘,选择相关按钮对系统进行监控,监控系统具有转速参数设置窗口、采样的电机转速数据显示窗口和强行干预系统运行的按钮或相应功能选择菜单。
监控程序用查询(或中断)方式获取转速数据。
2.硬件设计要求:充分利用现有实验系统资源设计一个性能较好的直流电机转速闭环控制系统。
利用带锁存的I/O接口电路(如8253,8255,74LS273,D/A-DA0832)输出控制电机转速的脉冲。
采样转速用霍尔传感器件提供电机转速脉冲。
利用定时/计数电路对电机转速脉冲计数。
微机可从定时/计数电路中获得电机转速数值,并产生控制电机转速的PWM脉冲。
五、设计详情1)闭环控制系统原理图电机转速测量与控制闭环系统基本功能图2)电机控制及转速测量原理图3)操作步骤直流电机的in接8255的PA0口,out接T0的clk0口,通过8253的T1实现1s定时,T0实现转速的测量;通过程序将设置的转速和测出的转速相比,改变占空比,使之达到要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
心得与体会
这次课程设计历时两个星期,在整整两个星期的日子里,我学到了很多很多的东西,不仅巩固了以前学过的知识,而且还学到了很多书本上所没有学到过的知识。
首先,通过一段时间的上机练习,对Matlab仿真软件有了很好地掌握,能较熟练地运用Simulink绘制一些简单的仿真模型并正确地设置一些参数,对其仿真的过程也有了大致的了解;其次,就是通过本次课程设计,对程序语言有了更好的掌握,通过对完整程序的阅读和理解,使我对程序的设计和运行过程有了更加全面的了解;还有就是对信号的传输过程和信噪比以及误码率都有了更深地理解,对BPSK和QPSK有了更好的掌握;特别是BPSK在无噪声情况下和在加性高斯白噪声的情况下的实现及输出波形有了更深刻的印象。
通过本次课程设计最大的收获可能就是使我懂得了理论联系实际是很重要的,我们在书本上学到的知识是很基础的,而且我们对知识的掌握也是很有限的。
通过实践,在加强我们独立思考以及动手能力的同时还加深了我们对知识的理解、加强了我们对知识运用的能力。
在实践中我们可以发现自身的不足,可以通过以后的学习及锻炼及时地改正。
当然在本次课程设计过程中遇到了很大的困难,在实践的过程中遇到了各种各样的问题,比如起先在设置模块的参数时比较困难,仿真的效果也比较差;还有就是在编写和修改程序的时候也会遇到一些难题,最后,在老师的指导下以及和在和同学的讨论过程中解决了这些困难和问题。
Z4
assume cs:code, ds:datas
datas segment
hex db 4 dup (0)
error db 13,10,'input error$' datas ends
code segment
start:
mov ax, datas
mov ds, ax
mov ah, 1h
mov bx, offset hex
jmp ts0
up0:
inc bx
ts0:
cmp bx, offset hex + 4
jge next0
int 21h
mov byte ptr [bx], al jmp up0
next0:
mov cl, 4
mov bx, offset hex
xor dx, dx
jmp ts1
up1:
inc bx
ts1:
cmp bx, offset hex + 4 jge blank
mov al, byte ptr [bx] cmp al, '0'
jl err
cmp al, '9'
jle below_ten
cmp al, 'A'
jl err
cmp al, 'F'
jle above_ten
cmp al, 'a'
jl err
cmp al, 'f'
jg err
above_ten: and al, 0fh add al, 9 below_ten: and al, 0fh shl dx, cl add dl, al jmp up1
blank:
mov bx, dx
mov ah, 2h mov dl, 13
int 21h sub dl, 3 int 21h
xor cx, cx mov ah, 2h stc
next1:
rcr cx, 1
jc done test bx, cx jnz ones mov dl, '0' int 21h jmp next1 ones:
mov dl, '1' int 21h jmp next1
err:
mov ah, 9h
mov dx, offset error
int 21h
done:
mov ax, 4c00h
int 21h
code ends
end start
Z3
DATA SEGMENT
BUFF1 DB 100
LEN1 DB ?
STR1 DB 100 DUP(?)
BUFF2 DB 100
LEN2 DB ?
STR2 DB 100 DUP(?)
DAT1 DB 0AH,0DH,'Please input character string1','$' DAT2 DB 0AH,0DH,'Please input character string2','$' DAT3 DB 'MATCH','$'
DAT4 DB 'NO MATCH','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX
MOV DX, OFFSET DAT1
MOV AH,09H
INT 21H
MOV DX,OFFSET BUFF1
MOV AH,0AH
INT 21H
MOV DX,OFFSET DAT2
MOV AH,09H
INT 21H
MOV DX,OFFSET BUFF2
MOV AH,0AH
INT 21H
MOV CL,LEN2
MOV BL,LEN1
CMP CL,BL
JNZ LP2
LP0: MOV SI,0
MOV DI,0
LP3: MOV AL,STR1[SI]
CMP AL,STR2[DI]
JNZ LP2
INC SI
INC DI
MOV AL,SI
CMP AL,CX
JNZ LP3
LP1:LEA DX,DAT3
MOV AH,09H
INT 21H
JMP LP4
LP2: LEA DX,DAT4
MOV AH,09H
INT 21H
LP4: MOV AH,4CH
INT 21H
CODE ENDS
END START
Z2
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
AR1 DB 'INPUT STRING,THE END FLAG IS $','$' BUFF DB 20
LEN DB ?
STR DB 20 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
XOR DI,DI
LEA DX,AR1
MOV AH,09H
INT 21H
LEA DX,BUFF
MOV AH,0AH
INT 21H
MOV CL,LEN
AND CX,00FFH BJ: MOV AL,STR[DI]
INC DI
CMP AL,30H
JB LP2
CMP AL,39H
JG LP2
INC BH
ADD AL,30H LP2: MOV DL,AL
MOV AH,02H
INT 21H
LOOP BJ
CRLF
ADD BH,30H
MOV DL,BH
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
Z1
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
BUFF DB 100
LEN DB ?
STR DB 100 DUP(?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX
MOV SI,0
LP1: LEA DX,BUFF
MOV AH,0AH
INT 21H
CRLF
MOV CL,LEN
AND CX,00FFH LP0: MOV AL,STR[SI]
CMP AL,61H
JB DISP
CMP AL,7AH
JG DISP
SUB AL,20H DISP: MOV DL,AL
MOV AH,2
INT 21H
INC SI
LOOP LP0
MOV AH,4CH
INT 21H CODE ENDS
END START。