北邮微机原理与接口技术硬件实验报告

合集下载

北邮微原硬件实验报告

北邮微原硬件实验报告

2014—2015学年第一学期《微机原理硬件》实验报告专业电子信息工程班级姓名申宇飞学号班内序号 03报告日期 2015年1月目录实验一I/O地址译码 (3)一、实验目的 (3)二、实验内容及原理,实验硬件接线图 (3)三、程序流程图及源代码 (5)1、程序流程图: (5)2、源代码: (5)四、实验结果 (6)五、实验收获与心得体会 (6)实验二简单并行接口 (7)一、实验目的 (7)二、实验内容及原理,实验硬件接线图 (7)三、程序流程图及源代码 (9)1、程序流程图: (9)2、源代码: (9)四、实验结果 (10)五、实验收获与心得体会 (10)实验四七段数码管 (10)一、实验目的 (10)二、实验内容及原理,实验硬件接线图 (10)三、程序流程图及源代码 (12)1、程序流程图: (13)2、源代码: (13)四、实验结果 (15)五、实验收获与心得体会 (15)实验八可编程定时器/计数器(8253/8254) (15)一、实验目的 (16)二、实验内容及原理,实验硬件接线图 (16)三、程序流程图及源代码 (17)四、实验结果 (24)五、实验收获与心得体会 (24)实验十六串行口8251A实验 (24)一、实验目的 (24)二、实验内容及原理,实验硬件接线图 (25)三、程序流程图及源代码 (32)1、程序流程图 (32)2、源程序: (32)四、实验结果 (34)五、实验收获与心得体会 (35)实验一I/O地址译码一、实验目的1.通过实验了解和熟悉实验台的结构,功能及使用方法。

2.掌握I/O地址译码电路的工作原理。

二、实验内容及原理,实验硬件接线图图 1-1 实验硬件接线图1、硬件接线提示:Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D角发器接 +5VQ/D触发器接 L7(LED灯)或逻辑笔2、实验内容及原理:实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告实验报告一:I/0地址译码和简单并行接口——实验一&实验二一、实验目的掌握I/O地址译码电路的工作原理;掌握简单并行接口的工作原理及使用方法。

二、实验原理及内容a) I/0地址译码1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔经过软件延时实现。

2、接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D触发器接 +5VQ/D触发器接L7(LED灯)或逻辑笔b) 简单并行接口1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码经过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

北邮微机原理硬件实验报告

北邮微机原理硬件实验报告

北邮微机原理硬件实验报告实验目的本次实验主要是通过对微机原理的学习,掌握多种硬件器件的基本使用,包括程序寄存器(PRG)、数据寄存器(DR)、累加器(AC)等,也希望能够初步了解微机系统的结构和工作原理。

实验内容1. 按以下程序编写汇编程序ORG 0HLOOP: MOV A,NUMADD BINC R5MOV MEM,R5SJMP LOOPENDNUM: DB 50HB: DB 35HR5: EQU 25HMEM: DS 1编写程序后,运行该程序,观察程序在8051微处理器上执行的情况。

2. 制作简易流水灯电路使用LED等元器件,制作一个简单的流水灯电路。

同时,编写相应的汇编程序,实现流水灯的基本效果。

3. 实现双向流水灯效果在完成流水灯电路的基础上,通过改变程序实现双向流水灯的效果。

在这个过程中,需要仔细分析程序的实现方式,并且结合8615芯片的具体情况,理解程序在底层机器中的工作方式。

4. 实现用数码管显示数字的功能使用7段数码管,将程序输出的结果显示在数码管上。

在这个过程中,我们需要灵活处理I/O端口和存储器的读写,以及处理各类中断信号。

实验过程1. 编写并调试汇编程序我们首先使用Keil软件编写了相应的汇编程序,并在8051单片机上运行。

在运行过程中发现,程序能够成功地对NUM与B进行加法运算,并将结果存储在MEM中。

2. 制作流水灯电路我们使用LED、电阻等元器件,制作了一个简单的流水灯电路,并测试了该电路的基本工作情况。

由于电路较为简单,因此没有出现特别明显的问题。

3. 实现双向流水灯效果为了实现双向流水灯效果,我们对程序进行了修改。

在这个过程中,初步出现了一些问题,包括倒计时初始值不正确、程序中断启动终止不及时等。

经过反复调试,我们成功地实现了这一功能。

4. 实现用数码管显示数字的功能最后,我们将流水灯程序变更为用数码管显示数字的程序。

在这个过程中,我们主要用到了表格查找和存储器读写等基本操作,成功将结果在数码管上显示。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告
本次实验是关于微机原理与接口技术的实验报告,通过本次实验,我们将深入
了解微机原理与接口技术的相关知识,并通过实际操作来加深对这些知识的理解和掌握。

实验一,微机原理。

在本次实验中,我们首先学习了微机的基本原理,包括微机的组成结构、工作
原理和基本功能。

通过实际操作,我们了解了微机的主要组成部分,如中央处理器(CPU)、内存、输入输出设备等,并学习了它们之间的工作原理和相互配合关系。

同时,我们还学习了微机的基本指令系统和数据传输方式,加深了对微机工作原理的理解。

实验二,接口技术。

在接口技术的实验中,我们学习了微机与外部设备之间的接口技术,包括并行
接口、串行接口和通用接口等。

我们通过实际操作,了解了这些接口技术的工作原理和应用场景,学会了如何通过接口技术实现微机与外部设备的数据交换和通信。

实验三,实验综合。

在本次实验的最后,我们进行了一个综合实验,通过实际操作来综合运用微机
原理和接口技术的知识,实现一个具体的功能。

通过这个实验,我们加深了对微机原理与接口技术的理解,掌握了如何将理论知识应用到实际操作中。

总结。

通过本次实验,我们深入学习了微机原理与接口技术的相关知识,并通过实际
操作加深了对这些知识的理解和掌握。

微机原理与接口技术作为计算机科学与技术的基础知识,对我们今后的学习和工作都具有重要意义。

希望通过这次实验,能够对大家的学习和工作有所帮助,并为今后的学习打下坚实的基础。

以上就是本次实验的实验报告,希望对大家有所帮助。

感谢大家的阅读!。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在通过实际操作,加深对微机原理与接口技术的理解,掌握接口技术的基本原理和应用方法,提高学生的动手能力和实际应用能力。

实验内容:1. 学习并掌握微机原理与接口技术的基本知识;2. 了解并熟悉常见的接口技术及其应用;3. 进行实际操作,设计并完成一个简单的接口电路。

实验仪器与设备:1. 个人电脑;2. 电子元件,电阻、电容、集成电路等;3. 实验板、示波器、示教电脑等。

