实验一 IO地址译码 实验报告
北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告实验报告一: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Ⅱ码,并将其对应字母在屏幕上显示出来。
微机原理实验报告 8086最小系统构建和IO接口电路

实验12:8086最小系统构建和I/O地址译码实验1、实验目的:(1)掌握I/O地址译码的工作原理和电路设计(2)掌握Proteus ISIS中电路原理图的模块化设计方法(3)绘制通用的8086最小系统电路图和I/O地址译码电路图供后续实验使用2、实验设备:安装有Proteus的PC一台3、实验过程:编写测试程序,对8086最小系统和I/O地址译码电路模块进行仿真测试。
(1)所绘制电路图如下面截屏所示:首先是8086最小系统电路图,如下:第二个是I/O地址译码子电路图,如下:实验电路图如下面所示:(2)实验仿真运行画面截图如下所示:(对所给程序稍微作了变动)(3)程序源代码如下所示:.model small.8086.stack.data.code.startupmov dx,1000hlp0:mov bx,0e001hlp1:mov al,blout dx,almov ah,1call delaycmp bl,0jz lp2rol bx,1jmp lp1lp2:mov ah,8call delayjmp lp0delay:mov cx,5000d: loop ddec ahjnz delayretend4、实验总结:(1)绘制实验电路图时主要问题包括标号的设置(如果未设置则会出现八个灯同时亮的情况),总线等的连接(注意对应接口相同,引脚线与总线的连接末端采用斜线)等。
(2)程序中,lp0中将点亮的模式传送给bx寄存器,可改变该值从而改变点亮的模式(如改为0e004h则变为有4个灯同时亮);Lp1中,将每个周期中灯与灯的时间间隔设为一个基本单位并存入了ah中,可改变该值以延长时间(如实验习题中);Lp2中,将不同周期直接的时间间隔设为8个时间单位并存放入ah中,与上一个值一起可以调控灯亮的持续时间和周期等。
(3)注意总线标号的输入为中为XD[0..15]而非XD[0,,15];另外注意合理安排位置以使电路图更加美观。
I-O译码实验

I/O译码实验
实验目的: 掌握I/O端口的译码方法
实验设备: 数字逻辑实验箱
2
实验内容
已知并行接口芯片8255A有4个端口,片选信号 CS 为低电平有效。 试用组合逻辑电路实现一个译码电路,使该芯片的4个端口地址为 218H~21BH。
已知数/模转换芯片0832的端口地址为228H~22FH,片选信号CS为 低电平有效。试用集成器件74LS138实现。
3
实验步骤及说明
根据实验要求设计电路 根据设计电路进行连线,可利用实验箱上的开关控
制输入地址,并用发光二极管观测实验结果
4
微型计算机
微原硬件北邮

微原硬件实验报告班级:2010211101 班学号:102100班内序号:姓名:实验一I/O地址译码一.实验目的掌握I/O地址译码电路的工作原理二.实验内容当cpu执行I/O指令且地址哎280H~2BFH范围内,译码器选中,必有一根译码器输出负脉冲,利用这个负脉冲控制L7闪烁发光,时间间隔通过软件实现。
三.源程序代码i oport equ 00houtport1 equ ioport+2a0houtport2 equ ioport+2a8hcode segmentassume cs:codestart:mov dx,outport1out dx,al ;将al中的数值输出到地址为dx的端口call delaymov dx,outport2out dx,alcall delaymov ah,1int 16h ;16h为中断向量标号je start ;mov ah,4chint 21hdelay proc nearmov bx,200lll: mov cx,0ll: loop lldec bxjne lllretdelay endpcode endsend start四.实验收获和体会通过这次实验,我对I/O地址译码器的工作原理有了了解,对软件和硬件的配合操作有了初步认识。
实验二简单并行接口一.实验目的掌握简单并行接口的工作原理及使用方法二.实验原理及内容编程从键盘输入一个符号或者数字,将其ASCII码通过这个输出接口输出,根据八个发光二极管发光情况验证正确性。
三.程序流程图四.源程序代码ls273 equ 2a8hcode segment assume cs:code start: mov ah,2mov dl,0dhint 21hmov ah,1int 21hcmp al,27je exitmov dx,ls273out dx,aljmp start exit: mov ah,4chint 21hcode ends五.实验心得与体会该实验是第一次实验课和实验一一起做的,也比较简单,只是熟悉了一下并行接口的工作原理,用的的芯片业非常简单。
实验一IO的实验

