微机原理与接口技术实验讲义
- 格式:doc
- 大小:987.00 KB
- 文档页数:72
微机原理及接口技术实验指导书第一章80X86微机原理及其程序设计实验一熟悉PC 机的使用和调试汇编程序的方法一. 实验目的:1. 掌握汇编程序由编辑、编译、链接到调试的全过程。
2. 通过汇编调试工具加深对机器指令执行过程的了解。
二. 实验要求:1.了解PC 机的系统类型和基本配置, 熟悉PC 机DOS和WINDOWS下的基本操作2.掌握使用UltraEdit 等编辑器对汇编语言源程序(存储后扩展名为.ASM ) 的编辑操作。
3.学会用宏汇编程序MASM (或TASM ) 对.ASM文件进行编译(编译后扩展名为.obj)。
4.使用链接程序LINK (或TLINK ) 对 .OBJ 文件链接生成 .EXE 文件。
5. 学会用汇编调试工具软件TD (或DEBUG ) 对.EXE文件进行调试进一步深对机器指令的了解、执行程序、检查运行结果的方法。
三. 实验仪器:PC 机一台四. 实验步骤:汇编程序的编程环境有以下三种方式:1. Dos窗口下命令行方式2. UltraEdit方式3. 硬件实验箱自带的集成编程环境Wmd86方式其中第一种Dos方式,是指进入Dos窗口模式编辑源文件,用命令行方式直接调用Tasm,Masm等编译工具进行程序的编译、链接、调试,而后两种工作方式都是在Windows下进行源文件的编辑,而编译和链接仍然是通过调用Tasm,Masm等编译工具完成相应工作。
为了方便我们现在一般采用后两种编程环境。
下面我们分别介绍:1.UltraEdit方式UltraEdit是Windows下非常优秀的文本编辑软件,有很好的可配置性,支持语法高亮等。
通过配置UltraEdit,可实现在UltraEdit环境下编辑汇编源程序、汇编、连接、调用TDebug调试,非常方便。
配置完成后,可实现快捷键调用各编译、连接、调试功能。
实验机器上已经预配置好了。
配置方法说明(带演示动画)。
使用说明:1.打开UltraEdit,编辑并保存汇编源文件。
实验一熟悉汇编语言环境及建立汇编的过程一、实验目的1.熟悉汇编语言环境。
2.掌握汇编语言的上机过程。
3.了解汇编语言程序的编程格式。
二、实验要求通过一个小程序的编写达到以上的实验目的。
三、实验原理1.汇编语言程序的上机过程用汇编语言编写的程序称为源程序,源程序也不能由机器直接执行,而必须翻译成机器代码组成的目标程序,这个翻译过程称为汇编。
在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的,用来把汇编语言编写的程序自动翻译成目标的软件叫汇编程序,汇编过程如下:四、实验步骤1、打开编辑环境2、输入程序CODE SEGMENTASSUME CS:CODESTART: MOV AL,01HMOV BL,40HADD AL,BLMOV DL,ALMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START3、保存源程序,以.ASM为扩展名。
C:\MASM\1.ASM4、建立汇编过程(1)用宏汇编程序汇编源程序C:\MASM>MASM 1.ASM汇编程序有3个输出文件【.obj】文件,【.LST】文件,【.CRF】文件,.OBJ文件是我们所需要的文件。
汇编程序还有另外一个重要功能:可以给出源程序中的错误信息。
(2)用连接程序将OBJ文件转换为可执行的EXE文件C:\MASM>LINK 1.OBJ5、执行程序:C:\MASM>1.EXE实验二两个多位十进制数相加的实验一、实验目的:1.学习数据传送和算术运算指令的用法。
2.熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程。
二、实验内容:将两个多位十进制数相加。
要求加数和被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图四、实验原理1.ADC 带进位相加指令的功能和指令格式2.AAA 、DAA、 AAS、 DAS指令的功能和指令格式3.伪指令SEGMENT 、ENDS、 ASSUME、MACRO、ENDM的使用4.子程序的定义(PROC NEAR/FAR ENDP),以及子程序调用和返回指令:CALL、RET的使用5.循环指令LOOP的格式以及退出循环的条件6.中断指令的使用五、实验参考程序CRLF MACRO ;建立回车换行宏MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDM ;宏定义结束DATA SEGMENT ;数据段DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)DATA ENDSCODE SEGMENT ;代码段ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET DATA2MOV BX,05CALL DISPL ;显示被加数CRLFMOV SI,OFFSET DATA1MOV BX,05CALL DISPL ;显示加数CRLFMOV DI,OFFSET DATA2CALL ADDA ;加法运算MOV SI,OFFSET DATA1MOV BX,05CALL DISPL ;显示结果CRLFMOV AX,4C00HINT 21HDISPL PROC NEAR ;显示子程序段DS1: MOV AH,02HMOV DL,[SI+BX-1] ;显示字符串中的一个字符INT 21HDEC BX ;修改偏移量JNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05AD1: SUB BYTE PTR[SI+BX-1],30H ;将ASCII码表示的数字串SUB BYTE PTR[DI+BX-1],30H ;转化位十六进制的字符串 DEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05 ;包括进位位共5位CLC ;清进位位AD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BL ;带进位相加AAA ;非组合BCD码的加法调整 MOV [SI],AL ;结果送加数区INC SIINC DI ;指向下一位LOOP AD2 ;循环MOV SI,DXMOV DI,BPMOV BX,05AD3: ADD BYTE PTR[SI+BX-1],30H ; 十六进制的数字串转化 ADD BYTE PTR[DI+BX-1],30H ; 为ASCII码表示的数字串 DEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START六、实验步骤1.按实验要求编写程序2.汇编连接程序生成可执行文件3. 执行程序观察结果七、拓展练习编写程序完成两个多位十进制数相减。
第一部分 基于Protues 的接口仿真实验实验一 Protues 操作基础1、实验目的熟悉Proteus ISIS 编辑环境,了解电路绘图工具的使用和原理图设计步骤。
2、实验内容1——一阶动态电路仿真 (a) 元件的拾取 元件名称 说明参数CAPACITOR 电容 1000μF RES 电阻 1K Ω,100ΩLAMP 灯泡 12V SW-SPDT 两位开关BATTERY电池直流电源12V(b) 编辑窗口视野控制(c) 元件位置的调整和参数修改(d) 电路连线(原理图电气规则检测)(e) 电路动态仿真 (写出实验结果) 文件保存 cap1.dsn3、实验内容2——一8086最小模式下的总线结构和I/O 口地址 (实验报告上给出电路图和端口地址分配表即可)8086最小模式下的总线结构和I/O 口地址分配如图1.1所示,与教材上不同的是 • 没有加双向数据收发器,不影响实验结果的正确性。
• 其中8086的引脚A16~A19在图中命名为AD16~AD19,是为了与经过74HC373锁存输出的引脚(A16~A19)区分开。
实际上这4根引脚不与数据总线复用。
这张最小模式的电路图以后每次实验都会用到,所以要保存好,避免每次重新画。
图1.1 8086最小模式下的总线结构和I/O口地址分配分析图1.1中74LS138译码器构成的I/O端口译码电路,可得到表1所示的端口地址分配情况。
表1. I/O端口地址A15 A14 A13 A12A11~A0十六进制地址IO0 1 0 0 0 0~0 8000HIO1 1 0 0 1 0~0 9000HIO2 1 0 1 0 0~0 A000HIO3 1 0 1 1 0~0 B000HIO4 1 1 0 0 0~0 C000HIO5 1 1 0 1 0~0 D000HIO6 1 1 1 0 0~0 E000HIO7 1 1 1 1 0~0 F000H图1.1中用到的元件8086、74LS138、74HC373,需要在“Component Mode”下点击按钮P,从元件库中选出见图1.2。
微机原理与接口技术实验指导书实验一:微处理器概述及数据传输实验一、实验目的•了解微处理器的基本概念和工作原理;•学习数据传输的基本知识;•掌握使用微处理器进行数据传输的方法。
二、实验器材•1个微处理器开发板;•1个串行通信模块;•相应的连接线。
三、实验内容在该实验中,你将学习如何使用微处理器进行数据传输,具体实验步骤如下:1.将开发板和串行通信模块连接起来;2.将数据发送器连接到串行通信模块的发送端口,将数据接收器连接到串行通信模块的接收端口;3.通过开发板上的开关设置要发送的数据;4.通过串行通信模块将数据发送到计算机;5.在计算机上使用相应的软件接收数据,并验证接收到的数据是否正确。
四、实验步骤1.将开发板和串行通信模块连接起来,确保连接正确并稳定;2.将数据发送器插入串行通信模块的发送端口,将数据接收器插入串行通信模块的接收端口;3.在开发板上的开关上设置要发送的数据;4.打开计算机上的串行通信软件,配置正确的串口号和波特率;5.点击软件的接收按钮,准备接收数据;6.在开发板上的开关上切换到发送模式,并观察串行通信模块的指示灯是否正常闪烁;7.在串行通信软件上观察接收到的数据是否与设置的数据一致;8.如果数据传输正常,则实验完成。
五、实验注意事项1.连接线务必稳固连接,确保数据传输正常;2.阅读并理解实验器材的使用说明书;3.注意保持实验环境的整洁,避免影响实验结果;4.在进行数据传输时,确保计算机已正确安装了相应的驱动程序。
六、实验总结通过这次实验,我们初步了解了微处理器的基本概念和工作原理,学习了数据传输的基本知识,并掌握了使用微处理器进行数据传输的方法。
我们在实验中成功地连接了开发板和串行通信模块,并成功地进行了数据传输。
通过实验,我们发现数据传输过程中需要注意连接线的稳固连接,以及计算机是否安装了相应的驱动程序。
实验的结果验证了我们的操作方法的正确性,同时也为后续实验奠定了基础。
注意:本指导书旨在引导实验过程,实验过程中如有任何危险情况,请立即停止实验并寻求实验室管理员的帮助。
微机原理与接口技术实验讲义实验一汇编程序的调试与Debug应用一、实验目的(1)掌握汇编语言的编程结构与方法。
(2)理解汇编语言的运行机制。
(3)掌握Debug调试语句及调试技巧。
二、预习要求复习汇编程序语言,提前将本实验相关内容进行预习。
三、实验设备带有MASM汇编工具的PC机一台。
四、实验原理程序的编写、编译的一般过程(1)汇编语言支持任意字处理软件,可以选用现有的文本编辑软件,例如EDIT,记事本等,进行源程序的编写,编写完毕之后,需将文件保存为*.asm文件(源文件)。
(2)利用MASM软件对所编写的*.asm文件进行汇编,生成*.obj文件(目标文件),以及调试用*.LST(列表文件)和*.crf(交叉引用表)(3)利用Link命令对程序进行连接,将目标文件与库文件进行连接,最终生成*.exe 文件(可执行文件)。
若上述几步无问题,则最终生成可直接运行的*.exe文件,若过程中出现语法错误,请按照提示将所有语法错误进行改正,若汇编过程通过,但运行结果不正确,则表明出现语义错误,此时,需利用调试软件,例如Debug进行调试,查找出现语义错误的语句进行修改,需反复进行调试,直至程序运行正确。
例:使用MASM50 汇编程序进行汇编,输入命令行masm 或者masm *.asm 后根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst 和*.crf。
*.obj-目标文件,用于连接生成可执行文件;*.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于调试;*.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。
汇编连接命令行:link [*.obj] [*.obj] [*.lib] ↙连接程序,将多个目标程序及库文件,连接生成可执行的*.exe 文件,同时可选择生成*.map 文件。
*.map-地址映像文件,给出内存地址分配的有关信息。
ZY-88系列8086/8088微机接口实验系统微机原理与接口技术实验指导书黄山学院信息工程学院2013年3月目录第一章系统概述--------------------------------------------------11.1 系统资源分配----------------------------------------------- 11.2系统组成和结构----------------------------------------------21.3使用指南----------------------------------------------------21.4 8086K实验系统与PC机联机操作--------------------------------4 第二章实验指导--------------------------------------------------51.1验证实验--------------------------------------------------- 5实验一内存清零--------------------------------------------5 实验二数码显示--------------------------------------------6 实验三存贮器读写实验--------------------------------------7 实验四简单I/O口扩展实验----------------------------------7 实验五8259单级中断控制器实验-------------------------------8 实验六定时器 / 计数器---------------------------------------11 实验七8255A并行口实验(一)---------------------------------12 实验八串行接口和应用(二)串行接收---------------------------13 实验九 A/D转换实验-----------------------------------------14 实验十D/A转换实验(一)-------------------------------------151.2设计实验-------------------------------------------------- 18模拟交通灯管理----------------------------------------------- 18第一章系统概述1.1 系统资源分配8088有1兆存储空间,系统提供用户使用的空间为00000H-0FFFFH,用于存放、调试实验程序。
实验一熟悉汇编语言环境及建立汇编的过程一、实验目的1.熟悉汇编语言环境。
2.掌握汇编语言的上机过程。
3.了解汇编语言程序的编程格式。
二、实验要求通过一个小程序的编写达到以上的实验目的。
三、实验原理1.汇编语言程序的上机过程用汇编语言编写的程序称为源程序,源程序也不能由机器直接执行,而必须翻译成机器代码组成的目标程序,这个翻译过程称为汇编。
在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的,用来把汇编语言编写的程序自动翻译成目标的软件叫汇编程序,汇编过程如下:四、实验步骤1、打开编辑环境2、输入程序CODE SEGMENTASSUME CS:CODESTART: MOV AL,01HMOV BL,40HADD AL,BLMOV DL,ALMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START3、保存源程序,以.ASM为扩展名。
C:\MASM\1.ASM4、建立汇编过程(1)用宏汇编程序汇编源程序C:\MASM>MASM 1.ASM汇编程序有3个输出文件【.obj】文件,【.LST】文件,【.CRF】文件,.OBJ文件是我们所需要的文件。
汇编程序还有另外一个重要功能:可以给出源程序中的错误信息。
(2)用连接程序将OBJ文件转换为可执行的EXE文件C:\MASM>LINK 1.OBJ5、执行程序:C:\MASM>1.EXE实验二两个多位十进制数相加的实验一、实验目的:1.学习数据传送和算术运算指令的用法。
2.熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程。
二、实验内容:将两个多位十进制数相加。
要求加数和被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图四、实验原理1.ADC 带进位相加指令的功能和指令格式2.AAA 、DAA、 AAS、 DAS指令的功能和指令格式3.伪指令SEGMENT 、ENDS、 ASSUME、MACRO、ENDM的使用4.子程序的定义(PROC NEAR/FAR ENDP),以及子程序调用和返回指令:CALL、RET的使用5.循环指令LOOP的格式以及退出循环的条件6.中断指令的使用五、实验参考程序CRLF MACRO ;建立回车换行宏MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDMDATA SEGMENT ;数据段DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)DATA ENDSCODE SEGMENT ;代码段ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET DATA2MOV BX,05CALL DISPL ;显示被加数CRLFMOV SI,OFFSET DATA1MOV BX,05CALL DISPL ;显示加数CRLFMOV DI,OFFSET DATA2CALL ADDA ;加法运算MOV SI,OFFSET DATA1MOV BX,05CALL DISPL ;显示结果CRLFMOV AX,4C00HINT 21HDISPL PROC NEAR ;显示子程序段DS1: MOV AH,02HMOV DL,[SI+BX-1] ;显示字符串中的一个字符INT 21HDEC BX ;修改偏移量JNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05AD1: SUB BYTE PTR[SI+BX-1],30H ;将ASCII码表示的数字串SUB BYTE PTR[DI+BX-1],30H ;转化位十六进制的字符串 DEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05 ;包括进位位共5位CLC ;清进位位AD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BL ;带进位相加AAA ;非组合BCD码的加法调整 MOV [SI],AL ;结果送加数区INC SIINC DI ;指向下一位LOOP AD2 ;循环MOV SI,DXMOV DI,BPMOV BX,05AD3: ADD BYTE PTR[SI+BX-1],30H ;十六进制的数字串转化ADD BYTE PTR[DI+BX-1],30H ;为ASCII码表示的数字串 DEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START六、实验步骤1.按实验要求编写程序2.汇编连接程序生成可执行文件3. 执行程序观察结果七、拓展练习编写程序完成两个多位十进制数相减。
要求显示结果格式为:被减数减数相减结果实验三字符串匹配程序一、实验目的:掌握显示提示信息的方法及接收键盘输入信息的方法。
二、实验内容:编写程序,实现两个字符串的比较。
如相同,则显示“MATCH”,否则,显示”NO MATCH”。
三、程序框图Array四、实验原理1、DB、 DUP、 EQU等伪指令的功能以及使用格式2、INT 21H 的09H子功能的功能、工作情况以及使用格式3、INT 21H的0AH子功能的功能、工作情况以及使用格式4、串扫描指令SCASB的功能以及使用格式5、入栈、出栈指令PUSH 、POP的使用情况五、实验参考程序CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMESS1 DB 'MATCH',0DH,0AH,'$'MESS2 DB 'NO MATCH',0DH,0AH,'$'MESS3 DB 'INPUT STRING1:',0DH,0AH,'$'MESS4 DB 'INPUT STRING2:',0DH,0AH,'$'MAXLEN1 DB 81ACTLEN1 DB ?STRING1 DB 81 DUP(?)MAXLEN2 DB 81ACTLEN2 DB ?STRING2 DB 81 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,DATAMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,TOP ;段寄存器及堆栈初始化MOV AH,09HMOV DX,OFFSET MESS3INT 21H ;显示输入提示1MOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21H ;接收键入的字符串1CRLF ;回车换行MOV AH,09HMOV DX,OFFSET MESS4INT 21H ;显示输入提示2MOV AH,0AHMOV DX,OFFSET MAXLEN2INT 21H ;接收键入的字符串2CRLFCLDMOV SI,OFFSET STRING1MOV CL,[SI-1]MOV CH,00H ;字符串1的实际字符数送CXKKK: MOV DI,OFFSET STRING2PUSH CXMOV CL,[DI-1]MOV CH,00H ;字符串2的实际字符数送CX MOV AL,[SI]MOV DX,DIREPNZ SCASB ;将串1中的一个字符和串2中的所有字符作比较 JZ GGG ;比较相等转GGGINC SI ;从串1中取下一个字符POP CXLOOP KKKMOV AH,09HMOV DX,OFFSET MESS2INT 21H ;显示‘NO MATCH'JMP PPPGGG: MOV AH,09HMOV DX,OFFSET MESS1INT 21H ;显示'MATCH'PPP: MOV AX,4C00HINT 21H ;返回DOSCODE ENDSEND START六实验步骤1.按实验要求编写程序2.汇编连接程序生成可执行文件3.执行程序观察结果七、拓展练习编写程序,实现两个字符串的比较。
如字符长度相同并且对应字符顺序相同,则显示“MATCH”,否则,显示“NO MATCH”。
实验四字符和数据的显示程序一、实验目的掌握字符和数据的显示方法。
二、实验内容先显示信息“INPUT STRING ,THE END FLAG IS $”,再接收字符。
如为非数字字符即非“0——9”,则计数器加1,并显示字符。
如为数字,则直接显示,但不计数。
三、程序框图四、实验原理1.程序跳转指令JMP的功能及用法2.比较指令CMP 、JB、 JBE等指令的功能及用法3.循环移位指令ROL的用法及功能4.逻辑指令AND的功能及用法五、实验参考程序CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMESS1 DB ‘INPUT STRING,THE END FLAG IS $’MESS2 DB ‘NON-DIGITAL CHAR COUNT=$’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AX ;初始化MOV BX,0000H ;计数值清0MOV AH,09HMOV DX,OFFSET MESS1INT 21HMOV AH,02HMOV DL,‘$’INT 21H ;显示提示信息CRLFXXX: MOV AH,01HINT 21H ;接收键入字符CMP AH,‘$’JZ UUU ;是‘$’字符则转UUUCMP AL,0DHJNZ IIICRLF ;是回车则回车换行JMP VVVIII: CMP AL,30HJB YYYCMP AL,39HJBE VVV ;非‘0’——‘9’转YYY YYY: INC BX ;计数值加1VVV: JMP XXXUUU: CRLFMOV AH,09HMOV DX,OFFSET MESS2INT 21H ;显示表头MOV AX,BXCALL DISP ;显示结果MOV AH,02HMOV DL,‘H’INT 21H ;十六进制数标志MOV AH,4CHINT 21HDISPP PROC NEAR ;显示子程序,按十六进制数方式显示AL中的数 MOV BL,AL ;AL中数送BLKKK: MOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPL ;显示字节高位MOV DL,BLAND DL,0FHCALL DISPL ;显示字节低位RETDISPP ENDPDISPL PROC NEARADD DL,30H ;将数值转为对应的ASCII码CMP DL,3AHJB DDD ;是‘0’——‘9’转DDDADD DL,27H ;是‘A’——‘F’DDD: MOV AH,02HINT 21H ;显示DL中字符RETDISPL ENDPDISP PROC NEAR ;显示子程序,按十六进制数方式显示AX中的数 PUSH AX ;入栈保存MOV AL,AHCALL DISPP ;显示高字节POP AXCALL DISPP ;显示低字节RETDISP ENDPCODE ENDSEND START六、实验步骤1.按实验要求编写程序2.汇编连接程序生成可执行文件3.执行程序观察结果七、拓展练习编写程序,先显示信息“INPUT STRING ,THE END FLAG IS $”,再接收字符。