实验步骤:1. 阅读相关的微机原理与接口技术的教材,了解基本原理;2. 学习常见的接口技术,例如并行接口、串行接口等;3. 进行实际操作,设计一个简单的接口电路,包括硬件设计和软件编程;4. 调试电路,确保接口电路能够正常工作;5. 编写实验报告,总结实验过程和实验结果。

实验结果与分析:经过实际操作,我们成功设计并完成了一个简单的接口电路。

在实验过程中,我们深入理解了微机原理与接口技术的相关知识,掌握了接口技术的基本原理和应用方法。

通过调试电路,我们验证了接口电路的正常工作,加深了对接口技术的理解。

结论:本次实验使我们更加深入地了解了微机原理与接口技术,提高了我们的动手能力和实际应用能力。

通过设计和完成接口电路,我们对接口技术有了更加直观的认识,为今后的学习和工作打下了坚实的基础。

总结:微机原理与接口技术是计算机专业的重要课程,通过实验学习,我们不仅加深了对知识的理解,还提高了动手能力和实际应用能力。

希望同学们能够认真对待每一次实验,不断提升自己的能力,为未来的发展打下坚实的基础。

至此,本次微机原理与接口技术实验报告完毕。

《微机原理与及接口技术》课程硬件实验报告

《微机原理与及接口技术》课程硬件实验报告
双色 LED 有共阴、共阳两种封装形式,提供 3 个引脚,其中一个为公共端,两个为显示控制端。
图3-4双色LED结构原理图
4.基础型实验
如图 3-5 所示是采用 P1 口控制 4 个双色 LED 的接口电路。在 Keil 环境运行并调程程序,观察结果。
图3-5交通灯显示接口电路
分析:设4个双色LED为东南西北四个方向的交通指示灯,从上到下4个分别代表东南西北方向;设双色LED的1脚控制红色LED,3脚控制绿色LED
延时一段时间后(0.5s),再切换到东西路口的绿灯亮,南北路口的红灯亮;
不断重复以上过程,实现模拟交通灯控制。
硬件实验6八段数码管显示实验
1.实验目的
1)了解数码管实现显示字符的7段码编制方法;
2)掌握查表法获得0-F的7段码的方法;
3)掌握静态显示和动态显示的原理,硬件连接方式和程序编写方法。
2.预习要求
设流经每个LED的电流为3mA,则P0中每条口线上拉出的最大电流是3mA;而灌入P1口线的最大电流是一个数码管的8个LED全部显示的情况,即有24mA。
因此应该在P1口与数码管之间加入驱动芯片(该芯片要求至少能够灌入24mA电流,本图中未画出,实验箱设计图中是加了一个74573)。
5.设计型实验
(1)一个静态数码管的电路如3-14所示,编写程序,在该数码管上依次显示0-9数字,每个数字显示时间为1s。
当红色 LED 点亮、绿色 LED 不点亮时,发光二极管显示红色; 当绿色 LED 点亮、红色 LED 不点亮时,发光二极管显示绿色; 当红色 LED、绿色 LED 同时点亮时,发光二极管呈现的是黄色。
另外,当控制双色 LED 红、绿两个 PN 结流过不同比例的电流时,可以使其发出粉红、淡绿、淡黄、黄色等不同的色彩,达到简单的“彩色”显示效果。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。

一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。

根据显示屏上的自检信息,可以判断计算机硬件的工作状态。

2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。

首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。

在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。

通过观察实验结果,判断串口通信是否正常。

3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。

首先,将并行口接口连接到计算机主机。

然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。

通过编写程序,实现计算机与外设设备之间的数据交互。

观察实验结果,判断并口通信是否正常。

4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。

首先,将USB接口连接到计算机主机。

然后,在计算机中安装相应的驱动程序。

通过编写程序,实现计算机与外设设备之间的数据交互。

观察实验结果,判断USB接口是否正常工作。

5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。

首先,将计算机连接到局域网中的其他计算机。

然后,进行相应的设置,包括IP地址、子网掩码等。

通过编写程序,实现计算机之间的数据交互。

观察实验结果,判断网络接口是否正常工作。

三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。

通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告实验一,微机原理实验。

1. 实验目的。

本实验旨在通过对微机原理的实验,加深学生对微机原理相关知识的理解,提高学生的动手能力和实验技能。

2. 实验内容。

本实验主要包括微机原理的基本知识、微处理器的结构和功能、微机系统的总线结构、存储器与I/O接口。

3. 实验步骤。

(1)了解微机原理的基本知识,包括微处理器的分类、功能和工作原理。

(2)学习微机系统的总线结构,掌握总线的分类、功能和工作原理。

(3)了解存储器与I/O接口的基本概念和工作原理。

(4)进行实际操作,通过实验板进行微机原理实验,加深对微机原理知识的理解。

4. 实验结果。

通过本次实验,我深刻理解了微机原理的基本知识,掌握了微处理器的结构和功能,了解了微机系统的总线结构,以及存储器与I/O接口的工作原理。

通过实际操作,我对微机原理有了更深入的认识,提高了自己的动手能力和实验技能。

实验二,接口技术实验。

1. 实验目的。

本实验旨在通过对接口技术的实验,加深学生对接口技术相关知识的理解,提高学生的动手能力和实验技能。

2. 实验内容。

本实验主要包括接口技术的基本知识、接口电路的设计与调试、接口技术在实际应用中的作用。

3. 实验步骤。

(1)了解接口技术的基本知识,包括接口的分类、功能和设计原则。

(2)学习接口电路的设计与调试,掌握接口电路设计的基本方法和调试技巧。

(3)了解接口技术在实际应用中的作用,包括各种接口的应用场景和实际案例。

(4)进行实际操作,通过实验板进行接口技术实验,加深对接口技术知识的理解。

4. 实验结果。

通过本次实验,我深刻理解了接口技术的基本知识,掌握了接口电路的设计与调试方法,了解了接口技术在实际应用中的作用。

通过实际操作,我对接口技术有了更深入的认识,提高了自己的动手能力和实验技能。

总结。

通过微机原理与接口技术的实验,我对微机原理和接口技术有了更深入的理解,提高了自己的动手能力和实验技能。

希望通过今后的学习和实践,能够更加深入地掌握微机原理与接口技术的知识,为将来的工作和研究打下坚实的基础。

北邮微原硬件实验报告

北邮微原硬件实验报告

2013年微机原理硬件实验报告学院:信息与通信工程学院班级:2011211104姓名:实验一 I/O地址译码一.实验目的掌握I/O地址译码电路的工作原理。

二.实验原理和内容1.实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。

原理:地址2A0H的A5,A4,A5为100,在输入或输出时,IOW或IOR为0,使得74LS138被选中,经过译码,在Y4口输出负脉冲。

其他同理。

图1-1利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