昆明理工大学信息工程与自动化学院学生实验报告(2011 —2012 学年第 2 学期)课程名称:嵌入式技术基础与实验开课实验室:信自楼234 2012 年 5 月 10 日年级、专业、班自动化092 学号姓名成绩实验项目名称I/O口的实验指导教师教师评语教师签名:年月日注:报告内容按实验须知中七点要求进行。
一、实验目的1.熟悉MCU的第一个汇编/C程序框架结构。
2.掌握I/O口的编程方法。
3.了解最小系统的测试方法。
4.模仿小灯驱动程序,编写I/O口的开关程序5.了解源程序工程中添加新模块的方法。
二、实验原理及基本技术路线图(方框原理图)AW60 MCU的I/O口有A、B、C、D、E、F、G等7个端口能接收外界开关量信号MCU处理,也能将MCU内部的信号输出给外部设备,显示数据或者控制对象。
I/O口的使用涉及方向寄存器、上拉允许寄存器和数据寄存器。
(1)方向寄存器决定该口的引脚时输入还是输出。
(2)接收或发送信息的缓冲有数据寄存器完成。
(3)接收信息的正确与上拉允许寄存器有关,是否设置寄存器取决于外部电路。
若外部电路有上拉电阻可以不需要,否则MCU内部一定需要设置。
引脚的接线如下图3-1图3-1 I/O口引脚的连接图三、所用仪器、材料(设备名称、型号、规格等)飞思卡尔试验箱四、实验方法、步骤1、资源使用用B口的0号引脚连接小灯,用B口的1号引脚连接开关,开关通过MCU控制小灯,开关向上拨,小灯亮,开关向下拨,小灯暗,放在主循环中,则形成开关随时开,小灯随亮的效果。
2、硬件设计先阅读源程序,查看相应的端口的宏定义,再根据端口号来接线。
3、软件设计(主要的程序流程图)开关驱动程序流程图:4、编程(关键性程序段)用开关控制小灯亮暗主程序:#include "Includes.h" //在此添加全局变量定义void main(void){//1 关总中断DisableInterrupt(); //禁止总中断//2 芯片初始化MCUInit();//3初始化//3.1指示灯初始化Light_Init(Light_Run_PORT,Light_Run,Light_OFF);//3.2开关初始化Key_Init(Key_PORT,Key_Pin);//4 主循环while (1){i f(Get_Key_State(Key_PORT,Key_Pin)==Key_ON){Light_Control(Light_Run_PORT,Light_Run,Light_ON);}elseLight_Control(Light_Run_PORT,Light_Run,Light_OFF);}}2)指示灯驱动程序代码://-------------------------------------------------------------------------*// 文件名: Light.h// 说明: 指示灯驱动程序头文件//-------------------------------------------------------------------------*#ifndef Light_H //防止重复定义#define Light_H//1 头文件#include "GPIO.h" //包含GPIO头文件//2 灯控制宏定义//2.1 灯控制引脚定义#define Light_Run_PORT PORT_B //运行指示灯使用的端口#define Light_Run 7 //运行指示灯使用的引脚//2.2 灯状态宏定义#define Light_OFF 1 //灯亮(对应低电平)#define Light_ON 0 //灯暗(对应高电平)//3 灯控制相关函数声明//-----------------------------------------------------------------------*//函数名: Light_Init *//功能: 初始化指示灯状态* //参数: port:端口名* // name:指定端口引脚号*// state:初始状态,1=高电平,0=低电平*//返回: 无* //说明: 调用GPIO_Init函数* //-----------------------------------------------------------------------*void Light_Init(uint8 port,uint8 name,uint8 state);//-----------------------------------------------------------------------*//函数名: Light_Control *//功能: 控制灯的亮和暗* //参数: port:端口名*// name:指定端口引脚号* // state:状态,1=高电平,0=低电平*//返回: 无* //说明: 调用GPIO_Set函数* //-----------------------------------------------------------------------*void Light_Control(uint8 port,uint8 name,uint8 state);//-----------------------------------------------------------------------*//函数名: Light_Change *//功能: 状态切换:原来"暗",则变"亮";原来"亮",则变"暗" *//参数: port:端口名*// name:指定端口引脚号* //返回: 无* //说明: 调用GPIO_Get、GPIO_Set函数* //-----------------------------------------------------------------------*void Light_Change(uint8 port,uint8 name);#endif3)指示开关驱动程序代码://-------------------------------------------------------------------------*// 文件名: Key.h (指示开关驱动程序头文件) *//-------------------------------------------------------------------------*#ifndef Key_H //防止重复定义#define Key_H//1 头文件#include "GPIO.h" //包含GPIO头文件//2 开关控制//2.1 开关控制引脚定义#define Key_PORT PORT_A //B口#define Key_Pin 7 //引脚//2.2 开关状态宏定义#define Key_ON 0 //开关连通(对应低电平)#define Key_OFF 1 //开关断开(对应高电平)//2.3 开关控制相关函数声明//---------------------------------------------------------------------*//函数名: Key_Init *//功能: 初始化指示开关*//参数: port:端口名; *// name:指定端口引脚号; *//返回: 无*//---------------------------------------------------------------------*void Key_Init(uint8 port,uint8 name);//---------------------------------------------------------------------*//函数名: Get_Key_State *//功能: 获取开关的状态(断开还是连通) *//参数: port:端口名; *// name:指定端口引脚号; *//返回: 无*//---------------------------------------------------------------------*uint8 Get_Key_State(uint8 port,uint8 name);#endif五、实验过程原始记录(数据、图表、计算等)六、实验结果、分析和结论(误差分析与数据处理、成果总结等。
地址译码实验报告

