微机原理课程设计报告(江苏大学)
微机原理课设报告
中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握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指向新字符重新开始比较等模块。
《微机原理课程设计》报告
《微机原理与接口技术课程设计》姓名:陆燕学号: 1245712103班级: 12电气1班专业:电气工程及其自动化学院:电气与信息工程学院江苏科技大学(张家港)《微机原理课程设计》江苏科技大学苏州理工大学2015年3月目录一、课程设计内容 (1)二、系统功能要求 (1)2.1 基本功能要求 (1)2.2 附件功能要求 (1)三、系统硬件设计 (1)4.1 系统硬件原理 (1)4.2 功能模块设计 (2)四、系统软件设计 (3)5.1 总体设计思想 (3)5.2 遇到问题及解决措施 (4)五、总结 (4)六、附录 (5)模拟交通灯控制系统设计一、课程设计内容模拟一个十字路口的交通灯控制系统,南北方向用2个LED灯分别表示直行指示灯和左转弯指示灯,东西方向用2个LED灯分别表示直行指示灯和左转弯指示灯。
指示灯亮表示为绿灯,可以通行;指示灯闪亮表示为黄灯,要快速通过或停止通过;指示灯灭表示为红灯,禁止通行。
二、系统功能要求2.1 基本功能要求(1)南北方向直行指示灯亮9秒,闪亮3秒后熄灭,南北方向左转指示灯亮10秒,闪3秒后熄灭。
东西方向直行和左转弯灯始终为灭。
(2)东西方向直行指示灯亮9秒,闪亮3秒后熄灭,东西方向左转指示灯亮10秒,闪3秒后熄灭。
南北方向直行和左转弯灯始终为灭。
(3)用LED数码管显示指示灯亮的时间。
(4)用8255A控制LED灯和LED数码管。
(5)用8254A计时,并在LED数码管上显示出来。
2.2 拓展功能要求(1)若用2个LED数码管显示时间,加分。
(2)若用按键手动设置通行时间,加分。
(3)其它具有特色的功能,加分。
三、系统硬件设计3.1 系统硬件原理1、8255A的方式选择控制字如表1所示。
表1. 8255A的方式选择控制字引脚信号:8255A的引脚如图1所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。
D7~D0:三态、双向数据线,与CPU数据总线连接,用来传送数据。
微机原理实验报告(江苏大学)
微机原理课程设计报告专业:学号:姓名:一:课程设计目的结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。
学会使用命令调用DOS观察程序运行结果,学会使用汇编语言编写程序,弄懂汇编程序的执行过程,弄懂汇编程序的上机过程以及如何运用MASM软件进行汇编程序的调试。
二:设计内容1.字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。
详细源程序如下:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTS1 DB'MATCH',0DH,0AH,'$'S2 DB'NO MATCH',0DH,0AH,'$'S3 DB'INPUT STRING1:',0DH,0AH,'$'S4 DB'INPUT STRING2:',0DH,0AH,'$'MAXLEN1 DB 81ACTLEN1 DB?STRING1 DB 81 DUP (?)MAXLEN2 DB 81ACTLEN2 DB?STRING2 DB 81 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET S3INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21HCRLFMOV AH,09HMOV DX,OFFSET S4INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN2INT 21HCRLFMOV SI,OFFSET STRING1MOV AH,[SI-1]MOV DI,OFFSET STRING2MOV AL, [DI-1]CMP AH,ALJGE GE1MOV CL,ALGE1: MOV CL,AHKKK: MOV AL,[SI]mov AH,[DI]CMP aH,ALJNZ NE1INC SIINC DILOOP KKKMOV AH,09HMOV DX,OFFSET S1INT 21HJMP EXITNE1: MOV AH,09HMOV DX,OFFSET S2INT 21HEXIT: MOV AX,4CHINT 21HCODE ENDSEND START以下是程序运行结果:2.从键盘输入数据并显示的设计为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII 码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。
微机原理课程设计报告文库
微机原理课程设计报告文库一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微机硬件结构及其功能;2. 学会分析微机工作原理,了解指令系统及编程方法;3. 掌握微机接口技术,了解常见接口芯片的功能和应用。
技能目标:1. 能够运用所学知识进行微机系统的简单设计和调试;2. 培养学生具备一定的微机编程能力,能够编写简单的汇编语言程序;3. 提高学生动手实践能力,能够进行基本的硬件焊接和电路搭建。
情感态度价值观目标:1. 培养学生对微机原理课程的兴趣,激发学生学习热情;2. 培养学生具备良好的团队合作意识,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生勇于探索新知识,提高自主学习能力。
课程性质:本课程为理论与实践相结合的课程,强调培养学生的动手实践能力和创新能力。
学生特点:学生已具备一定的电子技术和计算机基础,具有较强的学习能力和好奇心。
教学要求:教师应注重理论与实践相结合,引导学生主动参与课堂讨论,鼓励学生动手实践,培养学生解决问题的能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够掌握微机原理的基本知识,具备实际应用能力,为后续相关课程和未来职业发展打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 微机硬件结构:介绍微处理器、存储器、输入输出接口等硬件组件的工作原理和功能;教材章节:第一章 微机系统概述内容列举:CPU结构、存储器分类、I/O接口基础等。
2. 指令系统与编程:讲解汇编语言的基本指令、寻址方式、程序设计方法等;教材章节:第二章 指令系统与汇编语言内容列举:基本指令、汇编语言程序结构、循环、分支等编程技巧。
3. 微机接口技术:分析常见接口芯片的原理与应用,如并行接口、串行接口、定时器/计数器等;教材章节:第三章 微机接口技术内容列举:并行接口、串行接口、定时器/计数器接口芯片等。
4. 微机系统设计与实践:培养学生动手实践能力,进行简单的微机系统设计与调试;教材章节:第四章 微机系统设计与实践内容列举:硬件焊接、电路搭建、程序下载与调试等。
微机原理课程设计报告
微机应用系统设计与综合应用实验——(微机原理)课程设计报告专业班级学生姓名学生学号指导老师完成时间目录第一章设计课题概述 (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 课程设计目的《微机应用系统设计与综合实验(实践)》课程设计是自动化专业本科生必修的一门技术基础课。
通过本课程设计,让学生对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。
江苏大学微机原理课程设计
微机原理课程设计报告《微机原理》课程设计报告班级:xxx 姓名:xxx 学号:xxx一、目的结合微机原理课程的学习,进一步巩固所学只是,掌握汇编语言的编程要领,熟悉汇编程序上机过程以及进行程序调试。
二、设计任务,程序清单,流程图,实验结果任务1(具体题目要求):字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示:“MATCH”,否则,则显示“NO MATCH”程序清单:DA TA SEGMENTINPUT1 DB 'INPUT STRING1!',0DH,0AH,'$'INPUT2 DB 'INPUT STRING2!',0DH,0AH,'$'MAT DB 0DH,0AH,'MATCH!$'MISMAT DB 0DH,0AH,'NO MA TCH!$'LEN1 DB 20STRING1 DB 20 DUP(?)LEN2 DB 20STRING2 DB 20 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DATAMAIN PROC FARMOV AX,DA TAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET INPUT1INT 21HMOV AL,LEN1MOV BX,OFFSET STRING1MOV [BX],ALMOV AH,0AHMOV DX,OFFSET STRING1INT 21HCALL CRLFMOV AH,09HMOV DX,OFFSET INPUT2INT 21HMOV AL,LEN2MOV BX,OFFSET STRING2MOV [BX],ALMOV AH,0AHMOV DX,OFFSET STRING2INT 21HCALL CRLFCLDLEA SI,STRING1LEA DI,STRING2MOV CX,5REPE CMPSBJNE NOMATMOV AH,9MOV DX,OFFSET MATINT 21HJMP EXITNOMA T:MOV AH,9LEA DX,MISMA TINT 21HEXIT: MOV AH,4CHINT 21HCRLF PROC NEARMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HRETCRLF ENDPMAIN ENDPCODE ENDSEND MAIN结果任务2(具体题目要求)将键盘输入的小写字母转换为大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。
微机原理课程设计报告
电子信息工程系课程设计报告班级:姓名:学号:课程名称:学时学分:指导教师:二○一二年一月十日(一)课程设计目的:综合运用《微机原理与应用》课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高软硬件设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。
(二)课程设计内容及要求:8255A应用——交通灯控制1)、设计目的●掌握8255A方式0的使用与编程方法● PC机及配套的接口电路实验装置● IC芯片:8255A应用2)、内容●采用8255A设计交通灯控制的接口方案●插接电路●编写控制程序3)、设计步骤(1)方案设计考虑普通十字路口,交通灯的控制可分东西向和南北向两组,每组可用红、黄、绿三个灯进行交通管理,所以本方案要点是对六个交通灯进行控制。
由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。
开关量的输出可以采用8255A的端口,由于开关量有6位,所以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。
(2)电路插接本实验利用装置提供的8255A芯片和逻辑电平显示器进行。
(3)编程与运行(三)详细设计:(一)、通过8255A控制四个方向交通灯的状态的过程:<1>、确定8255A端口与交通灯的连接方式,假定采用端口A,按以下方式连接:东西向:红灯接PA0,黄灯接PA1,绿灯接PA2;南北向:红灯接PA4,黄灯接PA5,绿灯接PA6。
6个交通灯所有可能的状态:状态PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PA 状态说明0 0 0 0 0 0 0 0 0 00 关灯1 0 0 0 1 0 1 0 0 14 南北:红东西:绿2 0 0 0 1 0 0 1 0 12 南北:红东西:黄3 0 0 0 1 0 0 0 0 10 南北:红东西:关4 0 1 0 0 0 0 0 1 41 南北:绿东西:红5 0 0 1 0 0 0 0 1 21 南北:黄东西:红6 0 0 0 0 0 0 0 1 01 南北:关东西:红状态变换的流程为:○ 1○2○3○4○5○6其中,状态1和4持续30秒,其他状态持续0.5秒,又状态2和3,状态5和6之间各循环5次。
江苏大学微机原理与接口技术报告
微机原理与接口技术课程设计——数据采集班级网络1101学号3110610007姓名平淑容指导老师马学文二零一四年一月十一号目录1.任务要求……………………………………………..P22.系统硬件原理………………………………………...P23.流程图………………………………………………...P34.程序代码及注释……………………………………..P65.总结…………………………………………………..P13一、任务要求先通过键盘矩阵设置压力的最大值和最小值并在数码管上显示出来(其中A键表示设置最小值,B键表示设置最大值),然后对一路压力信号进行连续8次数据采集,将8次数据的平均值与所设置的极限值作比较,在其范围之内就在数码管上显示,超出范围则是一个二极管发光。
二、系统硬件原理本次试验所需要用到的硬件及其原理与使用如下:(1)拨码开关:将拨码开关SW2拨上。
表示将GAL20V8的地址输入A-5接至系统地址线A5;A-6接至地址线A6;A-7接至地址线A7。
(2)压力实验模块的“压力输出”端接至ADC0809的输入端IN0(3)0809的EOC的输出端与8259的IRQ0端相连,0809的CS连CS8(3E0H)。
(4)8259的片选CS-1连地址输出CS6(3A0H),8259的INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V。
(5)8255并行模块下方的4个片选信号CS-1、CS-2、CS-3和CS-4分别与地址译码输出模块的对应引脚(实验箱中部的CS-1、CS-2、CS-3和CS-4)连接。
(6)将一个二极管与第四片8255A的A口连接,该二极管用于报警,当8次压力值的平均值在所设范围之内则熄灭,超出范围二极管便亮。
(7)74系列模块中开放的3根输出信号和4根输入信号对键盘进行控制。
键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0和开放的输出信号P0相连,片选信号CS2接CS2(320H)。
江苏大学 微型计算机原理实验(9学时)-new
实验要求:
• 实验前预习,提前编写预习程序。 实验前预习,提前编写预习程序。 • 实验时按学号对应机号入座,并签到, 实验时按学号对应机号入座,并签到, 做完实验请通知老师。 做完实验请通知老师。 • 实验时不要带电触摸芯片,不可随意拔 实验时不要带电触摸芯片, 插芯片。有要求接线的实验, 插芯片。有要求接线的实验,请务必先 断电再接线。出现问题及时联系老师。 断电再接线。出现问题及时联系老师。 • 实验完整理好再离开。 实验完整理好再离开。 • 注意室内卫生。 注意室内卫生。
3、中断服务程序
1)显示M字符 显示M mov al,’M’ mov ah,1 int 14h ;系统功能调用 2)次数减1 次数减1 发出中断结束命令OCW OCW2 3)发出中断结束命令OCW2 4)中断返回
①连接成功
装载文件_F3 ①装载文件_F3
②观察各窗口信息
主要观察程序CS窗、R窗等
③设置断点
在程序代码窗中找到程序最后一条语句,按下 Ctrl-F8设置断点,该行处由黄变红。
带断点运行程序_F9 ③带断点运行程序_F9
按下F9,该行处由红变白。在R窗中ip由0000变 为0022,分析程序知CX内存放Y的个数。
移动光标到指定单元处,修改数据。
⑤运行程序
先按下F5(或修改R窗中的ip=0000); 再按下F9带断点运行; 分析Memory窗中数据显示。
实验二: 实验二:程序设计及调试
一、实验目的
1.掌握分支、循环等基本程序结构及程序设计方法。 2.掌握用FD88调试软件调试程序。
二、实验内容 实验内容
四、实验报告要求
1. 写出程序清单并画出程序流程图。 2. 写出数据及调试结果。(观察地址指针、计数器变 化)
微机原理课设报告
一、设计目的:
1、掌握汇编语言,会利用汇编语言编写一定功能的程序; 2、熟悉 DOS 环境以及在 DOS 下会调试编写好的汇编程序; 3、熟悉常用的 DOS 功能; 4、小组合作完成设计题目。
河北科技大学
二、设计任务与要求:
1、设计密码校验程序; 2、程序设计基本要求:
1) 菜单 内容包括:①输入密码(字符串);②密码校验;③退出。
DATA SEGMENT
MENU DB 5 DUP(0AH) ;预设 5 个字节单位,初始值均为 0AH
DB 32 DUP(' '),'MAIN MENU',0DH,0AH
DB 25 DUP(' '),201,22 DUP(205),187,0DH,0AH
DB 25 DUP(' '),186,' 1.SET THE PASSWORD',3 DUP
DB 29 DUP(' '),'CHOICE(1,2,3):$'
MESG DB 0DH,0AH,0DH,0AH,9,'PRESS ANY KEY TO EXIT ...$'
PASS DB 0DH,0AH,9,'ENTER YOUR PASSWORD: $'
YES DB 0DH,0AH,9,'PASSWORD CORRECT!$'
MOV DS,AX
CLD
;进位标志置 0
AGAIN: MOV AX,3
7
河北科技大学
INT 10H
;读光标位置
LEA DX,MENU
MOV AH,09H
INT 21H
;输出字符串
大学微机原理实验报告(3篇)
第1篇实验名称:微机原理实验实验日期:2023年10月25日实验地点:计算机实验室实验教师:[教师姓名]实验学生:[学生姓名]班级:[班级名称]一、实验目的1. 理解微机原理的基本概念和组成结构。
2. 掌握微机硬件的基本操作和调试方法。
3. 熟悉汇编语言编程和程序调试技巧。
4. 通过实验加深对微机原理课程的理解,提高动手能力。
二、实验内容本次实验主要分为以下几个部分:1. 微机硬件系统结构认识:了解微机硬件系统的组成,包括CPU、内存、I/O接口等,熟悉各部件的功能和相互关系。
2. 汇编语言编程:学习汇编语言的基本语法和指令系统,编写简单的汇编程序,实现特定功能。
3. 程序调试:使用调试工具(如DEBUG)对汇编程序进行调试,查找并修正错误。
4. 微机原理实验:完成以下实验任务:1. 编写程序实现两个多位十进制数的相加。
2. 编写程序实现字符串比较功能。
3. 编写程序实现乘除法运算。
三、实验步骤1. 微机硬件系统结构认识:- 观察实验室中的微机硬件系统,了解各部件的连接方式和功能。
- 使用示波器检测实验装置的信号是否正常。
2. 汇编语言编程:- 学习汇编语言的基本语法和指令系统。
- 编写程序实现两个多位十进制数的相加,程序如下:```;加数DATA1 DB 3,4,5,6,7;被加数DATA2 DB 2,3,4,5,6;结果SUM DB 5 DUP(0);程序开始MOV CX, 5 ;循环次数MOV AL, 0 ;结果初始化为0MOV SI, OFFSET DATA1 ;加数地址MOV DI, OFFSET DATA2 ;被加数地址ADD_LOOP:ADD AL, [SI] ;加数加到AL寄存器ADC AL, [DI] ;进位加到AL寄存器MOV [DI], AL ;结果存回DI寄存器ADD SI, 1 ;加数地址加1ADD DI, 1 ;被加数地址加1LOOP ADD_LOOP ;循环;程序结束```- 编写程序实现字符串比较功能,程序如下:```;字符串1STRING1 DB 'Hello';字符串2STRING2 DB 'World';比较结果RESULT DB 0;程序开始MOV SI, OFFSET STRING1 ;字符串1地址MOV DI, OFFSET STRING2 ;字符串2地址CMP_LOOP:MOV AL, [SI] ;读取字符串1的当前字符CMP AL, [DI] ;与字符串2的当前字符比较 JNE NOT_EQUAL ;不相等则跳转到NOT_EQUAL INC SI ;字符串1地址加1INC DI ;字符串2地址加1LOOP CMP_LOOP ;循环MOV RESULT, 1 ;相等则将结果设置为1JMP END ;跳转到ENDNOT_EQUAL:MOV RESULT, 0 ;不相等则将结果设置为0END:;程序结束```- 编写程序实现乘除法运算,程序如下:```;被乘数DATA1 DB 10;乘数DATA2 DB 5;结果PRODUCT DB 0;程序开始MOV AL, [DATA1] ;被乘数加载到AL寄存器MUL [DATA2] ;乘数乘到AL寄存器MOV [PRODUCT], AL ;结果存回PRODUCT;程序结束```3. 程序调试:- 使用DEBUG工具对汇编程序进行调试,查找并修正错误。
微机原理课程设计报告
目录一、课题任务 (2)二、程序功能描述及程序流程 (3)1、程序功能描述 (3)2、程序流程图 (3)三、程序源代码及注释 (4)四、DOS/BIOS功能调用,文件列表清单 (6)五、源程序调试 (9)六、调试中出现的问题 (12)七、总结 (12)一、课题任务1·要求利用80x86汇编语言BIOS中断调用的方法,通过‘*’字符设计自己的名字,并在显示器上用6种以上的颜色显示出来。
2·分析1)BIOS中断调用:BIOS常驻ROM,独立于DOS,可与任何操作系统一起工作。
它的主要功能是驱动系统所配置的外部设备,如磁盘驱动器、显示器、打印机、及异步通讯借口等。
通过INT10H~1AH向用户提供服务程序的入口,使用户无需对硬件有深入的了解,就可以完成对I/O设备的控制与操作。
BIOS中断调用与DOS功能调用类似。
2)图形设计:掌握BIOS中断调用INT 10H的13H功能。
注意13H号功能入口参数的要求。
3)颜色显示:在彩色显示屏幕上每个字符在存储中用两个字节表示。
一个字节保存字符的ASCII码,另一个字节保存字符的属性。
BIOS中断调用INT 10的13H号功能是显示字符串,字符的属性在BL中。
二、程序功能描述及程序流程1·程序功能使得自己的名字可以在显示器上用6种以上的颜色显示出来。
2·程序流程图三、程序源代码及注释ROW =0 ;显示信息的行号COLUM=00 ;列号ESCKEY=1BH ;ESC键的ASCII码制;数据段DSEG SEGMENTMESS DB '+-----------------------------------------------------------------------------+',0DH,0AHDB '************ ** ** *** ||',0DH,0AHDB ' * ** ** * ||',0DH,0AHDB ' * ** ** *******************************||',0DH,0AHDB ' * ** ** * *||',0DH,0AHDB ' * ** ** * *||',0DH,0AHDB '************ ** ** * *||',0DH,0AHDB '* ** ** ************** ||',0DH,0AHDB '* *** ** ||',0DH,0AHDB '* ************** ** ||',0DH,0AHDB '* *** ********************** ||',0DH,0AHDB '************ *** ** ||',0DH,0AHDB ' ** ** * ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' **** **** ** **** ||',0DH,0AHDB ' *** *** ** *** ||',0DH,0AHDB ' ** ** *** ** ||',0DH,0AHDB ' * * ***** ||',0DH,0AH MESS_LEN=$-OFFSET MESS ;显示信息长度COLORB DB 07H,01H,0FH,70H,74H,04H,0EH ;颜色COLORE LABEL BYTEDSEG ENDS;代码段CSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:DSEGSTART: MOV DI,OFFSET COLORB-1 ;颜色指针初值NEXTC:MOV AX,DSEGMOV DS,AX ;设置数据段段值MOV ES,AXINC DI ;调整颜色指针CMP DI,OFFSET COLORE ;是否超过指定的最后一种颜色JNZ NEXTE ;否MOV DI,OFFSET COLORB ;是,重新指定第一种颜色NEXTE:MOV BL,[DI] ;取颜色MOV SI,OFFSET MESS ;取显示信息指针MOV CX,MESS_LEN ;取显示信息长度MOV DH,ROW ;置显示开始行号MOV DL,COLUM ;置显示开始列号CALL ECHO ;显示MOV AH,0INT 16HCMP AL,ESCKEY ;是否为ESC键JNZ NEXTC ;不是,继续MOV AX,4C00H ;结束INT 21HECHO PROC NEARMOV AX,0B800HMOV DS,AXMOV AL,80 ;计算显示开始位置偏移MUL DH ;偏移=(行号*80+列号)*2 XOR DH,DHADD AX,DXADD AX,AXXCHG AX,BXMOV AH,AL ;属性值保存到AH寄存器JCXZ ECHO2 ;显示信息长度是否ECHO1:MOV AL,ES:[SI] ;取一要显示字符代码INC SI ;调整指针MOV [BX],AX ;送显示存储区,即显示INC BX ;准备显示下一个字符INC BXLOOP ECHO1 ;循环显示ECHO2:RET ;返回ECHO ENDPCSEG ENDSEND START四、DOS/BIOS功能调用1.文本显示方式:所谓文本显示方式是指以字符为单位的显示方式。
微机原理课程设计报告
微型计算机技术课程设计指导教师:班级:姓名:学号:班内序号:课设日期:_________________________目录一、课程设计题目错误!未定义书签。
二、设计目的错误!未定义书签。
三、设计内容错误!未定义书签。
四、设计所需器材与工具3五、设计思路错误!未定义书签。
六、设计步骤(含流程图和代码)错误!未定义书签。
七、课程设计小结36一、课程设计题目:点阵显示系统电路及程序设计利用"汇编语言与微型计算机技术"课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。
二、设计目的1.通过本设计,使学生综合运用"汇编语言与微型计算机技术"、"数字电子技术"等课程的内容,为今后从事计算机检测与控制工作奠定一定的根底。
2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。
三、设计内容1.点阵显示系统启动后的初始状态在计算机显示器上出现菜单:dot matrix display system1.←left shift display2.↑up shift display3.s stop4.Esc Exit2.点阵显示系统运行状态按计算机光标←键,点阵逐列向左移动并显示:"微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓〞。
按计算机光标↑键,点阵逐行向上移动并显示:"微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓〞。
按计算机光标s键,点阵停顿移动并显示当前字符。
3.完毕程序运行状态按计算机Esc键,完毕点阵显示系统运行状态并显示"停〞。
微机原理课程设计报告
目录一.设计内容 (1)二.设计原理及方案 (1)三.汇编源程序代码 (2)四.实施结果 (10)五.课程设计体会 (13)六.参考文献 (14)一.设计内容利用DAC设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,要求自行设计波形输出的切换方式。
主要功能:本题用到8255,dac0832芯片1.产生四种波形2.键盘切换波形3.数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波)二.设计原理及方案设计原理:D/A转换器(DAC0832)产生各种波形的原理:利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如三角波、正弦波、锯齿波、方波等。
8255A实现波形切换:从8255的C口读入外接开关的信号,CPU读入不同信号值,从而执行不同的代码,向D/A转换器传送不同的数据,控制D/A转换器输出三角波、正弦波、锯齿波、方波等。
通过键盘切换波形,DAC0832输出各种波形,同时共阴极数码管显示按键号:1-三角波,2-正弦波,3-锯齿波,4-方波。
电路原理图(设计连接图):三.汇编源程序代码;***********************功能说明*****************************;题目二利用D/A设计波形发生器;利用D/A设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,;至少设计一种波形切换方式。
;功能:本项目用到8255,DAC0832芯片; 1 产生四种波形; 2 键盘切换波形; 3 数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波);************************主程序******************************io3 EQU 600h ;8255io4 EQU 800h ;DAC 0832;********************************数据段定义data segmentsin_wave db 200,195,181,159,131db 100,69,41,19,5,0,0 ;正弦波幅值LED DB 06H,5BH,4FH,66H ;共阴极段码表data ends;********************************code segmentassume cs:code,ds:datastart: mov ax,data ;建立DS段地址 mov ds,axcall jian;********************************三角波san: mov Bx,255SAN3: MOV CX,BXmov al,0mov dx,io4san1: out dx,al ;三角波形上升段call delayinc alloop san1mov cx,BXmov al,BLmov dx,io4san2: out dx,al ;三角波形下降段 call delaydec alloop san2call jian;************************************正弦波sin: mov cx,11mov bx,0mov dx,io4lea si,sin_wavesin1: mov al,[si][bx] ;正弦波下降段 out dx,alcall delay1inc bxloop sin1mov cx,11sin2: mov al,[si][bx] ;正弦波上升段 out dx,alcall delay1dec bxcall jian;***************************************锯齿波juchi: mov Bx,255juchi1: mov cx,bxmov al,blmov dx,io4juchi2: out dx,al ;下降沿call delaycall delaydec alloop juchi2call jian;***************************************方波fang: mov Bx,255fang1: mov al,bl ;高电平段mov dx,io4out dx,alcall delay1MOV al,0 ;低电平段out dx,alcall delay1;****************************************延时delay proc ;延时子程序一push axpush bxpush cxpush dxmov cx,50lp0: noploop lp0pop dxpop cxpop bxpop axretdelay endpdelay1 proc;延时子程序二push axpush bxpush cxpush dxmov cx,1250loop lp1pop dxpop cxpop bxpop axretdelay1 endp;****************************************键盘选波形jian proc nearjian1: mov al,10001000B ;c口高四位输入MOV DX,io3+6HOUT DX,AL ;送控制字MOV AL,0MOV DX,io3+4HOUT DX,AL;c口低四位为0即行输出为0 nokey: in al,dx ;读c口高四位and al,0f0H ;屏蔽c口低四位cmp al,0f0Hjz nokey ;无键按下则循环call delay1 ;延时in al,dxshr al,1 ;列信息存于al低四位 shr al,1shr al,1shr al,1mov bl,0 ;初始列变量BL为0mov cx,4jian2: shr al,1 ;逐列检测,找出为0信号jnc jian3inc blloop jian2jian3: mov al,10010001b ;c口低四位输入mov dx,io3+6hout dx,al ;送控制字mov al,0mov dx,io3+4hout dx,al ;c口高四位为0即列输出为0in al,dxand al,0fh ;屏蔽高四位cmp al,0fhjz jian1 ;出错从头来mov bh,0 ;初始行变量为0mov cx,4jian4: shr al,1jnc jian5inc bh ;初始行变量BH为0loop jian4jian5: shl bh,1shl bh,1add bh,bl ;BH为键号MOV CH,BH ;保存键号在ch中MOV AL,BH ;数码管显示波行号LEA BX,LED ;1三角波2正弦波3锯齿波4方波 XLA Tout dx,alMOV DX,IO3+2OUT DX,ALMOV BX,155 ;幅值一MOV DX,IO3IN AL,DXcmp ch,0jz sancmp ch,1jz sincmp ch,2jz juchicmp ch,3jz fangretjian endpcode endsend start四.实施结果(1)键盘选择1——三角波(2)键盘选择2——正弦波(3)键盘选择3——锯齿波:(4)键盘选择4——矩形波五.课程设计体会在为期近两周的微机原理课程设计中,我们小组利用所学微机的理论知识进行软硬件整体设计,同时锻炼了我们理论联系实际,提高我们的综合应用能力。
微机原理课程设计报告_14
并行接口芯片8255A的应用——键盘与数码管一、设计内容8255A是通用的可编程并行接口芯片, 可以直接与8066CPU连接使用, 在微机系统中应用较为广泛。
它有三个并行输入/输出端口, 可通过编程为端口设置多种工作方式以及规定端口的输入输出方向, 使用灵活、通用性强。
8255A的三个端口, A口可以工作在方式0、1或2, B口可以工作在方式0、1, C口只能工作在方式0。
方式0是基本型输入输出, 和外设交换数据时不需要联络线。
方式1为选通型输入输出, 端口和外设之间需要联络信号。
方式3是双向数据传输。
8255A的控制字分工作方式控制字和端口C置位/复位控制字。
工作方式控制字有8位。
最高位D7为标志位, D7=1表示控制寄存器里是工作方式控制字, D7=0表示存放的是C口置位/复位控制字。
C口可以进行位操作, 对8255C口的每一位进行置位或清零操作。
C口置位/复位控制字各位含义如下称为a,b,c,d,e,f,g, 有的还附带小数点h。
LED数码管有共阴极和共阳极两种结构。
通过7个发光段的不同组合, 可显示0~9和A~F以及某些数字。
由于发光二极管发光时, 通过的平均电流为10~20mA, 而通常的输出锁存器不能提供这么大的电流, 所以LED各段必须接驱动电路。
在本设计中用到矩阵型键盘, 在按键较多的应用场合, 矩阵键盘可以减少与微机系统接口的连线, 是一般微机常用的键盘结构。
矩阵键盘的按键排成n行m列, 每个按键占据行列的一个交叉点, 需要的输入输出线为n+m, 最大按键数为n×m。
在本课程设计主要对8255A芯片在键盘与数码管的应用上进行设计。
设计基本思路为8255A的3个并行口, 选用C口的低4位和高4位分别接4(4键盘的行列信号线, 选用B口接LED, 选用A口驱动数码管, 数码管采用静态共阴极接法。
实现当有一按键按下时, LED和数码管均能显示其按键值。
同时利用Proteus7.8sp2软件对由8255A连接的电路进行仿真运行。
微机原理课设报告
河北科技大学课程设计报告学生姓名:学号:专业班级:电子信息工程课程名称:微型计算机原理及应用技术学年学期: 2 0 11 —2 0 12 学年第 1 学期同组人员:指导教师:赵艳2 0 13年12月课程设计成绩评定表目录一、设计目的----------------------------------------4二、设计任务与要求----------------------------------4三、设计内容----------------------------------------5四、实施效果----------------------------------------10五、设计体会----------------------------------------12六、参考资料----------------------------------------101、掌握汇编语言,会利用汇编语言编写一定功能的程序;2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;3、熟悉常用的DOS功能;4、小组合作完成设计题目。
二、设计任务与要求:1、设计密码校验程序;2、程序设计基本要求:1)菜单内容包括:①输入密码(字符串);②密码校验;③退出。
2)输入字符串选择该项后,可以输入一个字符串。
该字符串作为密码校验中的已知密码。
3)密码校验输入字符串,若所输入的字符串与密码不一致则提示:“PASSWORD ERROR!”,并重新提示输入密码,当错误输入三次时退出软件返回DOS。
若所输入的字符串与密码一致则提示:“PASSWORD CORRECT!”,并返回主菜单。
4)在主菜单中选择退出项,则结束程序返回DOS。
1、使用的DOS功能:1) 显示字符串 MOV AH,09HINT 21H ;入口参数DS:DX=缓冲区2) 键盘输入一个字符 MOV AH,01HINT 21H ; AL=输入的字符3)终止当前程序并返回调用程序 MOV AH,4CHINT 21H ;AL=退出码4)输入字符串 MOV AH,0AHINT 21H ;入口参数DS:DX=缓冲区2、使用的BIOS功能:1)设置光标位置,出口参数DH=当前字符行号、DL=当前字符列号、CH=光标起始栅线: MOV AX,03H;INT 10H2) MOV AL,0AH;在光标位置显示字符INT 10H3) MOV AH,0;从键盘读字符INT 16H3、使用工具和软件:计算机和MASM汇编软件4、流程图:5、程序与分析:DATA SEGMENTMENU DB 5 DUP(0AH) ;预设5个字节单位,初始值均为0AHDB 32 DUP(' '),'MAIN MENU',0DH,0AHDB 25 DUP(' '),201,22 DUP(205),187,0DH,0AHDB 25 DUP(' '),186,' 1.SET THE PASSWORD',3 DUP (20H),186,0DH,0AH DB 25 DUP(' '),186,' 2.CHECK THE PASSWORD',1 DUP (20H),186,0DH,0AHDB 25 DUP(' '),186,' 3.RETURN TO DOS ... ',20H,186,0DH,0AH DB 25 DUP(' '),200,22 DUP(205),188,0DH,0AHDB 29 DUP(' '),'CHOICE(1,2,3):$'MESG DB 0DH,0AH,0DH,0AH,9,'PRESS ANY KEY TO EXIT ...$'PASS DB 0DH,0AH,9,'ENTER YOUR PASSWORD: $'YES DB 0DH,0AH,9,'PASSWORD CORRECT!$'NO DB 0DH,0AH,9,'PASSWORD ERROR!$'TIPS DB 0DH,0AH,9,'INPUT A STRING: $'MSG1 DB 255,0MSG2 DB 255,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCLD ;进位标志置0AGAIN: MOV AX,3INT 10H ;读光标位置LEA DX,MENUMOV AH,09HINT 21H ;输出字符串INPUT: MOV AH,1INT 21H ;从键盘读字符,AL=字符码,AH=扫描码CMP AL,'1'JNZ CP2CALL SUB01 ;程序跳转JMP AGAINCP2: CMP AL,'2'JNZ CP3CALL SUB02 ;字符串左右移动JC EXITJMP AGAIN ;返回到主菜单CP3: CMP AL,'3' ;返回DOSJNZ INPUTEXIT: LEA DX,MESGMOV AH,9INT 21H ;输出字符串MOV AH,1INT 21H ;键盘输入单字符MOV AH,4CHINT 21HSUB01: MOV AX,3INT 10H ;读光标位置LEA DX,TIPSMOV AH,9INT 21H ;输出字符串LEA DX,MSG1MOV AH,0AHINT 21H ;输入字符串MOV AH,0AHINT 10H ;在光标位置显示字符 RET ;过程返回SUB02: MOV AX,3INT 10H ;读光标位置CLC ;进位标志清0PUSH DS ;压入堆栈POP ES ;弹出堆栈MOV BP,3SSS: LEA DX,PASSMOV AH,9INT 21H ;显示字符串LEA DX,MSG2MOV AH,0AHINT 21H ;输出字符串MOV CH,0MOV CL,MSG1+1CMP CL,MSG2+1JNZ CUOWUINC CXREPZ CMPSB ;当等于/为0时重复JCXZ RIGHT ;CX为0转移CUOWU: LEA DX,NOMOV AH,9INT 21HDEC BPJNZ SSSSTC ;进位标志位置1JMP OKRIGHT: LEA DX,YESMOV AH,9INT 21HOK: MOV AH,1INT 21HRETCODE ENDSEND START6、分组和自己对小组做的贡献:我与同组组员合作,主要负责编写程序的密码校验部分,以及各自搜集相关资料。
微机原理课设报告
中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理课程设计电气学院一.课程设计目的:结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。
学会使用全屏幕编辑程序——PE,弄懂汇编程序的上机过程以及如何运用DEBUG软件进行汇编程序的调试。
二.课程设计的任务:1.字符串匹配的设计:掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,显示“NO MATCH”。
2.从键盘输入数据并显示的设计:掌握接收键盘数据的方法,并了解将键盘数据显示时需转换为ASCII码的原理。
编写程序,将键盘接收的到的四位十六进制数据转换为等值的二进制数,再显示在终端上。
3.响铃设计:掌握响铃的使用方法。
编写程序,从键盘接收输入字符,如是数字N,则响铃N次;如不是数字,则不响。
4.将键盘输入的小写字母转换为大写字母:了解小写字母和大写字母在计算机内的表示方法,并学习如何转换。
编写程序,接收键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。
5.接收年,月,日信息并显示的设计:掌握响铃使用方法,并掌握年,月,日输入方法。
编写程序,先显示“WHAT IS THE DATE(MM/DD/YY)?”并响铃一次,然后接收键盘输入的月/日/年信息,并显示。
在以上几个任务中,我主要研究的是最后一个,年月日的信息显示,下面是程序流程图:三.实验程序:CRLF MACROMOV AH,02H MOV DL,0DH INT 21HMOV AH,02H MOV DL,0AH INT 21HENDM ;宏定义,回车换行 DA TA SEGMENTMESS DB 'what is the date?(MM/DD/YY)',0DH,0AH,'$'MESS1 DB 'month wrong,input again:',0DH,0AH,'$'MESS2 DB 'day wrong,input again:',0DH,0AH,'$'ERROR DB 'input wrong ,input again',0DH,0AH,'$'MARK DB ?REG DW ?DA TA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DA TA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV SP,TOP ;程序初始化HEAD: MOV MARK,0 ;清除错误标志MOV AH,09HMOV DX,OFFSET MESSINT 21H ;9号功能调用,显示提示信息MOV AH,02HMOV DL,07HINT 21H ;响铃1次CALL GETNUM ;接收键入的月值CMP MARK,01HJE HEADPUSH DXCALL GETNUM ;接收键入的日值CMP MARK,01HJNE K1POP DXJMP HEADK1: PUSH DXCALL GETNUM ;接收键入的年值CMP MARK,01HJNE K2POP DXPOP DXJMP HEADK2: MOV AX,DXCALL DISP;显示年值NOPMOV AH,02HMOV DL,'-' ;显示`-`INT 21HPOP DX ;将日值送入DXPOP AX ;将月值送入AXPUSH DX ;再将日值压入堆栈,进行保护MOV REG,AXAND AX,00FFH ;判断月值是否正确CMP AX,0012HJBE W1MOV AH,09HLEA DX,MESS1INT 21HJMP STARTW1: MOV AX,REGCALL DISPPMOV AH,02HMOV DL,'-'INT 21HPOP AX ;将日值放入AXMOV REG,AXAND AX,00FFHCMP AX,31H ;判断日值是否正确JBE W2MOV AH,09HLEA DX,MESS2INT 21HJMP STARTW2: MOV AX,REGCALL DISPP ;显示日值MOV AX,4C00HINT 21H ;返回DOSDISPP PROC NEARMOV BL,ALMOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPLMOV DL,BLAND DL,0FHCALL DISPLRETDISPP ENDPDISPL PROC NEARADD DL,30HCMP DL,3AHJB DDDADD DL,07HDDD: MOV AH,02HINT 21HRETDISPL ENDPDISP PROC NEARPUSH BXPUSH CXPUSH DXPUSH AXMOV AL,AHCALL DISPPPOP AXCALL DISPPPOP DXPOP CXPOP BXRET ;显示子程序DISP ENDPGETNUM PROC NEARPUSH CXXOR DX,DXGGG: MOV AH,01HINT 21HCMP AL,0DHJZ PPPCMP AL,20HJZ PPPSUB AL,30HCMP AL,0JB KKKCMP AL,0AHJB GETSJMP KKKGETS: MOV CL,04SHL DX,CLXOR AH,AHADD DX,AXJMP GGGKKK: PUSH AXPUSH DXMOV AH,09HMOV DX,OFFSET ERRORINT 21HMOV MARK,01HPOP DXPOP AXPPP: PUSH DXMOV AH,02HMOV DX,07HINT 21HCRLFPOP DXPOP CXRETGETNUM ENDPCODE ENDSEND START四.心得体会在这短短一周的微机原理课程设计中,通过查阅书籍,上网查找资料,再加上老师和同学的帮助,我完成了老师布置的任务,学到了很多的东西,感觉获益良多。
在这一周里,应该说并不是很轻松,因为以前学到的都是课本上的基础知识,虽然也有上机课程,但是一学期就几节,而且编的只是一些小程序。
而在这段时间,我们的主要任务就是编程,不仅要编出来,还要进行实际的操作运行得出正确的结果,这就让我们将平常所学的理论知识与实践相结合了起来,同时也让我们对DOS系统有了更进一步的了解。
其实,在书上的13个程序中,前九个里除了钢琴设计我没有怎么研究外,别的都或多或少有看过或者与同学讨论过,但最后归总下来,以上的五个程序是我比较了解的,尤其是上面写出的实例,也就是年,月,日的显示设计,我花费了很多时间。
这个程序主要是掌握响铃的使用方法以及年,月,日的输入方法。
响铃比较简单,主要用一个7号功能调用;而年,月,日的输入就让我有些头痛了,需要考虑很多的问题,因为输入的是月,日,年,而显示的是年-月-日这样的信息,开始时我很不理解,不知道从哪里下手,后来通过资料等我采用了堆栈的方法,解决了这个问题,然后就要考虑输入信息的判断问题,首先是输入的是否是数字,然后要考虑输入的数字必须在0~9之间,且要将ASCII码转换为四位十六进制数,然后对四位十六进制数逐位的进行显示,最后注意输入的月份要在1~12之间,日子则要在1~31之间;将以上所有注意点进行联系整编最后才得出了结果。
中间少不了不断进行修改调试的过程,当看到最后运行出正确结果时真的很开心,感觉自己的努力获得了回报。
可能我编的程序有些复杂,因为里面采用了很多的调用,但是总的思路还是比较明朗的,其实我主要就是将它分块了,一个小块代表一个功能,最后整合了一下得出了结果。
总的来说,我觉得我所完成的这五个程序是有共同点的,当中最常用的就是回车换行的调用,9号功能的调用(使字符串在屏幕上输出),1号功能调用(从键盘键入字符),以及0A功能的调用。
对于第一个字符匹配程序主要就是设置字符串缓冲区,9号和0A功能的调用,要先判断两个字符串长度,如不等,则直接显示“NO MA TCH”,相等,再逐个字符进行比较;第二个程序从键盘输入并显示的设计,这个程序我也研究了很久,其主要核心是四位十六进制转换为等值的二进制,当输入数字大于9时,需减7处理,还有就是16位逐个输出;第三个响铃设计,比较简单,需要注意的是延迟时间的设置,输入一个0~9的数字便响铃几次;第四个是大小写字母转换,主要就是与a和z比较,在此范围内就进行转化;我没写在上面的像是排序的设计,主要就是采用了内外循环的语句,用冒泡法得出结果。
我编写程序的过程在老师看来可能有点乱,我是先研究题目需要我们做什么,如果可以的话,可以先把它分开,罗列成一个个小程序,然后试着顺一遍,画出简单的流程图,看自己需要哪些变量与寄存器,最后开始整合,写出框架,具体再细分,全部完成之后进行调试,再一步步完善,当然,在这个过程中向同学讨教了很多,也参阅了很多的资料,但最终还是得到了一个结果。
也学到了一些方法和知识。
这不是第一次编程,但是我觉得这确实是一次系统的历练吧,让我们大家在这一周的时间里不需要上别的什么课程,可以专心致志,心无旁骛的研究微机原理这门课,大家可以互相讨论,发表各自的看法与观点,可以借助于书籍或是网络查找资料,给我们提供了一个很好的学习的机会与平台。
唯一觉得有点不足的是我觉得课程设计的时间有些短,感觉做五个任务有些赶,如果可以的话,真的很希望可以有更多的时间来学习这门课程。
但不管怎样,我还是觉得在这短短一周的学习中我学到了很多!。