2.接线: Y4/IO地址接 CLK/D触发器Y5/IO 地址 接 CD/D 触发器D/D 触发器 接 SD/D 角发器 接 +5VQ/D 触发器 接 L7(LED 灯)或 逻辑笔三.程序流程图四.源程序DATASEGMENT DATAENDSSTACKSEGMENT STACK 'STACK'DB 100H DUP(?) STACKENDS否CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK;延时子程序DELAY PROC NEARMOV BX,500PUSH CXLOOP2: MOV CX,0FFFHWAIT: LOOP WAITDEC BXJNZ LOOP2POP CXRETDELAY ENDPSTART: MOV CX,0FFFFH;二极管闪烁部分LOOP1: MOV DX,2A0H ;灯亮OUT DX,ALCALL DELAYMOV DX,2A8H ;灯灭OUT DX,ALCALL DELAYLOOP LOOP1CODE ENDSEND START五.实验结果LED7正常闪烁显示六.实验总结这是我们第一次做微原硬件实验,我开始一直觉得编程很重要,发现按照实验要求很快就编出了程序,完成了实验,但是当给老师验收时,老师问我为什么向2A0口输出一下,就会在Y4产生一个负脉冲,我瞬间就僵住了,的确我没有考虑过这个问题。

北邮-通信工程-微机原理与接口技术-硬件实验-实验报告

北邮-通信工程-微机原理与接口技术-硬件实验-实验报告

北邮-通信工程-微机原理与接口技术-硬件实验-实验报告实验一I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。

二、实验原理和内容1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O 地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,…… ,当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲;执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

2、接线:Y4/IO地址接CLK/D触发器Y5/IO地址接CD/D触发器D/D触发器接SD/D角发器接+5VQ/D触发器接L7(LED灯)或逻辑笔三、硬件接线图与软件程序流程图1、硬件接线图2、软件程序流程图开始Y4输出一个负脉冲调用延时子程序Y5输出一个负脉冲调用延时子程序否CX-1=0?是结束,返回DOS四、源程序DATA SEGMENTDATA ENDSSTACK SEGMENT STACK 'STACK'DB 100H DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKDELAY1 P ROC NEAR ;延时子程序MOV BX,500HPUSH CXLOOP2: MOV CX,0FFFHWAIT1: LOOP WAIT1DEC BXJNZ LOOP2POP CXRETDELAY1 E NDP;L7闪烁START: MOV CX,0FFFFH ;最大可循环次数LOOP1: MOV DX,2A0H ;灯亮OUT DX,ALCALL DELAY1MOV DX,2A8H ;灯灭OUT DX,ALCALL DELAY1LOOP LOOP1 ;循环闪烁CODE ENDSEND START五、实验结果灯L7闪烁,一段时间后停止。

微机原理与接口技术硬件试验报告北邮

微机原理与接口技术硬件试验报告北邮

微原硬件实验报告班级:07118班学号:070547班内序号:26姓名:杨帆实验一熟悉实验环境及10的使用一,实验目的1.通过实验了解和熟悉实验台的结构,功能及使用方法。

2.通过实验掌握直接使用Debug的I、0命令来读写10端口。

3.学会Debug的使用及编写汇编程序二,实验内容1.学习使用Debug命令,并用I、0命令直接对端口进行读写操作,2•用汇编语言编写跑马灯程序。

(使用EDIT编辑工具)实现功能A.通过读入端口状态(0N为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)三,实验步骤1.实验板的10端口地址为EEE0H在Debug下,I是读命令。

(即读输入端口的状态---拨码开关的状态)0是写命令。

(即向端口输出数据---通过发光管来查看)进入Debug后,读端口拨动实验台上八位拨码开关输入I端口地址回车屏幕显示xx表示从端口读出的内容,即八位开关的状态0N是O,0FF是1写端口输入0端口地址xx (xx表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0是灯亮,1是灯灭。

2.在Debug环境下用a命令录入程序,用g命令运行C>Debug -amov dx,端口地址mov al,输出内容out dx, almov ah, Obhint 21hor al, aljzO1OOint 20h-g运行查看结果,修改输出内容再运行查看结果分析mov ah, Obhint 21hor al, aljzO1OOint 2Oh该段程序的作用3.利用EDIT工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)B.通过输出端口控制灯的工作状态(低电平灯亮)C>EDIT文件名.asm录入程序按Alt键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm连接文件C>LINK 文件名.obj运行文件或用Debug进行调试。

微机原理及接口技术实验报告

微机原理及接口技术实验报告

微机原理及接口技术实验报告一、实验目的本实验旨在通过掌握微机原理和接口技术的实验操作,实践相关理论知识,加深对微机原理和接口技术的理解。

二、实验设备和材料1.计算机主机2.操作系统3.接口卡4.编程软件三、实验原理微机原理是指通过学习微机的结构、功能和工作原理,从硬件层面掌握微机的基本知识。

接口技术是指连接不同设备之间的通信和数据交换技术,通过学习接口技术可以实现设备的互联和数据的传输。

四、实验步骤1.将接口卡插入计算机主机的扩展槽中。

2.启动计算机,并加载操作系统。

3.打开编程软件,编写实验程序。

4.将编写好的程序烧录到接口卡中。

5.连接外部设备和接口卡,并确认连接正确无误。

6.运行程序,并观察外部设备和接口卡之间的数据交互情况。

7.分析实验结果,并记录实验数据。

8.关闭程序和计算机。

五、实验结果及分析通过实验我们成功连接了外部设备和接口卡,并实现了数据的传输和交互。

在程序运行过程中,我们观察到外部设备正常工作,并且与接口卡之间的通信稳定可靠。

根据实验数据分析,我们可以得出接口卡的性能良好,并且能够满足实际应用需求。

六、实验心得通过这次实验,我对微机原理和接口技术有了更深入的理解。

实践操作让我加深了对硬件设备和软件编程的认识,掌握了实现设备互联和数据传输的基本方法。

在实验过程中,我遇到了一些问题,如接口卡的插入和连接问题,但通过查阅资料和请教老师同学,最终成功解决了这些问题。

我发现实验不仅帮助我巩固了理论知识,也提高了我的实践能力和解决问题的能力。

总结起来,微机原理和接口技术是计算机相关专业的基础课程之一,通过实验的方式学习可以更好地将理论知识与实际应用相结合。

我相信通过不断的实践和学习,我会在微机原理和接口技术方面有进一步的提高和发展。

北邮 微机原理实验报告

北邮 微机原理实验报告

北邮微机原理实验报告一、实验目的本实验旨在通过对微机原理的实际操作,加深对计算机内部结构和工作原理的理解,并通过实验验证理论知识的正确性。

二、实验设备和材料•计算机硬件设备:PC机一台、示波器一台、数字信号发生器一台。

•软件工具:TASM、MASM汇编语言编译器。

三、实验内容本实验分为以下几个步骤:1. 准备工作•将PC机与示波器、数字信号发生器连接。

•打开PC机,进入实验环境。

