微机原理实验报告材料
- 格式:doc
- 大小:9.64 MB
- 文档页数:36
微机原理综合实验报告目录一.8255并行口实验二.8259中断实验(一)三.8253定时/计数器实验四.A/D转换实验五.步进电机实验六.综合实验:十字路口交通灯实验七.实验体会四.8255并行口实验1.实验目的:(1)学习利用并行接口芯片8255构成并行接口电路的基本方法(2)熟悉掌握并行接口芯片8255的基本性能及在时间应用中的硬件连接、初始化编程方法2.实验内容:编写程序,使8255的PB口为输出口,PA口为输入口,从PA口将K0~K7作为一个字节读入,在从PB口输出这一反码字节。
3.实验程序:CODE SEGMENTASSUME CS:CODESTART:MOV DX,21BH ;8255初始化命令字MOV AL,90HOUT DX,ALBG: MOV DX,218H ;从PA口读入数据IN AL,DXXOR AL,FFH ;求反MOV DX,219HOUT DX,AL ;从PB口输出JMP BGCODE ENDSEND START4.实验框图5. 实验电路图6.实验方法说明通过8255控制字设定PA口为输入口,PB口为数据输出口,读取PA口的数值并通过求反指令将数据取反后,经由PB口输出。
8259中断实验(一)1.实验目的:(1)了解PC机的中断结构及8259中断控制器的初始化(2)熟悉8259中断控制器的工作原理和硬件连线方法(3)了解8259的应用和硬件编程方法了解8259中断屏蔽2.实验内容:编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0~L7指示灯全亮,中断服务程序从PB口输出0FFH,L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。
3.实验程序INT0 EQU 220hINT1 EQU 221hP8255B EQU 219HP8255K EQU 21BHSTACK SEGMENTSTA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:CLIMOV AX,TOPMOV SP,AXPUSH DSMOV AX,0000H ;定义IRQ0中断MOV DS,AXMOV AX,OFFSET IRQ0ADD AX,0000HMOV SI,20HMOV [SI],AXMOV AX,CSMOV SI,22HMOV [SI],AXPOP DSMOV AL,13H ;对8259进行初始化ICW1MOV DX,INT0OUT DX,ALMOV AL,8 ;对8259进行初始化ICW2 MOV DX,INT1OUT DX,ALMOV CX,0FFFFHLOOP $MOV AL,9 ;对8259进行初始化ICW4 MOV DX,INT1OUT DX,ALMOV CX,0FFFFHLOOP $MOV DX,INT1MOV AL,0FEH ;对8259进行初始化OCW1OUT DX,ALMOV CX,0FFFFHLOOP $MOV DX,INT0 ;对8259进行初始化OCW2,普通EOI返回MOV AL,20HOUT DX,ALMOV CX,0FFFFHLOOP $STIMOV DX,P8255K ;对8255进行初始化MOV AL,90HOUT DX,ALDSP: MOV AL,0FFHMOV DX,P8255BOUT DX,ALJMP DSPIRQ0: STIMOV CX,0FFFFHLOOP $MOV AL,0FHMOV DX,P8255BOUT DX,ALMOV DX,INT0MOV AL,20HOUT DX,ALMOV CX,0FFFFHLOOP $MOV CX,0FFFFHLOOP $IRETCODE ENDSEND START4.实验框图5. 实验电路图6. 实验方法说明主程序使8255输出高电平,实现L0~L7指示灯全亮。
第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。
二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。
2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。
3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。
4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。
5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。
6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。
实验报告实验四 8251可编程串行口与PC机通信实验一、实验要求利用实验箱内的8251A芯片,实现与PC机的通信。
二、实验目的1.掌握8251A芯片结构和编程方法;2.了解实现串行通信的硬件环境,数据格式和数据交换协议;3.了解PC机通信的基本要求。
三、实验原理(一)8251A芯片工作方式配置:1. 8个数据位;2.无奇偶校验位;3.1个停止位;4.波特率因子设为16;5. 波特率设为9600。
(二)8251A主要寄存器说明图4-1 模式字图4-2 命令字CO MMAN D I NSTR UCT ION FO RMA T图4-3 状态字(三)8251编程对8251 的编程就是对8251 的寄存器的操作,下面分别给出8251 的几个寄存器的格式。
(1)方式控制字方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图4-4所示。
图4-4 方式控制字说明(2)命令控制字命令控制字用于指定8251 进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。
图4-5 所示的是8251 命令控制字各位的定义。
图4-5命令控制字说明(3)状态字CPU 通过状态字来了解8251 当前的工作状态,以决定下一步的操作,8251 的状态字如图4-6所示。
图4-6 状态字说明四、实验电路连接:1.CS8251接228H,CS8279已固定接至238H;2.扩展通信口18中的232RXD连8251RXD ,232TXD连8251TXD;3.计算机的两个RS232通信口,一个连至仿真机通信口,一个连至扩展通信口18(所有通信口均为DB9)。
注意:RS232通信口必须在设备断电状态下插拔!图4-7 连线图五、实验内容及要求1. 将例程从PDF文档中导入到WMD86软件编辑环境中,调试通过。
使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。
将结果截图保存,贴入实验报告。
实验一汇编语言的编译、链接和调试一、实验目的1、学会使用masm对汇编源程序进行编译、链接、调试、运行。
2、掌握汇编语言的程序格式。
3、巩固所学的汇编语言指令。
二、实验环境1、硬件:PC 微机2、软件:宏汇编MASM 软件三、实验原理1、汇编语言程序的上机与处理过程2、汇编语言的程序格式(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。
(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。
堆栈段的SEGMENT之后有关键字STACK。
代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。
(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。
(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。
四、实验内容进入DOS环境中相应的目录下。
如汇编软件的文件来为:D:\MASM,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>D:D:\>CD MASMD:\MASM>EDIT TEXT.ASM进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。
程序示例DATA SEGMENTDA1 DB 10H,20H,30H,40HDA2 DB 0F0H,0B0H,0A0H,90HDA3 DB 00H,00H,00H,00HDATA ENDSSTACK1 SEGMENT PARA STACKDB 10 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXMOV AL,[DA1]ADD AL,[DA2]MOV [DA3],ALMOV AL,[DA1+1]ADC AL,[DA2+1]MOV [DA3+1],ALMOV AL,[DA1+2]ADC AL,[DA2+2]MOV [DA3+2],ALMOV AL,[DA1+3]ADC AL,[DA2+3]MOV [DA3+3],ALCODE ENDSEND START3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。
微机原理实验报告班级:学号:姓名:实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序流程图图3-1四、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD3RETADDA ENDP CODE ENDSEND START五、实验结果分析我们计算的结果是:84256他们结果是一样的。
本科实验报告实验名称:A/D和D/A转换课程名称:实验时间:任课教师:实验地点:实验教师:实验类型:□原理验证■综合设计□自主创新学生姓名:学号/班级:组号:学院:同组搭档:专业:成绩:实验四 A/D和D/A转换一、实验目的1、了解A/D 转换的基本原理,掌握ADC0809 的使用方法。
2、了解D/A 转换的基本原理,掌握DAC0832 芯片的使用方法。
3、了解直流电机控制的基本方法。
二、实验内容与步骤(一)A/D 转换部分1、接线:2、实验电路原理图下图通过实验台左下角电位器RW1 输出0~5V直流电压送入ADC0809 通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换: Out 298H读取转换结果: In 298H3、用万用表测量CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的。
4、编程按中断方式采集IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。
5、考虑如果采用IN7 输入的电压,启动开始转换和读取转换结果的地址应该是多少。
6、按查询方式采集IN0 输入的电压,软硬件如何实现。
编程方案1、ADC0809 的IN0 口地址为298H。
2、IN0 单极性输入电压与转换后数字的关系为:其中Ui 为输入电压,UREF 为参考电压,这里的参考电压为+5V电源。
3、一次A/D 转换的程序可以为MOV DX, PortOUT DX,AL ;启动转换;延时IN AL,DX ;读取转换结果放在AL 中(二) D/A 转换部分1、接线:CS /0832 接 Y2 /IO 地址用万用表测量 WR2 和XFER 在实验系统上如何联系的。
2、实验电路原理如图2,DAC0832 采用单缓冲方式,具有单双极性输出端(图中的Ua、Ub),利用debug 输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。
校区实验报告课程名称____________________________ 专业班级_____________________________ 学生及学号____________________________指导教师____________________________实验地点————————————————2015 ~2016 学年第二学期《微机原理与接口技术》实验一(1)实验名称存贮器部数据传送姓名系院专业电子信息类班级学号实验日期2016.6.14 指导教师成绩一、实验目的和要求1、初步掌握星研集成环境工具软件的使用方法。
2、掌握存储器部不同位置间数据传送的方法。
3、认真预习本节实验容,尝试自行编写程序,填写实验报告。
二、实验容(包括实验步骤和代码)1、编写源程序,要求将数据段中3000H~30FFH 单元的容传送给6000H~60FFH 单元中。
2、编译、连接所编写的源程序。
3、执行程序前,利用存贮器窗口将DS:3000H~300FH 中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,在相对应的地址中直接输入数据即可。
4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式运行程序,同时在工作区窗口的CommonRegister 视图中查看本程序所使用的寄存器(CX、DI、SI)容的变化。
5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。
程序如下:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,DATAMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DI,6000HCLDREPE MOVSBMOV CX,100HMOV SI,3000HMOV DI,6000HREPE CMPSBJNE ERRORTRUE: JMP $ERROR: JMP $END START三、实验结果及其分析1、通过该实验,成功地将数据段中3000H~30FFH 单元的容传送到了6000H~60FFH 单元中。
实验一拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把4000H单元的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H 的高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图
四、试验电路
五、实验步骤
用连续或单步方式运行程序,检查4000H-4002H中内容变化情况。
六、思考
如何用断点方式调试本程序。
七、程序
八、程序调试结果
实验二数据排序实验
一、实验目的
熟悉8088指令系统,掌握程序设计方法。
二、实验内容
编写并调试一个排序子程序,其方法为用冒泡法将RAM中几个单字节无符号的正整数,按从大到小的次序重新排列。
三、程序框图
四、试验电路
五、实验步骤
在4000H-400AH中通过键盘命令输入不等的10个数,运行本实验程序后检查4000H-400AH中内容是否按从大到小排列。
在和PC机联机时,用连续单步方式,可很清楚地看出数据排序时数据移动变化情况。
六、思考
编一程序把4000H-400AH中内容按从小到大排列。
七、程序
八、程序调试结果。
软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。
二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。
三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开CPU窗口,观察CPU窗口各寄存器的变化。
打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。
在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。
2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。
3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。
4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。
5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。
四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。
微机原理实验报告班级:自动化72组员梁慕佳 07054031张乐 07054033张林鹏 07054034实验一:8255 并行接口实验1 实验目的1. 学习并掌握8255 的工作方式及其应用;2. 掌握8255 典型应用电路的接法。
2 实验设备PC机一台,TD-PITE 实验装置一套。
3 实验内容1. 基本输入输出实验。
编写程序,使8255 的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2. 流水灯显示实验。
编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
4 实验原理并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示。
图2-6-1 8255内部结构及外部引脚图图2-6-2 8255控制字格式5 实验步骤1. 基本输入输出实验本实验使8255 端口A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。
用一组开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
具体实验步骤如下述:(1)实验接线图如图2-6-3所示,按图连接实验线路图;(2)编写实验程序,经编译、连接无误后装入系统;(3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。
微机原理实验总结(共5篇)第一篇:微机原理实验总结微机原理实验总结不知不觉,微机原理与接口技术实验课程已经结束了。
回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写汇编语言,对于学习机电工程的自动控制和计算机都是很重要的,因为它是和机器语言最接近的了,如果用它来编程序的话,会比用其它高级语言要快得多。
本学期我们在老师的带领下,进行了微机原理实验六到十这五组实验。
它们分别是:实验六8255 PA口控制PB口实验目的掌握单片机系统中扩展外围芯片的方法,了解8255 芯片的结构及编程方法。
实验内容用 8255 PA 口作开关量输入口,PB 口作输出口。
实验步骤1、用8 芯线将8 255 PA口接至开关Kl~K8,PB口接至发光二极管L1~L8;2、运行程序 HW06.ASM,拨动开关K1~K8,观察L1~L8发光二极管是否对应点亮。
实验七8255控制交通灯实验目的进一步了解8 255 芯片的结构及编程方法,学习模拟交通控制的实现方法。
实验内容用8255 做输出口,控制六个发光二极管燃灭,模拟交通灯管理。
实验步骤1、用双头线将8 255 PA0~PA2 口接至发光二极管L3~L1,PA3~PA5口接至发光二极管L7~L5;2、执行程序HW07.ASM,初始态为四个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
实验八简单I /O口扩展实验目的学习单片机系统中扩展简单I/O 口的方法;学习数据输入输出程序的编制方法。
实验内容利用74LS244 作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。
微机原理及接口技术实验报告一、实验目的本实验旨在通过掌握微机原理和接口技术的实验操作,实践相关理论知识,加深对微机原理和接口技术的理解。
二、实验设备和材料1.计算机主机2.操作系统3.接口卡4.编程软件三、实验原理微机原理是指通过学习微机的结构、功能和工作原理,从硬件层面掌握微机的基本知识。
接口技术是指连接不同设备之间的通信和数据交换技术,通过学习接口技术可以实现设备的互联和数据的传输。
四、实验步骤1.将接口卡插入计算机主机的扩展槽中。
2.启动计算机,并加载操作系统。
3.打开编程软件,编写实验程序。
4.将编写好的程序烧录到接口卡中。
5.连接外部设备和接口卡,并确认连接正确无误。
6.运行程序,并观察外部设备和接口卡之间的数据交互情况。
7.分析实验结果,并记录实验数据。
8.关闭程序和计算机。
五、实验结果及分析通过实验我们成功连接了外部设备和接口卡,并实现了数据的传输和交互。
在程序运行过程中,我们观察到外部设备正常工作,并且与接口卡之间的通信稳定可靠。
根据实验数据分析,我们可以得出接口卡的性能良好,并且能够满足实际应用需求。
六、实验心得通过这次实验,我对微机原理和接口技术有了更深入的理解。
实践操作让我加深了对硬件设备和软件编程的认识,掌握了实现设备互联和数据传输的基本方法。
在实验过程中,我遇到了一些问题,如接口卡的插入和连接问题,但通过查阅资料和请教老师同学,最终成功解决了这些问题。
我发现实验不仅帮助我巩固了理论知识,也提高了我的实践能力和解决问题的能力。
总结起来,微机原理和接口技术是计算机相关专业的基础课程之一,通过实验的方式学习可以更好地将理论知识与实际应用相结合。
我相信通过不断的实践和学习,我会在微机原理和接口技术方面有进一步的提高和发展。
微机原理实验原理
实验1:微机原理实验的实验目的
实验2:微机原理实验的仪器和材料
实验3:微机原理实验的实验步骤
实验4:微机原理实验的实验结果与分析
实验5:微机原理实验的实验结论
实验1:实验目的
本实验旨在通过使用微机原理实验仪器和材料,了解微机原理的基本原理和工作方式。
实验2:仪器和材料
本实验所需的仪器和材料包括微机原理实验仪器、计算机、电源线、串口通信线、示波器等。
实验3:实验步骤
1. 将微机原理实验仪器与计算机连接,确保连接稳定。
2. 打开电源线,将微机原理实验仪器通电。
3. 配置串口通信线,确保仪器与计算机之间的串口通信正常。
4. 在计算机上开启相关的软件程序,进行实验参数的设置与调整。
5. 根据实验要求,进行数据采集、数据处理以及实验结果的观察与记录。
6. 分析实验结果,根据实验目的得出相应的结论。
实验4:实验结果与分析
根据实验数据的采集和处理,我们得到了实验结果。
经过对实
验结果的分析和比较,可以得出以下结论:
- 实验结果符合预期,验证了微机原理的基本原理和工作方式。
- 实验过程中出现了一些异常情况,为了更好地理解这些异常
状况,需要进一步分析和研究。
实验5:实验结论
通过本次微机原理实验,我们深入了解了微机原理的基本原理和工作方式。
我们可以得出以下结论:
- 微机原理是计算机科学中的基础课程,对于理解和掌握计算
机系统的工作原理至关重要。
- 通过实验,我们可以进一步深入理解微机原理,为今后的学
习和科研工作奠定基础。
微机原理实验报告(3)一、实验名称七段数码显示二、实验目的掌握接口芯片的编址方法,掌握8255的初始化设置,及数码管显示原理,掌握段控及位控的概念。
三、实验内容连接地址译码器与8255的连线及8255与数码管的连线;在数据段中存放0到9的字型码;从微机键盘键入2个数字的ASCII码,在输入过程中检查如非数字则重新输入;然后将输入的ASCII码变成相应的数字,再利用换码指令XLAT查表得到相应的字型码;将字型码送到8255输出口所接的数码管上显示。
四、程序流程图:(见末页)五、实验结论:符合预期,输入2个数字,七段数码管显示这两个数字。
六、实验心得七段数码显示作为第一次硬件实验,虽然程序不难,但是在实验过程中还是遇到了不少这样或者那样的问题。
主要问题还是集中在硬件方面。
程序方面,上机之前我已经完成了程序的编写,在实验室用了大概20分钟进行了调试,消除了7个编程中的错误。
但是进行编译运行后,数码管始终无法显示正确的数字。
在确定程序无误后,我只能逐一排查运行失败的原因。
我首先检查了硬件连线,并且将优盘从主机上拔下,将影响因素尽量消除,但是仍然无法得到正确的结果。
接着我换来了已经完成实验的同学的实验箱,重新编译运行,数码管依旧无法正确显示。
最后不得已,我又换了一台电脑,编译运行同样的程序用同一个实验箱,终于获得了正确的结果。
实验后我思考了一下问什么会出现这种问题,我觉得可能是用于计算机与实验箱相连的扁平接线有问题才导致数码管始终无法正常工作。
这次实验过后,对于微机原理知识来说我并没有太多的收获,毕竟做到第三次实验,编写程序和软件的应用都已经轻车熟路了。
但是通过遇到上述的这个问题,我在分析问题、解决问题方面的能力有所提高。
这就是我这次最大的收获。
七、实验程序:INPORTA EQU 0EF00H-280H+288HINPORTB EQU 0EF00H-280H+289HINPORTC EQU 0EF00H-280H+28AHINPORTCRL EQU 0EF00H-280H+28BHSTACK SEGMENT STACKDW 100 DUP(?)STACK ENDSDATA SEGMENTFIGURE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH X DB 2 DUP(?)STRING DB 'PLEASE ENTER TWO NUMBERS:' , 0DH, 0AH, '$' DATA ENDSCODE SEGMENTASSUME CS:CODE, SS:STACK, DS:DATAMAIN PROCMOV AX,DATAMOV DS,AXMOV SI, OFFSET XMOV DX, OFFSET STRINGMOV AH, 9INT 21HCALL KEYINAND DL, 0FHMOV [SI], DLINC SICALL KEYINAND DL, 0FHMOV [SI], DLMOV DX, INPORTCRLMOV AL, 10000010BOUT DX, ALMOV BX, OFFSET FIGURENEXT1: MOV DX, INPORTAMOV SI, OFFSET XMOV AL, [SI+1]XLATOUT DX, ALMOV DX, INPORTCMOV AL, 01B; PC1=0,PC0=1OUT DX, ALCALL DELAYMOV DX, INPORTAMOV SI, OFFSET XMOV AL, [SI]XLATOUT DX, ALMOV DX, INPORTCMOV AL, 10B; PC1=1,PC0=0OUT DX, ALCALL DELAYMOV DL,0FFHMOV AH,6INT 21HJZ NEXT1MOV AH,4CHINT 21HMAIN ENDPKEYIN PROCAGAIN: MOV AH, 8INT 21HCMP AL, 30HJB AGAINCMP AL, 39HJA AGAINMOV DL, ALMOV AH, 2INT 21HRETKEYIN ENDPDELAY PROCPUSH BXPUSH CXMOV BX,100MOV CX,0NEXT2:LOOP NEXT2DEC BXJNZ NEXT2POP CXPOP BXRETDELAY ENDPCODE ENDSEND MAIN流程图:开始将数码管的字型码存入数据段从键盘输入2个数字输入数字存入数据段N设置8255控制字Y取数据段取个位数字偏移地址送入AL 寄存器设置8255A 口工作方式:将字型码输出至A 口利用XLAT 指令查得该数字所对应的字型码判断输入是否为2个数字Y初始化设置8255C 口工作方式:使PC1置0,PC0置1调用延时子程序取数据段取十位数字偏移地址送入AL 寄存器设置8255A 口工作方式:将字型码输出至A 口设置8255C 口工作方式:使PC1置1,PC0置0 检查是否有键按下调用延时子程序返回DOSNY。
实验一显示程序实验一、实验目的1. 掌握在PC机上以十六进制形式显示数据的方法;2. 掌握部分DOS功能调用使用方法;3. 熟悉Tddebug调试环境和Turbo Debugger的使用。
二、实验所用设备1. PC微机一台。
三、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。
本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。
实验中可使用DOS功能调用(INT21H)。
(1) 显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2) 显示字符串入口:AH=09H调用参数:DS:DX=串地址,’$’为结束字符(3) 键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4) 返回DOS系统入口:AH=4CH调用参数:AL=返回码四、实验步骤1.运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1-1示;2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;3.使用Rmrun菜单中的Run,运行程序,观察运行结果;4.使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5.更改数据区中的数据,考察程序的正确性。
图1-1 显示程序实验流程图五、参考程序清单六、实验报告内容及要求写出程序调试过程及运行情况。
1.将参考程序写入轻松汇编编辑框。
2.点击保存,然后编译,结果框显示编译成功。
3.点击生成,显示链接成功。
4.点击运行,显示如图:实验二数据传送实验一、实验目的1. 熟悉Tddebug调试环境和Turbo Debugger的使用;2. 掌握与数据有关的不同寻址方式。
二、实验所用设备1. PC微机一台。
三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
微机原理及接口技术实验报告班级:光094-2姓名:....学号:20091350429实验一熟悉宏汇编程序及debug一.实验目的1.学习并掌握汇编语言指令寻址方式2.熟悉在PC机上用DEBUG调试和运行汇编语言指令的过程。
二.实验内容根据给定寄存器内容及存储单元内容,运行给定指令,观察记录运行结果1、给定的寄存器内容及存储单元内容(DS)=2000H,(SI)=0002H,(BX)=0100H(20100H)=1H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H2、指令(1)M OV AX,1200H(2)M OV AX,BX(3)M OV AX,[1200H](4)M OV AX,[BX](5)M OV AX,1100H[BX](6)M OV AX,[BX][SI](7)M OV AX,1100H[BX][SI]四.调试步骤1.运行DEBUG。
2.用A命令汇编指令(1)3.按给定寄存器和存储单元内容修改寄存器和存储单元内容。
4.单步运行指令,查看结果5.重复上述步骤,调试指令(2)——(7)指令寻址方式源操作数有效地址源操作数物理地址指令运行结果(AX)1 立即寻址 0100 20100 12002 寄存器寻址 0103 20103 01003 直接寻址 1200 21200 4c2a4 寄存器间接寻址0100 20100 34125 寄存器相对寻址1200 21200 4c2a6 基址变址寻址 0102 20102 78567 相对基址变址寻址1202 21202 65b7 六.思考题1、汇编语言指令有哪些寻址方式?用于寻址的寄存器有哪些?立即数寻址、直接寻址,寄存器寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,基址变址相对寻址。
对于16位数据,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP; 对于8位数据,寄存器可以是AH,AL,BH,BL,CH,CL,DH,DL实验二寻址方式练习及多字节运算程序一.实验目的1.学习并掌握数据传送指令和算术运算指令2.熟悉在PC机上编辑、汇编、连接、调试与运行汇编语言程序的过程。
实验一汇编语言源程序的建立及DEBUG命令1、实验目的(1 ) 熟悉汇编语言源程序的建立及执行程序的生成过程;(2) 掌握EDIT、MASM、LINK的使用;(3) 掌握DEBUG调试程序方法;(4) 掌握8088汇编语言基本指令使用与简单编程。
2、实验要求(1) 用DEIT生成汇编语言源程序(*.ASM);(2) 用MASM生成目标文件(*.OBJ);(3) 用LINK生成执行文件(*.EXE);(4) 用DEBUG调试执行文件;(5) 基本寻址指令练习。
3、实验内容及步骤(1)用EDIT生成*. ASM源文件步骤:1)、进入DOS环境2)、在DOS环境中键入EDIT AAA.ASM进入全屏编辑状态3)、在2)的模式下输入程序4)、保存文件5)、保存后,按EXIT退出返回DOS,得到AAA,ASM源文件(2)用MASM生成*.,OBJ目标文件步骤:1)、进入DOS环境2)、在1)的环境下键入MASM AAA.ASM3)、直至无语法错误便得到AAA.OBJ目标文件(3)用LINK生成*. EXE执行文件在以上环境中键入LINK AAA.ASM生成*.exe文件(4)执行*. EXE文件在DOS环境中键入AAA.EXE或AAA即可(5)DEBUG基本命令使用A:汇编命令,录入指令。
A 4000:0100 从4000:0100开始的单元装入指令。
步骤:1)、进入DOS环境2)、在1)的情况下键入DEBUG有3)、在上一步的基础上键入A有U:反汇编命令,查看指令。
U:4000:0100 查看4000:0100开始的单元装入指令。
1)、在DEBUG中键入U 4000:0100有R:显示寄存器内容。
R 显示所有寄存器的内容。
R AX 显示并可修改指定寄存器的内容。
AX *** 前两位为AH的内容,后两位为AL的内容。
:不修改寄存器的内容。
AX ***:1234 将AX寄存器的内容修改为1234,AL=34,AH=12。
微机原理实验报告班级:指导老师:学号:姓名:实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图图 3-1四、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五、实验结果与分析这次实验依次将相加数与被加数存入AL,BL,依次从低位向高位相加,然后把结果放在内存中。
六、实验体会这次实验是微机原理课的第一次实验,主要是为了通过这次的实验,让我们对这个软件的编程有更深的了解、知道如何运行程序。
在实验中误把C00H ,写成了COOH.从中,我学到了许多课本里学不到的东西,有些意外,有些收获。
实验二排序实验一、实验目的掌握用汇编语言编写排序程序的思路和方法。
二、实验内容将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列。
第一个数字表示数据的个数(不是要比较的数值!!!)。
三、程序流程图图 3-2四、程序清单DATA SEGMENTADDR DW 8,234,35,67,876,54,39,765,237 DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV CX,WORD PTR ADDR[0]DEC CXLOOP1: MOV DI,CXMOV BX,2LOOP2: MOV AX,WORD PTR ADDR[BX]CMP AX,WORD PTR ADDR[BX+2]JGE CCCXCHG AX,WORD PTR ADDR[BX+2]MOV WORD PTR ADDR[BX],AX CCC: ADD BX,2LOOP LOOP2MOV CX,DILOOP LOOP1EXIT: MOV AX,4C00HINT 21HCODE ENDSEND START五、实验结果与分析这次实验是给我们8个数字,按从大到小的顺序排列出来,定义的数字中8是一个指示数字的个数量。
六、实验体会通过此次的实验,懂得了用汇编语言编写排序程序的思路和方法,知道义的数字中8是一个指示数字的个数量,不是一个数。
更加加强了我对程序的操作的熟练程度。
实验三字符串按ASCII值的查找一、实验目的1.掌握字符串按ASCII值查找的方法。
二、实验设备计算机一台。
预装Windows XP、宏汇编MASM5。
三、实验内容编写能够实现以下要求的汇编语言程序,并上机实现。
1.对一个给定的字符串,统计其中0~9的个数,并在屏幕上显示这个字符串和0~9的个数(3位十进制数)。
四、实验框图程序开始DB定义一个字符串将字符串的长度转换成十进制符串按ASCII值查找、执行结束五、程序清单DATA SEGMENTSTRING DB ' GFDsfgfdsGDA0935J/:@[]`{}KO6ASD78','$' L1 DB ?DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART PROC FARBEGIN: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXLEA BX,STRINGMOV DL,0LP2: MOV AL,[BX]CMP AL,30HJB LP3CMP AL,39HJA LP3INC DLLP3: CMP AL,'$'JE LP4INC BXJMP LP2LP4: MOV L1,DLLEA DX,STRING MOV AH,9INT 21HMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV AH,0CALL B_DRETSTART ENDPB_D PROC ;二——十进制转换及显示 MOV CL,100DIV CLPUSH AXMOV DL,ALADD DL,30HMOV AH,2INT 21HPOP AXMOV AL,AHMOV AH,0MOV CL,10DIV CLPUSH AXADD DL,30H MOV AH,2 INT 21HPOP AXMOV DL,AH ADD DL,30H MOV AH,2 INT 21HRETB_D ENDPCODE ENDSEND BEGIN六、实验结果与分析大写的英文字符A~Z的ASCII码是41H~5AH,小写的英文字符a~z的ASCII码是61H~7AH,如果一个字符的ASCII码在这两个范围内,则满足要求。
七、实验体会通过此次的实验更加加强了我对ASCII码转换的应用,以后可以对这个问题,有更深的了解,而且我能很快的用它进行查找,很有收获。
实验四 DOS输入输出功能的使用一、实验目的1.掌握8086汇编语言程序的汇编、链接、运行的方法。
2.掌握用软中断调用DOS输入输出功能的方法。
3.掌握将二进制数转换成十进制数的编程方法。
二、实验设备计算机一台。
预装Windows XP、宏汇编MASM5。
三、实验内容程序开始DB定义一个字符串将字符串的长度转换成十进制MOV DL,字符ASCII码“$”结束四、程序清单DATA SEGMENTSTRING1 DB '1234567890ABCDEFG','$' ;准备显示的字符串COUNT DB $-STRING1-1 ;上面字符串的长度DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 100 DUP(100)STACK ENDSCODE SEGMENTSTART PROC FARASSUME CS:CODE, SS:STACK,DS:DATABEGIN: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXLEA DX,STRING1 ;输出字符串MOV AH,9INT 21H;输出回车和换行符,以实现另起一行MOV DL,0DH ;输出回车命令MOV AH,2INT 21HMOV DL,0AH ;输出换行命令MOV AH,2INT 21HMOV AL,COUNT ;将字符串长度转换成3位十进制数输出 MOV AH,0 ;高8位补0MOV CL,100DIV CL ;除以100获得百位数PUSH AX ;暂存结果和余数MOV DL,ALADD DL,30H ;换成ASCII码MOV AH,2 ;输出字符到屏幕INT 21HPOP AX ;恢复结果和余数MOV AL,AH ;余数作为被除数MOV AH,0MOV CL,10DIV CL ;除以10获得十位数PUSH AXMOV DL,ALADD DL,30HMOV AH,2INT 21HPOP AXMOV DL,AHADD DL,30HMOV AH,2INT 21HMOV DL,0DH ;输出回车命令 MOV AH,2INT 21HMOV DL,0AH ;输出换行命令 MOV AH,2INT 21HRETSTART ENDPCODE ENDSEND BEGIN五、实验结果及分析这就是二进制转为十进制的结果六、实验体会这次实验,我基本掌握8086汇编语言程序的汇编、链接、运行的方法。
同时也学会了用软中断调用DOS输入输出功能的方法,还有基本的掌握将二进制数转换成十进制数的编程方法。
这次实验学到了很多,希望以后更有进步。
实验五 8255并行I/O口实验一、实验要求利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输入,PB口作输出。
二、实验目的1、了解8255芯片结构及编程方法。
2、了解8255输入/输出实验方法。
三、预备知识8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。
它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。
这24根端口线全部为双向三态。
三个端口可分二组来使用,可分别工作于三种不同的工作方式。
四、实验原理图及连线1、本实验主要用到的模块:8255模块、开关量输出模块、0-1指示模块、实验译码单元等;2、PA0-PA7分别接开关量输出模块S0-S7对应的插座;3、PB0-PB7分别接0-1指示模块DO71-DO78对应的插座;4、8255A的片选/CS接地址译码单元的2A0-2A7;5、数据线XD0—XD7接系统数据线区的任一插座。