地址译码实验报告一、实验目的:1. 熟悉MCS-51的地址空间2. 掌握MCS-51外部程序空间的访问3. 掌握MCS-51外部数据空间的访问二、 实验内容:利用A2区的A0-A15,B_RD ,B_WR 和A3区的74LS138设计译码电路,并用示波器观测选通脉冲并测量宽度。
1.利用MOVX 指令,产生地址为2003H 的外部数据空间地址选通信号,并用示波器观测。
(需要读写控制信号参与)。
三、实验原理与要求1.原理在51单片机中,如需进行系统扩展,所需的16条地址线分别由P2和P0口提供,8条数据信号线由P0口提供。
P0口是地址/数据复用总线,分时传送低8位地址和数据,由地址锁存允许信号ALE 控制地址传送,外部程序存储器读选通信号PSEN ___________控制它的数据传送。
2.要求利用A2区的A0-A15,B_RD ,B_WR 和A3区的74LS138设计译码电路,并用示波器观测选通脉冲并测量宽度。
利用MOVX 指令,产生地址为2003H 的外部数据空间地址选通信号(需要读写控制信号参与)。
四、实验流程图五、 实验原理图六、实验代码用MOVX访问外部数据存储器(1)读取操作ORG 0000HLJMP MAINORG 0100HMAIN:MOV DPTR, #2003HMOVX A, @DPTRSJMP MAINEND(2)写入操作:ORG 0000HLJMP MAINORG 0100HMAIN:MOV A,#45HMOV DPTR, #2003HMOVX @DPTR,ASJMP MAINEND七、实验修改1.实验之前误以为单片机P0口已经经过锁存器锁存后引出,所以在实验原理图中并未画出74LS373,修改后的原理图见图1(图中用74HC573作为锁存器,实际中应是74LS373)。
图1.修改后的原理图a2.实验之前对实验要求中所说的“需要读写控制信号参与”并不十分理解,后来才知道是要将“读”或“写”引入三八译码器选通端用来选通,修改后的电路图中加入了这一要求,相应的就要保持译码器输入端信号不变,所以将P2口的输出引入A0、A1、A2(原理图中对应于A、B、C),见图2。
地址译码实验报告 2

地址译码实验报告实验原理:1.地址总线(Address Bus —AB ) 地址线A0~A15 (16位) P2口提供高8位地址A8~A15P0口经地址锁存器提供低8位地址A0~A7 。
片外存储器可寻址范围达64KB (即=65536个字节)地址总线的驱动; 传送的是地址; 单向;2.地址总线驱动常用器件 ①缓冲器/驱动器②锁存器:如573,373等 电平触发的锁存器单向缓冲器处理器地址总线74LS244Y 0Y 1Y 2Y 3Y 4Y 5Y 6Y 7A 0A 1A 2A 3A 4A 5A 6A 7G G21416181715131186435791219211CPU地址总线外设地址线ENBENBENBD EQD EQD EQ…D 0D 1D 7Q 0Q 1Q 7LE OE74HC5733.地址总线数据总线和地址总线的分离:DP51-PROC 的总线扩展:8051单片机存储器地址空间:锁存器处理器地址/数据总线ALE地址总线数据总线外部程序存储器读周期:外部数据存储器扩展:外部数据存储器写周期:74LS138(3~8译码器):74LS138译码器真值表:实验要求:1、利用A2区的A0-A15,B_RD,B_WR和A3区的74LS138设计译码电路,并用示波器观测选通脉冲并测量宽度。
2、利用MOVX指令,产生地址为2003H的外部数据空间地址选通信号(需要读写控制信号参与)流程图:程序代码:ORG 0000HLJMP MAINORG 0100HMAIN:MOV P2,#02H;MOV R0,#0F3HMOV A,@R0SJMP MAINEND电原理图:将74LS138的ABC口分别接2003H地址中有效的P2.5,P0.0,P0.1口,我们观察的是Y7口的输出。
实验结果与分析:在Y7口用示波器测得一个有效电平为542.52ns,输出波形的频率为131.6kHZ。
而Read信号口的输出也为540ns。
微机原理-地址译码实验-实验报告