2. 实验一:简单指令的执行•编写一个简单的汇编程序,实现两个数相加并将结果存储到指定寄存器中。

•使用TASM或MASM编译器对汇编程序进行编译,生成可执行文件。

•运行可执行文件,在示波器上观察到相加过程的波形。

3. 实验二:数据传输操作•编写一个汇编程序,实现数据在不同寄存器和内存之间的传输。

•编译并运行程序,通过观察PC机上的输出结果,验证数据传输的正确性。

4. 实验三:逻辑运算和移位操作•编写程序,实现逻辑运算和移位操作,并观察运算结果。

•通过数字信号发生器产生相应的输入信号,验证程序的正确性。

5. 实验四:中断处理•编写一个汇编程序,实现对中断请求的响应和处理。

•通过示波器观察中断请求和处理的波形,验证程序的正确性。

6. 实验五:串行通信操作•编写程序,实现串行通信的发送和接收操作。

•通过示波器观察串行通信的波形,验证程序的正确性。

四、实验结果和分析•对每个实验步骤进行记录,并详细分析实验结果。

•比较实验结果与理论预期是否一致,并给出原因分析。

五、实验心得通过本次实验,我深刻理解了微机原理的实际应用和操作过程。

通过实际操作,我对计算机内部结构和工作原理有了更深入的了解,并通过实验验证了理论知识的正确性。

同时,我也意识到在实际操作中的一些细节和注意事项,这对我今后的学习和工作都有很大的帮助。

六、实验总结通过本次实验,我不仅掌握了微机原理的实际应用技能,还深化了对计算机内部结构和工作原理的理解。

实验过程中,我遇到了一些问题,但通过思考和实践,逐步解决了这些问题,并取得了满意的实验结果。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的,通过本次实验,掌握微机原理与接口技术的基本知识,了解并掌握微机接口技术的应用方法。

实验仪器与设备,微机实验箱、接口卡、示波器、电源等。

实验原理,微机接口技术是指微机与外部设备进行数据交换的技术。

它是微机与外部设备之间的桥梁,通过接口技术可以实现微机与外部设备之间的数据传输和通信。

实验内容与步骤:1. 实验一,串行通信接口实验。

a. 将串行通信接口卡插入微机实验箱的接口槽中;b. 连接示波器和外部设备,并进行数据传输测试;c. 观察并记录数据传输的波形和数据传输情况。

2. 实验二,并行通信接口实验。

a. 将并行通信接口卡插入微机实验箱的接口槽中;b. 连接外部设备,并进行数据传输测试;c. 观察并记录数据传输的情况。

3. 实验三,AD转换接口实验。

a. 将AD转换接口卡插入微机实验箱的接口槽中;b. 连接外部模拟信号源,并进行模拟信号转换测试;c. 观察并记录模拟信号转换的波形和数据传输情况。

实验结果与分析:1. 串行通信接口实验结果分析:通过实验发现,在串行通信接口实验中,数据传输的波形稳定,数据传输速度较快,适用于对数据传输速度要求较高的应用场景。

2. 并行通信接口实验结果分析:在并行通信接口实验中,数据传输稳定,但数据传输速度相对较慢,适用于对数据传输速度要求不高的应用场景。

3. AD转换接口实验结果分析:经过实验发现,AD转换接口可以将模拟信号转换为数字信号,并且转换精度较高,适用于对信号转换精度要求较高的应用场景。

实验总结与展望:通过本次实验,我们深入了解了微机原理与接口技术的基本知识,掌握了串行通信接口、并行通信接口和AD转换接口的应用方法。

同时,也发现不同接口技术在数据传输速度、稳定性和精度方面各有优劣,需要根据实际应用场景进行选择。

未来,我们将继续深入学习和探索微机接口技术的应用,为实际工程项目提供更好的技术支持。

结语:通过本次实验,我们对微机原理与接口技术有了更深入的了解,实验结果也验证了接口技术在数据传输和信号转换方面的重要作用。

北邮—微机原理与接口技术(3)

北邮—微机原理与接口技术(3)

微机原理与接口技术硬件实验报告目录3.实验三8253计数器/定时器的应用 (3)3.1.实验目的 (3)3.2.实验内容 (3)3.2.1.连接电路并测试 (3)3.2.2.音乐播放 (6)3.2.3.弹琴 (17)3.3.思考题 (27)3.4.心得体会 (27)参考资料 (28)声明与致谢 (28)3.实验三8253计数器/定时器的应用3.1.实验目的学习掌握8253用作定时器的编程原理。

3.2.实验内容3.2.1.连接电路并测试8253的CS接译码器输出Y1(其地址为E820-E827H);8253的OUT接蜂鸣器的BELL端;8253的门控信号GATE接+5V;8253的CLK端接Q7(32KHz);清零复位电路中的T/C端接地(或接RESET端)。

图13电路连接示意(局部)图14线路连接在本实验中,只采用定时器0,方式3,只用低字节初始化,故初始化控制字为00010110B,即16H。

它发往控制口E803H。

初值赋给端口E800H。

利用下表,在debug模式下,测试8253与蜂鸣器工作状况。

表4不同音高对应分频数(基频32KHz)音名分频数(十六进制)低音中音高音更高音甚高音Do80402010Re72391C0EMi663319Fa603018So552B15La4D2613Si87442211 CODE(debug mode)MOV DX,E823MOV AL,16OUT DX,ALMOV DX,E820MOV AL,80OUT DX,AL经检验,蜂鸣器发声正常。

3.2.2.音乐播放完成一个音乐发生器,通过蜂鸣器放出音乐,并在数码管上显示乐谱。

程序设计:音乐为巴赫的小步舞曲,只放一遍。

放音乐时,在最左边的数码管上显示播放的音符。

放完音乐或用户敲击键盘时退出程序返回DOS。

返回DOS 前,数码管全灭,蜂鸣器静音。

