微机原理与接口技术实验三
微机原理及接口技术实验报告
《微机原理与接口技术》实验报告姓名:学号:班级:专业:电气工程及其自动化学院:电气与信息工程学院目录实验一数据传送 (2)实验二算术运算 (4)实验三代码转换 (6)实验四程序的基本结构 (9)1、分支程序 (9)2、循环程序 (13)3、子程序 (16)实验五中断实验(8259) (19)实验六并行接口实验(8255) (25)实验七定时器/计数器实验(8235) (31)实验八D/A接口实验 (36)实验九A/D接口实验 (40)实验十串行通信实验 (43)实验一数据传送一、实验目的1. 掌握与数据有关的不同寻址方式。
2. 继续熟悉实验操作软件的环境及使用方法。
二、实验设备PC微机一台、TD-PIT + 或TD-PIT ++ 实验系统一套。
三、实验内容本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
四、实验步骤(1) 运行Tdpit 集成操作软件,编写实验程序。
(2) 编译连接无误后,进入调试环境,进行程序的调试。
按F8 键单步运行程序,执行完MOV DS,AX 语句后,观察DS 寄存器中出现的段地址。
如图1-1所示可以看出DS数据段中MSR源数据串"HELLO,WORLD!$"。
图1-1 进入调试环境(3)继续单步运行程序,执行MOV ES,AX 语句后,可以看数据段出现的段地址,用同样的方法可以查看ES:0000 的数据。
数据传输还没开始进行,此时ES 段的数据为空,如图1-1所示。
继续单步运行程序如图1-2可以看出数据正在逐渐的进入ES段中。
图1-2 DS源数据段数据(4)直到数据传输完毕,可以看到ES 数据段中目的数据串MSD 已经被写入了数据串"HELLO,WORLD!$"。
如图1-3所示。
图1-3 根据ES值查看附加段的数据实验二算术运算一、实验目的1. 掌握运算类指令编程及调试方法。
2. 掌握运算类指令对各状态标志位的影响及测试方法。
微机原理与接口技术实验报告
微机原理与接口技术实验报告实验一、认识tddebug集成操作软件一.实验内容(一)实验题目:数据传输实验1.编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
2.修正此程序,使用字符串传输指令顺利完成。
(二)实验目的:通过对该程序进行调试,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各个寄存器及数据区的内容。
(三)实验步骤:1.运行tddebug软件,选择edit菜单编写实验程序件。
3.使用rmrun菜单中的run运行程序,观察运行结果。
4.采用rmrun菜单中的debug调试程序,查阅程序段、数据段、额外段放入内存后的分配情况。
单步执行数据传送指令后,观察各寄存器及数据区的内容。
过程如下:1)按f7单步执行,在代码区中有一个三角,表示正在执行的指令。
每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。
2)检查内存数据区的内容,关键是找出用户程序的数据段和附加段:方法1:在cpu窗口按tab键并使内存数据表明区沦为活动区,按ctrl+g键,?输入:“ds或es寄存器的值:偏移地址”,即可显示用户指定的数据区方法2:选择菜单view|dump,弹出内存数据显示窗口。
3)查阅继续执行结果:按alt+f5,转换至用户窗口。
5.修改数据区中的数据,实地考察、调试程序的正确性。
二.分析设计思想,绘制实验原理图、流程图。
汇编语言程序的研发过程例如图1.1右图,这个过程主要存有编辑、编程、链接几个步骤形成。
三.程序清单及相关注释。
ddatasegmentmsrdb\lenequ$-msrddataendsexdasegmentmsddblendup(?);定义源数据段;定义额外数据段1exdaends;定义堆栈段mystacksegmentstackdw20dup(?)mystackendscodesegment;定义代码段assumecs:code,ds:ddata,es:exdastart:movax,ddatamovds,axmovax,exdamovmovmovmovmoves,axsi,offsetmsrdi,offsetmsdcx,lenbx,0;装载数据段寄存器;装载附加数据段寄存器next:moval,msr[bx];已经开始传输数据moves:msd[bx],al inclooppushbxnextes;将附加段寄存器指向的段值赋给数据段寄存器popdsmovdx,offsetmsdmovah,9int21hmovah,4chint21h;显示字符串;返回dos状态codeendsendstart四.实验结果并分析。
微型计算机原理与接口技术实验指导3
实验三数据串传送和查表程序实验目的:通过实验掌握下列知识:1.执行串操作指令前要做哪些准备工作(设置哪些寄存器)?2.串传送、串比较、串扫描等指令及重复前辍REP、REPZ、REPNZ等。
实验内容及步骤:一、利用查表方法把DX的内容(16进制数)转换成ASCII码:1. 用A命令键入下列程序:MOV BX,1000MOV DI,2000MOV CX,4LOP: PUSH CXMOV CL,4ROL DX,CLPOP CXMOV AL,DLAND AL,OFXLATCLDSTOSBLOOP LOPINT 202. 用A命令在1000H处键入下列ASCII码并用D命令检查之:DB `0 1 2 3 4 5 6 7 8 9 A B C D E F'用D命令检查时注意左边的ASCII码值和右边的字符。
3. 用R命令给DX送一个四位的16进制数(例7F8E)。
4. 用T命令逐条运行这程序到LOOP指令处,观察并记录每次运行结果,特别是SP和堆栈内容(用D命令检查)5. 用G命令将此程序运行到结束,并用D命令检查2000H处所转换的结果。
可注意屏幕右边的ASCII字符与DX是否一致。
二、数据串搬家程序:1. 用A命令键入下列程序:MOV SI,1000MOV DI,1500MOV CX,0FLOP: MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP LOPINT 202. 用A命令DB伪指令在1000H键入下列字符串:‘IBM_PC COMPUTER'3. 用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。
4. 若此程序中的目的地址改为1002H,再运行此程序,看能不能把1000H开始的字符串搬到1002H开始的地方去?修改程序以做到这一点。
三、段寄存器概念及字符串传送指令练习:1. 用A命令键入下列程序:MOV SI,0MOV DI,0MOV AX,1000MOV DS,AXMOV AX,1500MOV ES,AXMOV CX,0FCLDREP MOVSBINT 202. 用A命令DB伪指令在1000:0000处键入字符串'IBM_PC COMPUTER',并用D命检查之3. 用D命令检查0F00:1000处内容,看是否一样。
微机原理与接口技术实验报告
微机原理与接口技术实验报告
本次实验是关于微机原理与接口技术的实验报告,通过本次实验,我们将深入
了解微机原理与接口技术的相关知识,并通过实际操作来加深对这些知识的理解和掌握。
实验一,微机原理。
在本次实验中,我们首先学习了微机的基本原理,包括微机的组成结构、工作
原理和基本功能。
通过实际操作,我们了解了微机的主要组成部分,如中央处理器(CPU)、内存、输入输出设备等,并学习了它们之间的工作原理和相互配合关系。
同时,我们还学习了微机的基本指令系统和数据传输方式,加深了对微机工作原理的理解。
实验二,接口技术。
在接口技术的实验中,我们学习了微机与外部设备之间的接口技术,包括并行
接口、串行接口和通用接口等。
我们通过实际操作,了解了这些接口技术的工作原理和应用场景,学会了如何通过接口技术实现微机与外部设备的数据交换和通信。
实验三,实验综合。
在本次实验的最后,我们进行了一个综合实验,通过实际操作来综合运用微机
原理和接口技术的知识,实现一个具体的功能。
通过这个实验,我们加深了对微机原理与接口技术的理解,掌握了如何将理论知识应用到实际操作中。
总结。
通过本次实验,我们深入学习了微机原理与接口技术的相关知识,并通过实际
操作加深了对这些知识的理解和掌握。
微机原理与接口技术作为计算机科学与技术的基础知识,对我们今后的学习和工作都具有重要意义。
希望通过这次实验,能够对大家的学习和工作有所帮助,并为今后的学习打下坚实的基础。
以上就是本次实验的实验报告,希望对大家有所帮助。
感谢大家的阅读!。
微机原理与接口技术实验报告(3)
4、实验总结在本次实验中需要注意的是在AH中的值会被覆盖,所以,我们为了解决这个问题,增加堆栈来储存这个值。
并且在这里我们用了移位指令,移位指令能够移位的次数,一定是1和寄存器CL中的内容,一定要注意,SHL这个指令一定要注意标志位OF和CF 。
本次实验是输入2个十进制数组合成压缩BCD码存入DL;再将压缩BCD码转换成ASCII码送CRT显示,了解cpu工作过程对我们学习汇编十分有用。
实验三顺序结构程序设计1、实验目的1. 熟悉EMU8086集成环境软件的使用方法。
2. 熟悉8086汇编指令,能自己编写简单的程序,并调试运行验证结果。
3.学会顺序结构程序设计的设计方法。
2、实验环境及设备PC机、EMU80863、实验内容(分为1 2两个实验)1. 编写简单程序,用数据运算指令,对两个16位数做加法运算。
这两个数从地址10050H 开始连续存放,低位在低地址一端,结果放在这两个数之后。
code segmentstart:; set segment registers:MOV AX,1000HMOV DS,AXMOV SI,50HMOV DI, 52HMOV BX, 54HCLC ;将进位位CF清零,即CF=0.XOR AX, AXMOV AX, [SI]ADC AX, [DI]MOV [BX], AXHLTends在此实验过程中,寄存器显示的数值能够和源程序中设置值吻合,但是有个不明白的地方,如果给[SI][DI]赋值,运算结果并不能够得到正确答案,标志寄存器中CF的值也对不上,,结果如上图所示。
4、实验总结实验遇到问题在之后在学习过程中已经找老师得到解答。
值得一提的是,8086本身为十六位的数据系统,因此在做十六位加减法时程序比较简单,如果是八位数据系统的话,就要先加低八位,利用CF来进位,再加高八位。
一定要意识到这个问题。
2.编写简单程序,实现组合BCD码转换成ASCII码送CRT显示。
实验内容:。
微机原理与接口技术实验报告参考
微机原理与接口技术实验报告实验一显示程序实验一、实验目的1. 掌握在PC机上以十六进制形式显示数据的方法;2. 掌握部分DOS功能调用使用方法;3. 熟悉Tddebug调试环境和Turbo Debugger的使用。
二、实验所用设备1. PC微机一台。
三、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。
本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。
实验中可使用DOS功能调用(INT 21H)。
(1) 显示单个字符输出入口:AH=02H调用参数:DL=t出字符(2) 显示字符串入口:AH=09H调用参数:DS:DX串地址,’$'为结束字符(3) 键盘输入并回显入口:AH=01H返回参数:AL=t出字符(4) 返回DO系统入口:AH=4CH调用参数:AL=M回码四、实验步骤1. 运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1-1示;2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;3. 使用Rmrun菜单中的Run,运行程序,观察运行结果;4. 使用Rmrun菜单中的Debug调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5. 更改数据区中的数据,考察程序的正确性。
图1-1显示程序实验流程图五、程序清单DATA SEGMENTMES DB 'laoshihao:', 0AH,0DH,'$' SD DB 'b'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, OFFSET MESMOV AH, 09HINT21HMOV DI, OFFSET SDMOV AL, DS:[DI]AND AL, 0F0HSHR AL,4CMP AL, 0AHJB L1ADD AL, 07HL1: ADD AL, 30HMOV DL, ALMOV AH, 02HINT21HMOV AL, DS:[DI]AND AL, 0FHCMP AL, 0AHJB L2ADD AL, 07HL2: ADD AL, 30HMOV DL, ALMOV AH, 02HINT21HMOV AX, 4C00HINT21HCODE ENDSEND START六、实验调试过程调试过程中出现警告,显示没有使用堆栈段。
实验三并行总线实验报告
同济大学电子与信息工程学院实验中心实验报告实验课程名称:微机原理与接口技术(双语)任课老师:张伟实验项目名称:并行总线实验姓名马绮铭学号1452343实验日期2016年10月25日实验地点电信楼348并行总线实验一、实验要求使用 4 块实验板完成多板间的并行总线实验,能够实现按键控制模块通过总线、cpu 模块来控制数码管显示模块的功能。
二、实验目的通过此实验加深对 Intel 微处理器的总线设计架构的理解,并尝试设计编写拓展模块。
掌握模块例化的方法,提高 Verilog 编程效率。
三、原理介绍在典型的 Intel 微处理器中,CPU 通过总线和其它设备连接,总线架构按功能分类,一般分为三类:数据总线(data bus)、地址总线(address bus)和控制总线(control bus)。
CPU、外设、总线的关系可以用下面这张图表示:典型的 Intel CPU 总线架构图Intel 微处理器最早使用并行总线架构,从最初的 16 位发展到 32 位、64 位,运行速度不断提高,在提高 CPU 的高速访问、扩大内存等性能上提供有力支持。
CPU 按照一定的时序逻辑,可以实现对总线和外设的数据进行高效、快速、准确的读、写操作。
8086 微处理器的总线时序:读操作中断功能:为了协调高速工作的 CPU 和低速运行的外设之间的矛盾,避免CPU 长时间处于无用的等待过程而浪费宝贵的 CPU 资源,Intel 微处理器还引入了中断的设计。
具体可以参照微机原理课程,这里不再展开。
四、实验环境硬件环境为 Xilinx 公司的 spartan3 开发板5块及其组件。
软件实验环境为Xilinx ISE 开发软件。
五、实验原理图六、模块说明此实验共需要五块开发板,分别充当CPU模块、总线模块、按键控制模块、数码管显示模块和UART串口模块。
1、 CPU 模块:使用 bank3作为总线端,连接到总线模块的bank 0,因端口数有限,设计包含4位地址线、8位数据线、3位控制线、4位中断信号线。
微机原理与接口技术实验3报告
微机原理与接口技术实验报告实验三实验名称:数码管显示实验实验代码:代码一:数码管动态显示0-9;Io-8.asm;数码管显示示例程序1;动态显示0-9IOY0 EQU 3000H ;片选IOY0对应的端口始地址DA TA1 SEGMENT;定义数码管显示0-9的值NUM DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H DA TA1 ENDSSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA1START:;载入数据段MOV AX,DATA1MOV DS,AXMOV DX,IOY0LEA SI,NUMMOV CX,10XOR AX,AXNEXT:MOV AL,[SI] ;低八位确定要显示的数值MOV AH,1FH ;高八位确定选择的数码管OUT DX,AX ;将值输出到外设CALL DALL YINC SI ;显示下一数值LOOP NEXTJMP STARTDALL Y PROC NEAR ;软件延时子程序PUSH CXPUSH AXMOV CX,0FFFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALL Y ENDPCODE ENDSEND START运行结果:六位数码管动态显示0-9代码二:数码管动态显示0-99;数码管动态显示0-99IOY0 EQU 3000H ;片选IOY0对应的端口始地址DA TA1 SEGMENT;定义数码管显示0-9的值NUM DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H DA TA1 ENDSSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA1START:;载入数据段MOV AX,DATA1MOV DX,IOY0LEA SI,NUMLEA DI,NUMMOV CX,10XOR AX,AXMOV CX,100MOV BX,0ADD DI,BXNEXT1:;---------SW----;MOV CX,10;----------GW-------;NEXT:PUSH CXMOV CX ,0FFHNEXT3:MOV AL,[SI] ;低八位确定要显示的数值MOV AH,2FH ;高八位确定选择的数码管OUT DX,AXCALL DALL YMOV AL,[DI]MOV AH,1FHOUT DX,AXCALL DALL YLOOP NEXT3INC SIPOP CX;JMP MYLOOP ;显示下一数值LOOP NEXTINC DILEA SI,NUMJMP NEXT1DALL Y PROC NEAR ;软件延时子程序PUSH CXMOV CX,0FFHD1: MOV AX,0FFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALL Y ENDPCODE ENDSEND START运行结果:数码管后两位动态显示0-99。
《微机原理及接口技术》实验报告3
3、掌握8259中断控制器的应用编程。
实验内容:
利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。
实验要求:
本实验属于验证型实验,要求学生完成以下内容:
1、学习并掌握硬件连接步骤与方法后,连接好硬件线路。
2、阅读并理解实验程序H8259.ASM后,运行实验程序。
3、观察实验结果,理解并分析实验原理和方法。
4、完成实验报告。
一、实验原理与方法(分析综述相关主要技术的原理与方法)
二、实验硬件连接(给出实验硬件线路图及连接说明)
三、实验程序流程图
四、实验代码分析(按要求给出程序代码并对每一条指令进行注释)
1、8259初始化的程序代码
2、IR3中断服务程序的代码
五、学生自我小结(所遇问题和个人体会等方面总结)
《微机原理与接口技术》实ຫໍສະໝຸດ 报告3学号:姓名:班级:成绩:
实验名称:使用8259的单级中断控制器
实验类型:验证型实验
实验地点:信息楼418微机原理实验室
所使用的工具实验设备及器材配置:DJ86PCI实验箱、配套微机、DJ-8086系列实验指导书
实验目的:
1、掌握8259中断控制器与微机接口的硬件设计原理和要求。
微机原理与接口技术标准实验报告
.实用文档.目录实验一数据传送 (2)实验二算术运算 (8)实验三代码转换 (15)实验四程序的根本结构练习 (21)实验五存储器〔RAM 6264〕扩展 (26)实验六可编程并行接口〔8255〕扩展 (29)实验七可编程计数/定时器〔8253〕扩展 (35)实验八A/D、D/A转换 (46)实验九可编程串行通信接口〔8251〕扩展 (54).实验一:数据传送实验学时:2实验类型:验证实验要求:必修一.实验目的1.学习程序设计的根本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法;学习用全屏幕编辑软件QEDIT.EXE建立源程序〔.ASM文件〕;学习用汇编软件MASM.EXE对源文件汇编产生目标文件〔.OBJ文件〕;学习用连接程序LINK.EXE对目标文件产生可执行文件〔.EXE文件〕;学习用调试软件TD.EXE调试可执行文件;2.掌握各种寻址方法以及简单指令的执行过程。
二.实验器材PC机三.实验组织运行要求1.利用堆栈实现AX的内容与BX的内容进行交换。
堆栈指针SP=2000H,AX=3000H,BX=5000H;2.汇编、调试、观察、记录结果;⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘;⑵用MASM对源程序进行汇编产生二进制目标文件〔.OBJ文件〕,再用连接程序LINK产生可执行文件〔.EXE文件〕;⑶用调试软件TD调试、运行程序,观察、记录结果。
四.实验步骤1.进入子目录E:>\SY86后,利用QEDIT.EXE〔简称Q〕送入以下汇编语言源程序,并以M1.ASM文件存盘⑴汇编语言程序的上机过程①进入\SY86子目录E:>CD\SY86E:\SY86>②进入QEDIT.EXE 编辑界面E:\SY86> Q③输入文件名*.ASM〔如M1.ASM〕后,输入源程序源程序DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义DB 512 DUP(0)DATA ENDSSTACK SEGMENT PARA STACK’STACK’ ;堆栈段定义DB 512 DUP( ?)STACK E NDSCODE SEGMENT PARA PUBLIC’CODE’ ;代码段定义ASSUME CS :CODE,DS :DATA,ES:DATA,SS :STACK MAINPROC FAR ;定义过程程序PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,2000hMOV AX,3000hMOV BX,5000hPUSH AXPUSH BXPOP AXPOP BXRETMAIN ENDP ;结束主要局部程序CODE ENDS ;结束代码段END MAIN ;结束汇编⑵用MASM程序产生.OBJ文件操作如下:E:\SY86> MASM M1.ASM M1.OBJMicrosoft〔R〕Macro Assembler Version 5.00Copyright〔C〕Microsoft Corp 1981-1985,1987. All rights reserved. Object Filename [HEXASC.OBJ]:Source listing [NUL.LST]:Cross-reference [NUL.CRF]:51576+385928 Bytes symbol space free0 Warning Errors0 Severe Errors以上说明汇编过程已经完成。
微机原理与接口技术实验报告三
微机原理与接口技术实验报告(三)1、实验目的:1)学习程序中有限的寄存器的使用。
2)学习使用冒泡法排序3)学习程序流程控制:①条件跳转指令ja jb ②call指令,观察程序执行时堆栈的变化(学会用debug –g命令设置断点)4)学习利用编译错误信息进行程序修改,通过运行寻找并改正逻辑错误。
5)灵活运用各种dos功能调用实现显示功能6)学习将数字用转换成相应的ascii码并显示2、实验内容:多重循环程序设计:多重循环中,循环中包含另一个循环,每一循环都有各自的循环计数器和终点判断。
应注意:各重循环初始条件的控制;内循环可以嵌套在外循环中,也可以几个内循环并列在外循环中,但各层循环之间不能交叉,内循环可以跳到外循环中,不可以从外循环直接跳进内层循环;应用:冒泡排序法以Buffer为首地址保存一组(假设10个)无序的有符号数,编写排序程序使数由小到大重新排列。
程序框图如下:举例:(值1 2 3 4,数值越大气泡越大)原顺序:第一次交换第一次内循环结束(外循环1) 第二次内循环结束(外循环2)3、试验结果程序编写如下:dispmsg macro messgemov ah,9lea dx,messgeint 21hendm.model small.dataBuffer db 10,-30,52,2,42db 92,32,-36,31,63N equ $-bufferjieshu db '$'newlines db 0dh,0ahjieguo db ' the result is:',0dh,0ah jguo db 30 dup(?,?),'$'.stack 100.codemov ax,@datamov ds,axmov ax,@stackmov ss,axmov bx,offset buffermov cx,N-1lop1:mov dx,cxlop2:mov al,[bx]cmp al,[bx+1]jle bijiaoxiayigexchg al,[bx+1]mov [bx],aljixu:inc bxbijiaoxiayige:inc bxloop lop2mov cx,dxmov bx,offset bufferloop lop1xianshi: mov si,offset buffer mov di,offset jguoxiayige:mov al,[si]cmp al,'$'jz wanbimov ch,almov cl,4shr al,clcall dispmov al,chand al,0fhcall dispinc sijmp xiayigewanbi:dispmsg jieguo Mov ax,4c00HInt 21Hdisp proccmp al,0ahjs doneadd al,7done:add al,30h mov [di],alinc diretdisp endpEndend start该程序中,首先定义一个宏dispmsg,然后定义各段。
微机原理与接口技术实验报告及答案
微机原理与接口技术实验报告及答案微机实验答案实验三统计学生成绩设有20个学生成绩分别56、78、67、40、87、99、63、51、74、100,90,80,68、88、55、66、84、96、45、73分。
编写程序实现统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并分别存放在s5、s6、s7、s8、s9、s10单元中。
实验代码如下:data segmentscore db 56,78,67,40,87,99,63, 51,74,100,90,80,68,88,55,66,84, 96,45,73s5 db 0s6 db 0s7 db 0s8 db 0s9 db 0s10 db 0data endscode segmentassume cs: code, ds: data start: mov ax,datamov ds,axmov si,0mov cx,20lop1: cmp score[si],60jb step1cmp score[si],70jb step2cmp score[si],80jb step3cmp score[si],90jb step4cmp score[si],100jb step5inc [s10]jmp exitstep1:inc [s5]jmp exitstep2:inc [s6]jmp exitstep3:inc [s7]jmp exitstep4:inc [s8]jmp exitstep5:inc [s9]exit: inc siloop lop1mov al,s6 ; 显示s6,可用s5,s7, s8等替换(实验要求之思考题三)add al,48mov dl,almov ah,02int 21hmov ah,4chint 21h实验四查找字符实验内容试编写一个有主程序和子程序结构的程序模块。
主程序:要求从键盘接收一串字符并存于字节数组TABLE中,显示字符CHAR出现的次数。
微机原理与接口实验
微机原理与接口实验实验目的:通过实验,掌握微机系统原理和接口的基本知识,能够正确使用各种接口设备进行输入输出操作。
实验器材:8086微机系统、键盘、数码管、LED灯、示波器等。
实验一:键盘输入实验实验内容:1.连接键盘到8086微机系统。
2.编写汇编程序,实现用户输入字符,并在数码管上显示用户输入的字符。
3.将程序加载到存储器中,并运行程序,进行输入测试。
实验步骤:1.将键盘接口与8086微机系统相连接。
键盘的数据引脚接到8086微机系统的8位数据总线,键盘的控制引脚接到8086微机系统的地址总线和控制总线上。
2.编写汇编程序,初始化键盘接口并循环接收键盘输入的字符。
将键盘输入的字符加载到寄存器中,并将其数字值转换为对应的ASCII码值,再将其显示在数码管上。
3.将汇编程序加载到存储器中,并运行程序进行测试。
实验结果:通过实验,可以实现键盘输入功能,并能够在数码管上显示用户输入的字符。
实验二:LED灯输出实验实验内容:1.连接LED灯到8086微机系统。
2.编写汇编程序,实现控制LED灯的亮灭。
3.将程序加载到存储器中,并运行程序,观察LED灯的亮灭情况。
实验步骤:1.将LED灯接口与8086微机系统相连接。
LED灯的引脚接到8086微机系统的8位数据总线上。
2.编写汇编程序,初始化LED灯接口并循环控制LED灯的亮灭状态。
3.将汇编程序加载到存储器中,并运行程序观察LED灯的亮灭情况。
实验结果:通过实验,可以实现LED灯的亮灭控制,根据程序中的指令可以控制LED灯的闪烁频率和顺序。
实验三:外设输入输出实验实验内容:1.连接外设设备(如温湿度传感器等)到8086微机系统。
2.编写汇编程序,读取外设设备的输入信息,并控制外设设备的输出。
3.将程序加载到存储器中,并运行程序,观察外设设备的输入输出情况。
实验步骤:1.将外设设备接口与8086微机系统相连接。
外设设备的输入引脚接到8086微机系统的数据总线上,外设设备的输出引脚接到8086微机系统的控制总线上。
微机原理与接口技术实验报告
微机原理与接口技术实验报告实验目的,通过本次实验,掌握微机原理与接口技术的基本知识,了解并掌握微机接口技术的应用方法。
实验仪器与设备,微机实验箱、接口卡、示波器、电源等。
实验原理,微机接口技术是指微机与外部设备进行数据交换的技术。
它是微机与外部设备之间的桥梁,通过接口技术可以实现微机与外部设备之间的数据传输和通信。
实验内容与步骤:1. 实验一,串行通信接口实验。
a. 将串行通信接口卡插入微机实验箱的接口槽中;b. 连接示波器和外部设备,并进行数据传输测试;c. 观察并记录数据传输的波形和数据传输情况。
2. 实验二,并行通信接口实验。
a. 将并行通信接口卡插入微机实验箱的接口槽中;b. 连接外部设备,并进行数据传输测试;c. 观察并记录数据传输的情况。
3. 实验三,AD转换接口实验。
a. 将AD转换接口卡插入微机实验箱的接口槽中;b. 连接外部模拟信号源,并进行模拟信号转换测试;c. 观察并记录模拟信号转换的波形和数据传输情况。
实验结果与分析:1. 串行通信接口实验结果分析:通过实验发现,在串行通信接口实验中,数据传输的波形稳定,数据传输速度较快,适用于对数据传输速度要求较高的应用场景。
2. 并行通信接口实验结果分析:在并行通信接口实验中,数据传输稳定,但数据传输速度相对较慢,适用于对数据传输速度要求不高的应用场景。
3. AD转换接口实验结果分析:经过实验发现,AD转换接口可以将模拟信号转换为数字信号,并且转换精度较高,适用于对信号转换精度要求较高的应用场景。
实验总结与展望:通过本次实验,我们深入了解了微机原理与接口技术的基本知识,掌握了串行通信接口、并行通信接口和AD转换接口的应用方法。
同时,也发现不同接口技术在数据传输速度、稳定性和精度方面各有优劣,需要根据实际应用场景进行选择。
未来,我们将继续深入学习和探索微机接口技术的应用,为实际工程项目提供更好的技术支持。
结语:通过本次实验,我们对微机原理与接口技术有了更深入的了解,实验结果也验证了接口技术在数据传输和信号转换方面的重要作用。
微机原理与接口技术实验56-
L1:ADD AX,WORD PTR[SI]
INC SI
INC SI
LOOP L1
MOV WORD PTR[SI],AX
RET
SUM ENDP
CODE ENDS
END START
例4.65
MDATA SEGMENT
ARY1 DB 20 DUP(01)
SUM1 DW ?
ARY2 DB 100 DUP(08)
MOV AL,[BX]
MOV AL,00H
MOV [BX],AL ;对4100H地址处的内容清零
MOV DI,4000H ;缓冲区首地址4000H赋值给DI
MOV CX,0010H ;计数器CX赋值为BUFF数组中的个数
FIRST:
MOV AL,[DI]
CMP AL,00H ;比较数组的第一个元素,看是否为0
在4000H-400FH中查出有几个字节是零,把计数个数放在4100H中。
实验环境
Debug环境。
实验步骤
在4000H-400AH中通过键盘命令输入不等的10个数,运行本实验程序后检查4000H-400AH中内容是否按从大到小排列。在和PC机联机时,用连续单步方式,可很清楚地看出数据排序时数据移动变化情况。
xchg ax,bx;交换AX,BX中的数据
add bx,ax;AX,BX数据相加,存储在BX中
POP CX;CX出栈。CX=0002H
DEC CX;CX减一。由于在调整输入数据时用到CX,为保证数据不被更改,故用入栈出栈方式保存。此时CX=0001H。保证在每次输入时要输入两次数据。
CMP CX,0000H;将CX与0000H比较
JNZ newchar;不等于0,则表示一个完整的两位十进制数字没有输入完,继续跳转到newchar
微机原理及接口技术实验教案
微机原理及接口技术实验教案一、实验目的:1.了解微机组成和工作原理;2.学习并掌握计算机接口的原理和应用;3.实际操作计算机接口,掌握接口技术实验方法。
二、实验内容:1.实验一:微机组成与工作原理a.搭建微机实验平台,包括微处理器、存储器、输入输出接口等;b.理解并掌握微机组成和工作原理;c.运行简单指令,观察并分析微机的工作状态。
2.实验二:串口通信实验a.掌握串口通信的原理和常见的串口通信协议;b.学习并使用相应的编程语言编写串口通信程序;c.通过串口通信实现数据传输和通信控制。
3.实验三:并行口通信实验a.掌握并行口通信的原理和常见的并口通信协议;b.学习并使用相应的编程语言编写并行口通信程序;c.通过并行口通信实现数据传输和通信控制。
4.实验四:外设控制实验a.学习并掌握外设控制的原理和方法;b.了解并使用适配器、驱动等工具;c.通过编程控制外设,实现相应的功能需求。
三、实验步骤:1.实验一:微机组成与工作原理a.搭建实验平台,连接微处理器、存储器、输入输出接口等;b.设置并调试微机系统,确认正常工作;c.选择一组简单指令,加载到存储器中;d.运行指令,观察和记录微机的工作状态。
2.实验二:串口通信实验a.准备一台计算机和串口通信模块;b.学习并安装相应的开发环境和工具;c.编写串口通信程序,包括数据发送和接收;d.运行程序,观察数据的发送和接收情况。
3.实验三:并行口通信实验a.准备一台计算机和并行口通信模块;b.学习并安装相应的开发环境和工具;c.编写并行口通信程序,包括数据发送和接收;d.运行程序,观察数据的发送和接收情况。
4.实验四:外设控制实验a.准备所需的外设和相应的控制器;b.学习并安装适配器、驱动等工具;c.编写程序,通过控制器实现对外设的控制;d.运行程序,观察外设的响应和控制情况。
四、注意事项:1.实验前仔细阅读相关实验材料和手册,了解实验原理和操作方法;2.实验过程中要认真记录实验现象和结果,及时解决遇到的问题;3.注意实验安全,遵守实验室规定,保护实验设备和个人安全;4.实验结束后要及时整理实验结果,撰写实验报告。
微机原理与接口技术实验报告3-动态数码管
{
while(t--);
//通过执行“t”条空语句达到延时
}
void main()
{
int i,light[8]={0xee,0xfe,0x9c,0xfc,0x60,0xda,0xf2,0x66};//i 为循环变量,light 数组包含了
“ABCD1234”对应的二进制数
while(1)
//制造死循环让数码管维持常亮
五:算法分析:
通过控制 J16 不同位为低电平的顺序使数码管依次点亮,通过对数码管“a、b、c、d、
e、f、g”赋值 0 或者 1 实现显示“ABCD1234”的功能。
六:实验程序:
#include<reg52.h>
void delay(int t)
//延时函数,用于使每一个数码管显示都能维持一段时间
位的二进制数加 4
}
}
}
七:实验结果:
数码管最终能从左至右依次显示“ABCD1234”,且肉眼可见维持全部常亮状态。
ห้องสมุดไป่ตู้八:结果分析:
在依次点亮数码管时候选择合适的延时很重要,如果延时太久,则会导致肉眼可见数码
管显示的字符是一个一个的向右移动。另外,编程应该分步骤进行,先测试一下 P0 口不同
赋值对数码管显示图形的影响,搞清楚每一位对应数码管哪一个发光二极管。还要测试一下
{
P2=0x00;
//给 P2 赋初值,选择第一个数码管先亮
for(i=0;i<8;i++) //循环,让数码管从左到右依次点亮
{
P0=light[i]; //让 P0 按数组输出恰当的八位二进制数使数码管显示对应字符
delay(100); //延时,让数码管点亮后维持一段时间
微机与接口技术实验
《《微机原理与接口技术》实验指导书2010.10实验一调试程序DEBUG的使用方法一、实验目的通过对DEBUG调试程序的使用,熟悉用DEBUG调试汇编语言程序的方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,为后续程序编制和调试打下基础。
二、实验原理DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。
DEBUG使用单字符命令:R命令:查看、改变CPU寄存器的内容D命令:查看内存中的内容E命令:改写内存中的内容U命令:将内存中的机器指令翻译成汇编指令(反汇编)T命令:执行一条机器指令A命令:以汇编指令的格式在内存中写入一条机器指令Q命令:退出DEBUG 状态三、实验内容1、参考资料,熟悉DEBUG的使用方法,运行各种命令,观察运行后的况。
2、用DEBUG调试程序调试汇编语言例子te1.exe程序(程序见后面)。
1)用U命令对te1.exe文件进行反汇编,比较源程序te1.asm和反汇编后的指令代码。
2)用R命令查看各寄存器的初试状态。
3)用T命令单步跟踪te1.exe的执行过程,写出每一步执行后,相关寄存器中的内容。
四、实验步骤1、按实验内容用MasmEdit 1.0.8.软件编写源程序te1.asm2、运用汇编源程序,产生目标文件.OBJ3、连接目标文件,产生可执行文件.EXE4、用DEBUG运行可执行文件。
五、实验报告1、按实验目的、实验内容、实验步骤、实验结果等顺序书写试验报告。
2、实验结果中写出用T命令单步跟踪te1.exe时,每一步执行后,相关寄存器中的内容。
参考程序:assume cs: codecode segment mov ah,98hmov ax,2000h add ah,blmov ds,ax mov ax,4c00hmov al,45h int 21hmov bl,33h code endsadd al,bl end一、实验目的1、熟练掌握编写汇编语言源程序的基本方法和基本框架。
微机原理及其接口技术重要实验详解
实验三可编程定时器/计数器(8253)一、实验目的掌握8253的基本工作原理和编程方法。
二、实验内容1、按图3-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
三、编程提示1、8253控制寄存器地址283H计数器0地址280H计数器1地址281HCLK0连接时钟1MHZ;*************************;;* 8253方式0计数器实验*;;*************************;io8253a equ 283hio8253b equ 280hcode segmentassume cs:codestart: mov al,14h ;设置8253通道0为工作方式2,二进制计数mov dx,io8253aout dx,almov dx,io8253b ;送计数初值为0FHmov al,0fhout dx,allll: in al,dx ;读计数初值call disp ;调显示子程序push dxmov ah,06hmov dl,0ffhint 21hpop dxjz lllmov ah,4ch ;退出int 21hdisp proc near ;显示子程序push dxand al,0fh ;首先取低四位mov dl,alcmp dl,9 ;判断是否<=9jle num ;若是则为'0'-'9',ASCII码加30Hadd dl,7 ;否则为'A'-'F',ASCII码加37Hnum: add dl,30hmov ah,02h ;显示int 21hmov dl,0dh ;加回车符int 21hmov dl,0ah ;加换行符int 21hpop dxret ;子程序返回disp endpcode endsend start实验三可编程定时器/计数器(8253)一、实验目的掌握8253的基本工作原理和编程方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四、可编程并行接口(一)
(8255 方式0)
09电子班姓名:赵洪娟学号:2009061306
一、实验目的
1.掌握8255 方式0 的工作原理及使用方法。
二、实验内容
1.实验电路如图(10),8255C 口接逻辑电平开关K0~K7,A 口接LED 显示电路L0~L7。
2. 编程从8255C 口输入数据,再从A 口输出.
图10
三、编程提示
1、8255控制寄存器端口地址28BH
A口的地址288H
C口的地址28AH
2、参考流程图
图11
四、实验程序
ioport equ 0d400h-0280h outp0=ioport+28Bh
outpA=ioport+288h outpC=ioport+28Ah
code segment
assume cs:code
start : mov al , 89h mov dx , outp0
out dx , al
mov dx , outpC
in al , dx
mov dx , outpA
out dx, al
mov dl ,al
mov ah , 2
int 21h
mov dl , 0dh
int 21h
jmp start
mov ah , 4ch
int 21h
code ends
end start
五、实验分析
先将实验电路图连接好,然后写程序,检查是否有错误,改正后链接运行程序,运行成功后拨动开关,会看到打开哪个开关哪个灯就会亮,并且会发现电脑上会显示不同的符号。
写程序是注意若A口地址为288h则B口地址为289h、C口地址为28Ah、控制寄存器端口地址为28Bh,因为A1A0是用来选择ABC数据口和控制寄存器。
也可以改变输入输出口,只需改变
mov dx , outpC
in al , dx
mov dx , outpA
out dx, al
这四句话就可以了,但要记住要把电路图改变。
六、实验心得
学会了8255 方式0 的工作原理及使用方法,如何用汇编定义8255A的数据口的输出输入,以及如何用A1A0选择数据口和控制寄存器。