地址译码实验实验目的:理解并掌握MCS-51的数据总线和地址总线原理,外部数据空间及外部地址空间的访问,并对指令时序进行观测和计算。
实验内容:1.利用A0-A15,/WR 、/RD和74LS138设计译码电路。
并用MOVX指令,产生地址为2005H的外部数据空间地址选通信号(需要读、写信号参与译码电路控制端)。
2.用示波器分别观测选通脉冲ALE、读写信号/WR 、/RD、译码电路输出并测量宽度,画出MOVX指令周期时序图。
3.实验原理:1.MCS-51地址总线特点:1)地址线A0~A15 (16位)2)P2口提供高8位地址A8~A153)P0口经地址锁存器提供低8位地址A0~A7 。
4)片外存储器可寻址范围达64KB(即=65536个字节)5)传送地址6)单向2.数据总线和地址总线通过锁存器分离开来,经过锁存器的为地址总线。
3.多片外部数据存储器的扩展方法:1)线选法:单根高位地址线直接接在存储器的/CE端。
连接简单,不必附加电路,但不能提供全部64K地址空间且扩展地址不连续,且有地址重叠区。
2)译码法:附加译码电路,能提供全部64K地址空间且扩展地址连续。
4.访问片外扩展RAM指令所需时钟计算公式:MOV @DPTRwrite(写操作):5*N+2read(读操作):5*N+1实验流程图:实验代码:ORG 0000HLJMP MAINORG 0100H MAIN: MOV DPTR,#2005HMOVX A,@DPTRMOVX @DPTR,ASJMP MAINEND示波器波形WR使能时:ALE和WRALE和Y1RD使能时:ALE和RDALE和Y1WR使能时的ALE、Y1、WR、RD波形汇总(RD使能时Y1和RD几乎相同):有写操作,导致ALE触发了2次。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息学院
《汇编语言与接口技术》上机实验报告
学号:104100197 姓名:王飞班级:计科10C
课程名称:汇编语言与接口技术上机内容I/O地址译码
实验性质:□综合性实验□设计性实验■验证实验
实验时间: 2012年 5 月11 日实验地点:睿智4号102室实验设备TPC—2003A微机实验箱
实验报告:(包括目的、方法、原理、结果或实验小节等)。
一、实验目的
掌握I/O地址译码电路的工作原理。
二、实验原理和内容
实验电路如下图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D
触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每
个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/ O指令且地
址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
三、实验中使用的程序
stack1 segment stack 'stack'
dw 32 dup(0)
stack1 ends
data segment
baseport equ 0ec00h-280h;实际基址
port1 equ baseport+2a0h;基址+偏移地址
port2 equ baseport+2a8h;基址+偏移地址
data ends
code segment
assume ss:stack1,ds:data,cs:code
start: mov ax,data
mov ds,ax
again: mov dx, port1
in al, dx
call delay ;调用延时程序
mov dx, port2
in al, dx
call delay
jmp again
delay proc
push bx
push cx
mov bx, 5000
wait2: mov cx,0
wait1: loop wait1
dec bx
jnz wait2
pop cx
pop bx
ret
delay endp;延时程序
mov ah, 4ch
int 21h
code ends
end start
四、实验小结
通过本次实验,基本掌握I/O地址译码电路的工作原理。
会写延时程序。
在实验中达到了预期灯泡一亮一灭的效果。
自己可以控制灯泡亮灭的速度。
任课教师评语:
教师签字:年月日注:每学期至少有一次设计性实验。
每学期结束请任课教师按时按量统一交到教学秘书处。