流程图如下:图15音乐播放流程图程序源代码:CODE(minuet.asm);FILENAME:minuet.asm;AUTHOR:XIAO,Zhiqing(No.13,Cl.07105);DATE:20091223;DESCRIPTION:play music;=============macro=============;macro:myOut(WARNING:it may change the value of AL);it's strongly recommended that data be ALmyOut MACRO portAddr,dataPUSH DXMOV DX,portAddrMOV AL,dataOUT DX,ALPOP DXENDM;macro:myLutOut(WARNING:it may change the value of AL);it's strongly recommended that data be ALmyLutOut MACRO portAddr,lut,dataPUSH DXPUSH BXMOV BX,OFFSET lutMOV AL,dataXLAT lutMOV DX,portAddrOUT DX,ALPOP BXPOP DXENDM;macro:myIn(WARNING:it may change the value of AL);it's strongly recommended that data be ALmyIn MACRO portAddr,dataPUSH DXMOV DX,portAddrIN AL,DXMOV data,ALPOP DXENDM;=============data segment=============Data SEGMENT;Segments Lookup TableSegLut DB0EDH,21H,0F4H,0F1H,39H;"01234"DB0D9H,0DDH,61H,0FDH,0F9H;"56789"DB7DH,9DH,0CCH,0B5H,0DCH,5CH; "ABCDEF"DB3DH,8CH;'H'(10H)'L'(11H)DB00H,10H;''(12H)'-'(13H)space EQU12Hbar EQU13H;Content index array to printContent DB12H,12H,12H,12H,12H,12H;Voice to playFreq DB0H;freqsiF EQU87H;32k/240;0do0EQU80H;32k/256;1re0EQU72H;32k/288;2mi0EQU66H;32k/320;3fa0EQU60H;32k/341;4so0EQU55H;32k/384;5la0EQU4DH;32k/427;6si0EQU44H;32k/480;7do1EQU40H;32k/512;8re1EQU39H;32k/576;9mi1EQU33H;32k/640;Afa1EQU30H;32k/682;Bso1EQU2BH;32k/768;Cla1EQU26H;32k/853;Dsi1EQU22H;32k/960;Edo2EQU20H;32k/1024;Fre2EQU1CH;mi2EQU19H;fa2EQU18H;so2EQU15H;la2EQU13H;si2EQU11H;do3EQU10H;re3EQU0EH;;music freq lookup tableFreqLut DB siF; (00H)DB do0,re0,mi0,fa0,so0,la0,si0;(01H-07H)DB do1,re1,mi1,fa1,so1,la1,si1;(08H-0EH)DB do2;(0FH)DB re2,mi2,fa2,so2,la2,si2DB do3,re3;music display lookup tableTubeLut DB 61H;(00H)DB21H,0F4H,0F1H,39H,0D9H,0DDH,61H; (01H-07H)DB21H,0F4H,0F1H,39H,0D9H,0DDH,61H; (08H-0EH)DB21H;(0FH)DB0F4H,0F1H,39H,0D9H,0DDH,61HDB21H,0F4H,0F1H,39H,0D9H,0DDH,61H ;button matrixbuttonPressed DB0;0FFH for pressed,00H for not.buttonRow DB0buttonCol DB0buttonIndex DB0buttonEnable DW0000Hlab EQU1;1stand for Xue9,0stand for Jiao2IF lab;Xue9PortSw EQU0E8E0H;8255PortA EQU0E800HPortB EQU0E801HPortC EQU0E802HPortControl EQU0E803H;8253Timer0EQU0E820HTimer1EQU0E821HTimer2EQU0E822HTimerControl EQU0E823HELSE;Jiao2PortSw EQU0EEE0H;8255PortA EQU0EE00HPortB EQU0EE01HPortC EQU0EE02HPortControl EQU0EE03H;8253Timer0EQU0EE20HTimer1EQU0EE21HTimer2EQU0EE22HTimerControl EQU0EE23HENDIFNotes DB07H+5,07H+1,07H+2,07H+3,07H+4,07H+5, 07H+1,07H+1DB07H+6,07H+4,07H+5,07H+6,07H+7,0EH+1, 07H+1,07H+1DB07H+4,07H+5,07H+4,07H+3,07H+2,07H+3, 07H+4,07H+3,07H+2,07H+1DB00H+7,07H+1,07H+2,07H+3,07H+1,07H+2DB07H+5,07H+1,07H+2,07H+3,07H+4,07H+5, 07H+1,07H+1DB07H+6,07H+4,07H+5,07H+6,07H+7,0EH+1, 07H+1,07H+1DB07H+4,07H+5,07H+4,07H+3,07H+2,07H+3, 07H+4,07H+3,07H+2,07H+1DB07H+2,07H+3,07H+2,07H+1,00H+7,07H+1DB0EH+1,07H+7,07H+6,07H+7,07H+3,07H+3DB07H+6,00H+6,00H+7,07H+1,07H+2,07H+3, 07H+3,07H+2,07H+3DB07H+4,07H+5,07H+4,07H+3,07H+2,07H+3, 07H+4,07H+3,07H+2,07H+1DB07H+2,07H+3,07H+2,07H+1,07H+2,00H+7DB0EH+1,07H+7,07H+6,07H+7,07H+3,07H+3DB07H+6,00H+6,00H+7,07H+1,07H+2,07H+3, 07H+3,07H+2,07H+3DB07H+4,07H+5,07H+4,07H+3,07H+2,07H+3, 07H+4,07H+3,07H+2,07H+1DB07H+2,07H+3,07H+2,07H+1,00H+7,07H+1 LengthOfSong EQU$-NotesDuration DB4,2,2,2,2,4,4,4DB4,2,2,2,2,4,4,4DB4,2,2,2,2,4,2,2,2,2DB4,2,2,2,2,12DB4,2,2,2,2,4,4,4DB4,2,2,2,2,4,4,4DB4,2,2,2,2,4,2,2,2,2DB4,2,2,2,2,12DB4,4,4,4,4,4DB4,2,2,2,2,4,2,2,4DB4,2,2,2,2,4,2,2,2,2DB4,2,2,2,2,12DB4,4,4,4,4,4DB4,2,2,2,2,4,2,2,4DB4,2,2,2,2,4,2,2,2,2DB4,2,2,2,2,12Data ENDS;=============stack segment============= Stack SEGMENT STACK'STACK'DB100H DUP(?)Stack ENDS;=============code segment============= Code SEGMENTASSUME CS:Code,DS:Data,SS:StackMain PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DataMOV DS,AXmyOut PortControl,80H;8255:10000000B means:;A--mode0,output;B--mode0,output;C High--output(it will change during running);C Low--output(it will change during running)myOut PortB,01H;show the left most digitCALL PlaymyOut PortB,00HRETMain ENDPPlay PROCPUSH SIXOR SI,SInextTune:CALL ShowTubeCALL PlayNoteCALL NoteDurationCALL PlayHushCALL HushDurationCALL CheckExitINC SICMP SI,LengthOfSongJB nextTunePOP SIRETPlay ENDPShowTube PROCPUSH AXPUSH BXPUSH SIMOV BX,OFFSET NotesMOV AX,SIXLAT NotesmyLutOut PortA,TubeLut,ALPOP SIPOP BXPOP AXRETShowTube ENDPPlayNote PROCPUSH AXPUSH BXPUSH SIMOV BX,OFFSET NotesMOV AX,SIXLAT NotesPUSH AXmyOut TimerControl,16HPOP AXmyLutOut Timer0,FreqLut,ALPOP SIPOP BXPOP AXRETPlayNote ENDPNoteDuration PROCPUSH AXPUSH BXPUSH CXPUSH SIMOV BX,OFFSET DurationMOV AX,SIXLAT DurationXOR AH,AH;useless instruct indeed,since high byte of SI is zeroMOV CX,0100HMUL CXSUB CX,10HnextSubNoteDelay:CALL BasicDelayDEC AXJNZ nextSubNoteDelayPOP SIPOP CXPOP BXPOP AXRETNoteDuration ENDPPlayHush PROCPUSH AXPUSH BXPUSH SImyOut TimerControl,16H;00:Timer0;01:Lower Byte only;011:Mode3;0:Binary CountingmyOut Timer0,1POP SIPOP BXPOP AXRETPlayHush ENDP HushDuration PROCPUSH AXPUSH BXPUSH CXPUSH SIMOV CX,10H nextSubHushDelay:CALL BasicDelayJNZ nextSubHushDelayPOP SIPOP CXPOP BXPOP AXRETHushDuration ENDP BasicDelay PROCPUSH CXMOV CX,0080H myLoopLabel:PUSH CXMOV CX,1000H myLoopLabel2:DEC CXJNZ myLoopLabel2POP CXDEC CXJNZ myLoopLabelPOP CXRETBasicDelay ENDPCheckExit PROCPUSH AXMOV AH,0BH;check whether user input something from keyboardINT21HOR AL,AL;if he does,then return to DosJZ exitCheckAndQuitmyOut PortA,00HmyOut PortB,00HCALL PlayHushMOV AX,4C00HINT21HexitCheckAndQuit:POP AXRETCheckExit ENDPCode ENDSEND Main;=============end of file=============经过测验,程序运行正常。

北邮微原硬件实验报告

北邮微原硬件实验报告

微机原理硬件实验报告2015-2016学年第一学期微机原理硬件实验报告学院:班级:学号:姓名:序号:目录实验一熟悉实验环境及IO的使用 (2)一实验目的 (2)二实验内容 (2)三实验过程 (2)1 实验原理 (2)2 流程图 (3)3 源代码 (3)4 子程序清单 (5)5 代码分析 (5)四实验总结 (5)实验二 8255A并行接口应用 (6)一实验目的 (6)二实验内容 (6)三实验过程 (6)1 八位数码管位选规律 (6)2 六位数码管静态显示 (6)3 六位数码管动态显示 (9)4 扩展:显示键盘输入学号 (13)四实验总结 (19)实验三 8253计数器/定时器的应用 (19)一实验目的 (19)二实验内容 (19)微机原理硬件实验报告三实验过程 (19)1 蜂鸣器发音规律 (19)2 音乐发生器 (20)3 扩展:小键盘弹琴功能 (29)四实验总结 (34)实验一熟悉实验环境及IO的使用一实验目的1 通过实验了解和熟悉实验台的结构,功能及使用方法。

2 通过实验掌握直接使用Debug的I、O命令来读写I/O端口。

3 学会Debug的使用及编写汇编程序。

二实验内容1 学习使用Debug命令,并用I、O命令直接对端口进行读写操作。

2 用汇编语言编写跑马灯程序。

实现功能:1)通过读入端口状态,选择工作模式(灯闪烁方式、速度等);2)通过输出端口控制灯的工作状态(低电平灯亮)。

三实验过程1 实验原理1 在Debug下,用I是命令读输入端口的状态,即拨码开关的状态,用O命令向端口输出数据,通过LED发光管来查看。

测试结果:1)使用命令:I 0EEE0H读取开关状态,得出的结果为左低右高,即是低位,是高位。

2)实验命令:O 0EEE0H测试LED,改变输入的值可依次测试各个数码管是否正常。

LED左边为高位,右边为低位。

2 分析以下程序段的作用MOV AH,0BH微机原理硬件实验报告INT21HOR AL,ALJZ0100INT20H该段程序实现了检测键盘状态,在键盘有任意键输入时退出程序返回DOS的功能。

北邮 微机原理实验报告

北邮 微机原理实验报告

北邮微机原理实验报告北邮微机原理实验报告引言:微机原理是计算机科学与技术专业的一门重要课程,通过学习和实践,我们可以深入了解计算机的组成结构和工作原理。

本次实验旨在通过对北邮微机原理实验的探索,加深对计算机硬件和软件的理解,并提升我们的实践能力。

一、实验目的本次实验的目的是熟悉计算机的硬件组成和工作原理,并通过实践操作加深对微机原理的理解。

具体包括以下几个方面:1. 熟悉计算机的硬件组成,包括中央处理器(CPU)、内存、硬盘等;2. 掌握计算机的启动过程和操作系统的加载;3. 理解计算机的指令集和指令执行过程;4. 学习计算机的输入输出设备和外部接口。

二、实验过程1. 实验一:计算机硬件的组装与连接在本实验中,我们需要将计算机的各个硬件组件进行正确的连接和组装。

首先,我们需要将主板与CPU、内存、显卡等硬件设备进行连接。

其次,我们需要将硬盘、光驱等存储设备与主板进行连接。

最后,我们需要将键盘、鼠标、显示器等外部设备与计算机进行连接。

通过这一步骤,我们可以了解计算机硬件的组成结构,并掌握正确的连接方式。

2. 实验二:计算机的启动过程和操作系统的加载在本实验中,我们需要了解计算机的启动过程和操作系统的加载过程。

首先,我们需要按下电源按钮,启动计算机。

然后,计算机会进行自检和硬件初始化,并加载操作系统。

在这个过程中,我们可以观察到计算机的启动画面和加载过程。

通过这一步骤,我们可以深入了解计算机的启动过程和操作系统的加载机制。

3. 实验三:计算机的指令集和指令执行过程在本实验中,我们需要学习计算机的指令集和指令执行过程。

首先,我们需要了解不同类型的指令,包括算术指令、逻辑指令、数据传输指令等。

然后,我们需要通过编写简单的汇编语言程序,来实现对数据的处理和操作。

在这个过程中,我们可以观察到指令的执行过程和结果。

通过这一步骤,我们可以深入理解计算机的指令集和指令执行过程。

4. 实验四:计算机的输入输出设备和外部接口在本实验中,我们需要学习计算机的输入输出设备和外部接口。

北邮—微机原理与接口技术

北邮—微机原理与接口技术

北邮—微机原理与接口技术(1)(总12页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--微机原理与接口技术硬件实验报告目录1.实验一微机实验平台介绍及IO的使用 (4)1.1.实验目的 (4)1.2.实验内容及要求 (4)1.3.实验环境及背景 (4)1.4.实验步骤 (5)1.4.1.使用debug的I、O命令读写端口 (5)1.4.2.使用文本编辑器edit和编译器masm (6)1.5.思考题 (11)1.6.心得体会 (11)参考资料 (12)声明与致谢 (12)1.实验一微机实验平台介绍及IO的使用1.1.实验目的1.1.1通过实验了解和熟悉实验台的结构,功能及使用方法;1.1.2通过实验掌握直接使用debug的I、O命令来读写IO端口;1.1.3学会debug的使用及编写汇编程序。

1.2.实验内容及要求1.2.1学习使用debug命令,并用I、O命令直接对端口进行读写操作,1.2.2用汇编语言编写跑马灯程序。

(可以使用EDIT编辑工具。

)要求实现以下两个功能:A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等);B.通过输出端口控制灯的工作状态(低电平灯亮)。

1.2.3使用时要注意,电源打开时不得插拔电缆及各种器件,一定要在断电的情况下连接电路,否则可能会烧坏整个实验系统。

1.3.实验环境及背景我们使用PCI_IDE50扁平电缆将PC机与实验扩展模块连接起来。

在扩展实验平台上,有八个发光二极管、八个拨码开关。

读取拨码开关和写发光二极管的端口地址已经被做成了0E8E0h。

连接的PC机上安装有DOS操作系统,并有MASM5开发工具。

图1扩展实验模块1.4.实验步骤1.4.1.使用debug的I、O命令读写端口进入DOS,在命令行模式下输入命令debug,用-a选项写入下列程序:CODE (debug mode)MOV DX, E8E0MOV AL, FEOUT DX, ALMOV AH, 0BINT 21OR AL, ALJZ 0100INT 20输入结束后,直接输入回车即可推出-a。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微原硬件实验报告班级:07118 班学号:070547班内序号:26姓名:杨帆实验一熟悉实验环境及IO的使用一,实验目的1. 通过实验了解和熟悉实验台的结构,功能及使用方法。

2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。

3. 学会Debug 的使用及编写汇编程序二,实验内容1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,2.用汇编语言编写跑马灯程序。

(使用EDIT 编辑工具)实现功能A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)三,实验步骤1.实验板的IO 端口地址为EEE0H在Debug 下,I 是读命令。

(即读输入端口的状态---拨码开关的状态)O 是写命令。

(即向端口输出数据---通过发光管来查看)进入Debug 后,读端口拨动实验台上八位拨码开关输入I 端口地址回车屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口输入O 端口地址xx (xx 表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。

2. 在Debug 环境下,用a 命令录入程序,用g 命令运行C>Debug -amov dx, 端口地址mov al,输出内容out dx, almov ah, 0bhint 21hor al, aljz 0100int 20h-g运行查看结果,修改输出内容再运行查看结果分析mov ah, 0bhint 21hor al, aljz 0100int 20h该段程序的作用3.利用EDIT 工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm录入程序按Alt 键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm连接文件C>LINK 文件名.obj运行文件或用Debug 进行调试。

四,程序流程图Begin点亮第8盏灯调用延时子程序检测拨码开关状态最低位拨码开关被打开?向右依次点亮LED 向左依次点亮LED检测键盘缓冲区有按键行为?结束,返回DOSNO YESNO YES图表 1:实验1的程序流程图 五,源程序代码DATA SEGMENT;数据段 BB DB 0FFH ;DATA ENDS STACK SEGMENT PARA STACK 'STACK';堆栈段 DB 100 DUP(?)STACK ENDS CODE SEGMENT;代码段ASSUME CS:CODE, SS:STACK ,DS:DATA BEGIN:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV BL,7FHBEG:MOV DX,0EEE0HMOV AL,BLOUT DX,AL ;点亮第8盏灯CALL COUNT ;延时MOV BL,ALIN AL,DXTEST AL,01H ;最低位拨码被按下?方向选择MOV AL,BLJZ RLRR: ROR AL,1 ;未按键,则向右点亮JMP R1RL:ROL AL,1 ;按下则向左点亮R1:MOV BL,ALMOV AH,0BHINT 21H ;检查键盘缓冲区OR AL,ALJZ BEGINMOV AX,4C00HINT 21HCOUNT PROC NEAR ;延时子程序PUSH AXMOV DX,0EEE0HIN AL,DX ;检测拨码状态MOV AH,0MOV BX,0ADD BX,AXPOP AXCOU1: MOV CX,0FFFFHCOU2: LOOP COU2COU3: DEC BX ;调速JNZ COU1RETCOUNT ENDPCODE ENDSEND BEGIN六,思考题通过实验说明用debug 中的 a 命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。

通过观察可以发现,编码时,凡是十六进制数据都是要加H的,而地址则不用。

这是因为编译时所能识别的数据有多种,为了保证编译正常进行,必须要告诉编译器数据的类型。

而地址只有默认的16进制形式,所以不需指定类型就能完成正确的编译,所以无须加H。

而在DEBUG环境下,它的默认数据格式就是十六进制的,所以就不需要写出“H”字符;否则通不过编译。

七,实验收获和体会在这次实验中,我们初步熟悉了在Debug环境下使用I/O命令,实现了对拨码开关状态的读取以及对发光二极管亮灭的控制,即初步尝试了对于微机接口的控制。

通过控制发光二极管的亮与灭,结合相关程序的设计,我们实现了一个简单的跑马灯程序。

结合查询拨码开关的状态,能够实现点亮发光二极管的方向、模式和速度的调整。

这个跑马灯实验的程序使用的是简单的分支结构。

这次实验的要点是对I/O接口译码电路的理解以及使用,通过在Debug环境下的I/O命令,我们测试了外设功能,这使我们了解了地址与端口的对应情况,从而明确了跑马灯程序编写的流程和注意事项。

通过该译码电路实验,我掌握了地址译码电路的设计方法和实现原理,对硬件的I/O接口技术有了进一步的认识。

这次实验也为以后的实验打下了基础,特别是,应先理解了译码电路的工作原理,然后才能进行编程。

实验二8255A并行接口应用一,实验目的1.掌握8255A 的功能及方式0、1 的实现2.熟悉8255A 与CPU 的接口,以及传输数据的工作原理及编程方法。

3.了解七段数码管显示数字的原理。

4.掌握同时显示多位数字的技术。

二,实验内容在实验一的基础上学习PIO 芯片(8255)编程应用,熟悉平台的主要内容。

CS 用Y0 (EE00H)(一) 简要说明:在方式0(输入/输出)下,以 A 口为输出口,B 口为输出口, A 口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段, B 口接数码管的位选(即要使哪个数码管亮), 高电平选中某一位数码管点亮。

8255A 中A 端口地址E E00HB 端口地址E E01HC 端口地址E E02H控制地址EE03H 八段数码管的显示规律及数码管的位选规律自己查找,可用实验一中,学过的I、O 命令来做。

(二)6 位数码管静态显示在数码管电路上静态地显示6 位学号,当主机键盘按下任意键时,停止显示,返回DOS。

提示:该电路 6 个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字型编码之后,6 个数码管都有可能显示出相同的数字。

如果要使 6 个数码管“同时”显示不同的数字,必须采用扫描显示的方法,通过选位寄存器选择某一位数码管,显示其数字(对应段值为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在一秒钟内,每一位数码管都能显示30 次以上,则人眼看到的是几位数码管同时在显示。

实验证明,在扫描显示过程中,每一位显示延迟1ms 是最佳选择。

(三)6 位数码管动态显示要求在数码管电路 1-6 位数码管上按图 3.2 所示的规律,动态显示字符串 HELLO,当 主机键盘按下任意键时结束。

二, 程序流程图程序一:静态显示学号 8255初始化第1位输出[BX]延时第2位输出[BX+1]延时第3位输出[BX+2]延时第4位输出[BX+3]延时第5位输出[BX+4]延时第6位输出[BX+5]延时键盘输入?退出当前输出字符地址赋给BXYESNO图表 2:静态显示学号的程序流程图四,源程序代码程序一:显示静态学号DATA SEGMENT ;数据段SHOW DB 0EDH,61H,0EDH,0d9H,39H,61H;”0”,”7”,”0”,”5”,”4”,”7”COUNT EQU $-SHOWCAT DB 01H ;8段数码管选通信号DATA ENDSSTACK SEGMENT STACK'STACK'DB 100H DUP(?)STACK ENDS ;代码段CODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK START PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXNEXT: MOV CX,COUNTLEA BX,SHOWMOV CAT,01H ;最先点亮第1个数字AGAIN:MOV AL,80H ;8255的方式选择MOV DX,0EE03H ;A口方式0输出OUT DX,AL ;B口方式0输出MOV AL,CATMOV DX,0EE01H ;B口为数码管选通端口OUT DX,ALMOV AL,[BX]MOV DX,0EE00H ;A口为8段数码管OUT DX,AL ;依次显示学号数字MOV AL,00HMOV DX,0EE00HOUT DX,AL ;熄灭INC BXSHL CAT,1 ;左移点亮数字位置LOOP AGAINMOV AH,0BH ;检测键盘缓冲区INT 21HOR AL,ALJZ NEXTRETSTART ENDPCODE ENDSEND START程序二:动态显示HELLODATA SEGMENT ;数据段COUNTDOWN DW ? ;时延计数器SPDCOUNT DW 00H ;控速计数器LEDCOUNT DB 00H ;LED COUNT CATCOUNT DB 00H ;CAT COUNT TMP DB 00HLED DB ?CAT DB 01H ;数码管选通信号SPEED DW 0000HDATA ENDSSTACK SEGMENT STACK 'STACK'DB 100 DUP(?)STACK ENDSCODE SEGMENT ;代码段ASSUME CS:CODE, DS:DATA, SS:STACK;延时子程序DELAY1 PROCMOV COUNTDOWN,03FFH LOOPD: DEC COUNTDOWNJNZ LOOPDRETDELAY1 ENDP;给变量LED赋值的子程序ENCODE PROC;根据LEDCOUNT的当前值,给变量LED赋值;使其显示相应的字符CMP LEDCOUNT,00HJA EN1MOV LED,00H ;BLANK "_"JMP NEXTEN1: CMP LEDCOUNT,01HJA EN2MOV LED,00H ;BLANK "_"JMP NEXTEN2:CMP LEDCOUNT,02HJA EN3MOV LED,00H ;BLANK "_" JMP NEXTEN3:CMP LEDCOUNT,03HJA EN4MOV LED,00H ;BLANK "_" JMP NEXTEN4:CMP LEDCOUNT,04HJA EN5MOV LED,00H ;BLANK "_" JMP NEXTEN5: CMP LEDCOUNT,05HJA EN6MOV LED,00H ;BLANK "_"JMP NEXTEN6: CMP LEDCOUNT,06HJA EN7MOV LED,3DH ;”H”JMP NEXTEN7: CMP LEDCOUNT,07HJA EN8MOV LED,0DCH ;”E”JMP NEXTEN8: CMP LEDCOUNT,08HJA EN9MOV LED,8CH ;”L”JMP NEXTEN9:CMP LEDCOUNT,09HJA ENAMOV LED,8CH ;”L”JMP NEXTENA:CMP LEDCOUNT,0AHJA ENBMOV LED,0EDH ;”O”JMP NEXTBENB:MOV LED,00H ;BLANK "_"NEXTB: RET;这里请注意:若要改变LED点亮的模式,改变ENCODE子程序中;变量LED的赋值模式即可ENCODE ENDP;循环点亮控制子程序;CAT是8段数码管的选通信号,这个子程序将;根据当前CATCOUNT的值给CAT赋值CATENCO PROCCMP CATCOUNT,00HJA EB1MOV CAT, 01HJMP NEXTEB1: CMP CATCOUNT,01HJA EB2MOV CAT, 02HJMP NEXTEB2: CMP CATCOUNT,02HJA EB3MOV CAT, 04HJMP NEXTEB3: CMP CATCOUNT,03HJA EB4MOV CAT, 08HJMP NEXTEB4:CMP CATCOUNT,04HJA EB5MOV CAT, 10HJMP NEXTEB5: MOV CAT, 20HNEXT: RETCATENCO ENDP;主程序START:MOV AX, DATAMOV DS, AXMOV ES, AXMOV AL, 80H ;8255初始化MOV DX, 0EE03HOUT DX, AL;A口方式0输出,B口方式0输出,C口无关S1S:MOV DX,0EEE0H ;检测拨码开关状态IN AL, DX ;若拨码开关最低位置位MOV SPEED,0FFFH ;则选择快速模式AND AL, 01H ;未被置位则选择慢速模式JZ FL3MOV SPEED 07FFH ;快速模式FL3:INC CATCOUNTCMP CATCOUNT,06H ;一轮是否显示完毕?JB FL1MOV CATCOUNT,00H ;CATCOUNT值回零INC SPDCOUNTMOV DX,SPEEDCMP SPDCOUNT,DX ;根据速度选择,JB FL1 ;控制改变CAT的频率MOV SPDCOUNT,00HINC TMPCMP TMP,06HJB FL1MOV TMP,00HFL1: MOV DL,CATCOUNTADD DL,TMPMOV LEDCOUNT,DLCMP LEDCOUNT,0CHJB FL2SUB LEDCOUNT,0CHFL2: CALL CATENCO ;依次点亮数码管MOV DX, 0EE01HMOV AL, CATOUT DX, ALCALL ENCODE ;选择此数码管显示的字符MOV DX, 0EE00HMOV AL, LEDOUT DX, ALCALL DELAY1 ;调用延时子程序MOV AH, 0BH ;检测键盘缓冲区INT 21HOR AL, ALJZ S1SMOV AX, 4C00HINT 21HCODE ENDSEND START五,实验心得与体会这次实验中,我们使用8255A并行接口芯片和数码管实现了一个数码管的静态和动态显示字符的程序。

相关文档
最新文档