实验一 简单IO口扩展实验
实验一 简单I0口扩展实验.

实验一简单I/0口扩展实验一、实验目的利用74LS244和74IS273扩展I/0口。
二、实验内容1、熟悉74LS273,74LS244的应用接口方法。
2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。
三、实验原理图四、实验步骤1、连线:将74LS244(IC25)的输入SI0~SI7分别与逻辑电平开关电路的KI~K8相连,从I/0地址片选信号CS0~ CS7\中任选一个与74LS244的片选信号(CSU10\)相连(例如CS0\)。
将74LS273(IC24)的输出S00~S07分别与发光二极管电路的Ll~L8相连。
从I/O地址片选信号CS0\~CS7\中任选一个与74LS273的片选信号(CSU8\)相连(如CS1\)。
2、编辑程序,单步运行,调试程序。
3、调试通过后,全速运行,观察实验结果。
4、编写实验报告。
五、实验说明用逻辑电平开关作为74LS244(IC25)的输入,用发光二极管作为74L S273(IC24)的输出编程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。
逻辑电平开关拨上时为5V,拨下时为0V。
发光二极管输入“1”为亮、“0”为灭。
从74LS244读入的数据应求反后从输出口输出。
在8086CPU中有四个16位通用数字寄存器,其中仅AX(AH,AL)有输入输出功能。
本实验通过输入语句(IN),将开关运输入存到AL中,再通过输出语句(OUT)将AL值输出到发光二极管,从而实现开关控制发光二极管。
当开关量换作其他形式控制输入,发光二极管换作其他形式控制对象,输入数据后对输入最作一定的运算处理再输出时,就实现了计算机控制。
同时这些输入输出点均为I /O扩展口,当输入和输出的点位较多时,这种扩展十分必要。
六、实验程序框图(实验程序名T1.ASM)七、实验程序1 assume cs:code2 0000 code segment public3 org 100h4 0100 BA 04A0 start: mov dx, 04a0h ;74LS244地址5 0103 EC in al, dx ;读输入开关量6 0104 BA 04B0 mov dx, 04b0h ;74LS273地址7 0107 EE out dx, al ;写发光二极管8 0108 EB F6 jmp srart9 010A code ends10 end start实验二 8255并行口实验一、实验目的利用8255A实现并行口实验。
IO口扩展实验

;----向LED写显示数据和命令----WRITE7279: MOV A,CMD ;写命令 CJNE A,#255,TT1 LJMP END_OUT TT1: ;MOV A,CMD MOV DATA_OUT,A LCALL SEND MOV A,DATT ;写显示数据 CJNE A,#255,TT2 LJMP END_OUT TT2:;MOV A,DATT ANL A,#15 MOV DATA_OUT,A LCALL SEND END_OUT: SETB CS ;置高片选位 RET
• ;------显示测试子程序----• TEST7279: • MOV DATA_OUT,#0BFH ;发 送测试命令 • LCALL SEND • CALL LONG_DELAY ;等待以便观 察 • MOV DATA_OUT,#0A4H ;发 送复位命令 • LCALL SEND • RET
• • • • • • • • • • • • • • • • • • • • •
;------T0中断服务子程序----INT_T0: CLR ET0 MOV TH0,#4CH MOV TL0,#00H DJNZ R1,GORET LCALL WRITE7279 MOV A,CMD INC A MOV CMD,A DJNZ R6,GO1 MOV R6,#4 MOV CMD,#0C8H GO1:MOV A,DATT INC A MOV DATT,A DJNZ R7,GO2 MOV R7,#10 MOV DATT,#0 GO2:MOV R1,#20 GORET:SETB ET0
IO口扩展实验
• IO口扩展实验
• 一、实验目的 • 1. 学习在单片机系统中扩展简单I/O接口 的方法。 • 2. 学习通过HD7279的控制数码管显示 的方法。 • 二、实验内容 • 通过汇编语言编程,利用IO向HD7279 写入控制命令和数据,控制数码管的显示。
简单io口扩展实验报告

简单io口扩展实验报告
简单IO口扩展实验报告
本次实验旨在学习如何通过简单IO口扩展模块对单片机的IO口进行扩展,实现多个IO口的输入输出功能。
我们需要了解简单IO口扩展模块的基本原理和工作方式。
简单IO 口扩展模块通过与单片机的SPI总线进行通信,实现对其内部寄存器的读写操作,从而实现对IO口的扩展。
在实验中,我们使用STM32F103C8T6开发板和简单IO口扩展模块,通过连接它们的SPI总线,可以将扩展模块的IO口与开发板的IO口进行连接,实现IO口的扩展。
具体连接方式如下图所示:
(此处省略图片)
接下来,我们需要进行程序设计。
在初始化时,需要设置SPI总线的相关参数,然后对扩展模块进行初始化,将其内部寄存器中的数据清零。
然后,通过读写寄存器的方式,可以对扩展模块的每个IO 口进行配置,设置其输入输出状态、上下拉电阻等参数。
在程序中,我们可以通过读取扩展模块的输入口状态,判断是否有外部信号输入,根据需要进行相应的操作。
例如,当输入口接收到高电平信号时,可以控制某个输出口输出高电平信号,从而实现控制设备的功能。
在实验中,我们可以通过连接LED和按键来进行简单的IO口扩展实验。
将LED连接到扩展模块的输出口,按键连接到扩展模块的输入口,通过控制按键输入信号,实现对LED的控制。
总的来说,本次实验通过学习简单IO口扩展模块的原理和工作方式,掌握了通过SPI总线进行IO口扩展的方法,实现了对单片机多个IO口的输入输出控制,为后续的硬件控制和应用开发打下了基础。
使用74HC595实现IO口的扩展

使用74HC595实现I/O口的扩展一、实验目的1. 了解74HC595(串入并出)基本原理和使用2. 了解数码管的基本原理和驱动方式3. 学会使用74HC595来驱动静态数码管二、实验器材C51单片机开发板(含74HC595芯片,静态数码管)1块8PIN排线1根数据线1根三、实验原理1. 数码管数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管按段数分为七段数码管和八段数码管(还有一种“米”字型的数码管,其段数更多),八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示),其基本原理是:将所有LED的一端(正极、负极均可)连在一起作为一个公共端,然后通过分别控制这组LED的另一个端口来使部分LED点亮,从而达到显示一定字形的目的。
(1)数码管的分类按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
我们在实际使用中一定要搞清楚数码管是共阴极的还是共阳极的。
(2)数码管段、位引脚的确定(以4位8段数码管为例)数码管引脚测量分三步:极性判断(共阳极还是共阴极)、公共端判断(位选端口)、段码端判断(段选端口)。
首先要确定数码管是共阴极还是共阳极的:找一个3到5V的直流电源,准备几个1K或者几百欧姆的电阻。
将电源的正极串接一个电阻后连在数码管的任意一个脚上,然后将电源的负极逐个接到数码管的其余引脚上,观察数码管的某一段是否会点亮,如果全部引脚试过都没有亮的,那么将电源正极(串电阻)换一个引脚再试,直到有一个LED发光,这时固定电源负极不动,电源正极(串电阻)逐个接到数码管的其余引脚上,如果有8段LED都亮,说明该数码管是共阴极的。
简单i o口扩展实验实验报告

简单i o口扩展实验实验报告简单I/O口扩展实验实验报告引言:简单I/O口扩展实验是一项基础的电子实验,通过扩展I/O口,可以实现对外部设备的控制和数据交互。
本实验旨在通过实际操作,了解I/O口扩展的原理和应用。
实验目的:1. 了解I/O口的基本概念和工作原理;2. 学习使用I/O口扩展芯片实现对外部设备的控制;3. 掌握I/O口扩展的编程方法和应用技巧。
实验器材和材料:1. Arduino开发板;2. I/O口扩展芯片;3. 连接线;4. 外部设备(如LED灯、蜂鸣器等)。
实验步骤:1. 连接Arduino开发板和I/O口扩展芯片。
将I/O口扩展芯片的引脚与Arduino开发板的数字引脚相连,确保连接正确可靠。
2. 编写程序。
使用Arduino开发环境,编写程序代码,实现对I/O口扩展芯片的控制。
根据实际需求,可以选择控制外部设备的开关、亮度、频率等。
3. 上传程序。
将编写好的程序上传到Arduino开发板,确保程序能够正确运行。
4. 运行实验。
运行程序,观察外部设备的状态变化。
通过改变程序中的参数,可以实现对外部设备的不同控制效果。
实验结果与分析:通过实验,我们成功地实现了对外部设备的控制。
通过改变程序中的参数,我们可以控制外部设备的开关、亮度、频率等。
这说明I/O口扩展技术具有很大的应用潜力,可以实现对各种外部设备的控制和数据交互。
实验总结:通过本次实验,我们深入了解了I/O口扩展的原理和应用。
通过编写程序,我们掌握了I/O口扩展的编程方法和应用技巧。
通过实验,我们成功地实现了对外部设备的控制,这为我们进一步研究和应用I/O口扩展技术奠定了基础。
实验中遇到的问题和解决方法:在实验过程中,我们遇到了一些问题,如连接错误、程序错误等。
我们通过仔细检查连接和程序代码,逐一解决了这些问题。
这提醒我们在实验中要认真细致,仔细检查和排除错误,以保证实验的顺利进行。
实验的局限性和改进方向:本次实验只是简单地介绍了I/O口扩展的基本原理和应用,还有很多相关的知识和技术需要进一步学习和探索。
单片机---简单IO口扩展实验一.

实验三简单 I/O口扩展实验一——交通灯控制实验一、实验目的:1. 学习在单片机系统中扩展简单 I/O接口的方法。
2. 学习数据输出程序的设计方法。
3. 学习模拟交通灯控制的实现方法。
二、实验设备:EL-8051-III 型单片机实验箱三、实验内容:扩展实验箱上的 74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。
四、实验原理:要完成本实验,首先必须了解交通路灯的亮灭规律。
本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。
不妨将 L1(红、 L2(绿、 L3(黄做为东西方向的指示灯,将 L5(红、 L6(绿、 L7(黄做为南北方向的指示灯。
而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮, 东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
各发光二极管的阳极通过保护电阻接到 +5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。
五、实验原理图六、实验步骤:1. 实验箱 244/273 PORT单元的 O0~O7接实验箱上发光二极管 L1~L8;2.74LS273的片选 CS273接片选信号 CSO (CPLD ENCODER UNIT ,此时74LS273的片选地址为 CFA0H ~CFA7H 之间任选 ;3.运行实验程序,观察 LED 显示情况是否与实验内容相符 ;七、程序框图:八、参考程序:T3.ASMNAME T3 ;I/O口扩展实验一PORT EQU 0CFA0H ;片选地址 CS0CSEG AT 0000HLJMP STARTCSEG AT 4100HSTART: MOV A,#11H ;两个红灯亮,黄灯、绿灯灭ACALL DISP ;调用 273显示单元(以下雷同 ACALL DE3S ;延时 3秒LLL: MOV A,#12H ;东西路口绿灯亮 ; 南北路口红灯亮ACALL DISPACALL DE10S ;延时 10秒MOV A,#10H ;东西路口绿灯灭 ; 南北路口红灯亮 ACALL DISPMOV R2,#05H ;R2中的值为黄灯闪烁次数TTT: MOV A,#14H ;东西路口黄灯亮 ; 南北路口红灯亮 ACALL DISPACALL DE02S ;延时 0.2秒MOV A,#10H ;东西路口黄灯灭 ; 南北路口红灯亮 ACALL DISPACALL DE02S ;延时 0.2秒DJNZ R2,TTT ;返回 TTT ,使东西路口黄灯闪烁五次 MOV A,#11H ;两个红灯亮,黄灯、绿灯灭ACALL DISPACALL DE02S ;延时 0.2秒MOV A,#21H ;东西路口红灯亮 ; 南北路口绿灯亮 ACALL DISPACALL DE10S ;延时 10秒MOV A,#01H ;东西路口红灯亮 ; 南北路口绿灯灭 ACALL DISPMOV R2,#05H ;黄灯闪烁五次GGG: MOV A,#41H ;东西路口红灯亮 ; 南北路口黄灯亮 ACALL DISPACALL DE02S ;延时 0.2秒MOV A,#01H ;东西路口红灯亮 ; 南北路口黄灯灭 ACALL DISPACALL DE02S ;延时 0.2秒DJNZ R2,GGG ;返回 GGG ,使南北路口 ; 黄灯闪烁五次 MOV A,#03H ;两个红灯亮,黄灯、绿灯灭ACALL DISPACALL DE02S ;延时 0.2秒JMP LLL ;转 LLL 循环DE10S: MOV R5,#100 ;延时 10秒JMP DE1DE3S: MOV R5,#30 ;延时 3秒JMP DE1DE02S: MOV R5,#02 ;延时 0.2秒 DE1: MOV R6,#200DE2: MOV R7,#126DE3: DJNZ R7,DE3DJNZ R6,DE2DJNZ R5,DE1RETDISP: MOV DPTR,#PORT ;273显示单元 CPL A MOVX @DPTR,ARETEND。
简单io口扩展实验报告

简单IO口扩展实验报告1. 背景在实际应用中,我们经常需要扩展计算机的输入输出(IO)接口,以满足不同的需求。
而简单IO口扩展就是一种常见且重要的扩展方式。
通过简单IO口扩展,我们可以将计算机连接到更多的外部设备,如传感器、执行器等,从而实现更多功能和应用。
2. 分析2.1 简单IO口介绍简单IO口是指通用输入输出接口,它可以通过数字信号来进行数据的输入和输出。
每个简单IO口通常包括一个输入引脚和一个输出引脚。
通过控制这些引脚的电平状态,我们可以实现数据的输入和输出。
2.2 简单IO口扩展方法简单IO口可以通过不同的方法进行扩展,常见的方法包括:•并行接口:使用并行接口可以同时传输多个位的数据。
它通常使用多条数据线和一些控制线来实现高速数据传输。
•串行接口:使用串行接口可以逐位地传输数据。
它通常使用一条数据线和一些控制线来实现较低速率但更简洁的数据传输。
•USB接口:USB(Universal Serial Bus)是一种常见的数字串行总线接口,它可以连接多种设备,并提供高速数据传输和供电功能。
•SPI接口:SPI(Serial Peripheral Interface)是一种常用的串行外设接口,它可以连接多个外设,并以主从模式进行数据传输。
•I2C接口:I2C(Inter-Integrated Circuit)是一种常见的串行通信接口,它可以连接多个外设,并使用两条线路进行数据传输。
2.3 简单IO口扩展实验本次实验旨在通过简单IO口扩展方法,将计算机与外部设备进行连接,并实现数据的输入和输出。
具体步骤如下:1.确定要使用的简单IO口扩展方法,如并行接口、串行接口等。
2.根据选择的扩展方法,准备相应的硬件模块和连接线缆。
3.将硬件模块与计算机进行连接,确保电气连通性。
4.编写相应的驱动程序或使用现有的驱动程序,以实现与硬件模块的通信。
5.运行程序并测试扩展功能。
3. 结果经过实验测试,我们成功地实现了简单IO口扩展,并达到了预期的结果。
实验一简单IO口扩展实验

8255a是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255a有三个8位的输入输出端口,通常将a端口作为输入用,b端口作为输出用,c端口作为辅助控制用,本实验也是如此。实验中,8255a工作于基本输入输出方式(方式0)
七、实验结果
程序全速运行后,逻辑电平开关的状态改变应能在led上显示出来。例如:
四、实验原理介绍
本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路
五、实验步骤
1.实验接线
cs0 cs8255;pa0~pa7平推开关的输出k1~k8;pb0~pb7发光二极管的输入led1~led8
2.编程并全速或单步运行
3.全速运行时拨动开关,观察发光二极管的变化。当开关某位置于l时,对应的发光二极管点亮,置于h时熄灭。
四、实验原理介绍
本试验用到两部分电路:脉冲产生电路、8253定时器/计数器电路
五、实验步骤
1.试验连线
CS0<->CS8253OUT0<->8253CLK2OUT2<->LED1CLK3<->8253CLK0,
2.编程调试程序
3.全速运行,观察试验结果
六、实验提示
8253是计算机系统中经常使用的可编程定时器/计数器,其内部有三个相互独立的计数器,分别称为T0,T1,T2。8253有多种工作方式,其中方式3为方波方式。当计数器设好初值后,计数器递减计数,在计数值的前一半输出高电平,后一半输出地电平。试验中,T0、T1的时钟由CLK3提供,其频率为750KHz。程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*1/750000=0.05s)。T2采用OUT0的输出为时钟,则在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。n的最大值为FFFFH,所以OUT2输出方波最大周期为3276.75s(=54.6分钟)。可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非常有用的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一简单I / O口扩展实验
一、实验目的
1、熟悉74LS273,74LS244的应用接口方法。
2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。
二、实验设备
CPU挂箱、8086CPU模块。
三、实验内容
逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。
四、实验原理介绍
本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。
五、实验步骤
1、实验接线:
CS0 :CS244
CS1 :CS273
K1~K8 :I0~I7(对应连接)
O0~O7 :LED1~LED8
2. 编辑程序,单步运行,调试程序。
3. 用K1控制LED1、LED2,K2控制LED3、LED4,K3控制LED5、LED6,
K4控制LED7、LED8
4. 调试通过后,全速运行程序,观看实验结果。
5..编写实验报告。
六、实验提示
74LS244或74LS273的片选信号可以改变,如连接CS2,此时应同时修改程序中相应的地址;LED发光二极管为共阴结构,注意电平逻辑。
七、实验结果
程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。
例如:K2置于L位置,则对应的LED2应该点亮。
程序框图如下:
程序源代码清单:
assume cs:code
code segment public
org100h
start:mov dx,04a6h
mov ax,90h
out dx,ax
mov al,0feh
start1:
mov dx,04a0h
in al,dx
test ax,01h
test ax,02h jz start3
test ax,04h jz start4
test ax,08h jz start5
test ax,10h jz start6
test ax,20h jz start7
test ax,40h jz start8
test ax,80h jz start9
mov al,bl
mov dx,04b2h
out dx,al
rol al,1
mov bl,al
mov cx,3000h
add:
jmp start1
start2:mov al,bl
mov dx,04b2h
out dx,al
ror al,1
mov bl,al
mov cx,6000h
add1:
loop add1
jmp start
start3: mov al,bl
mov dx,04b2h
out dx,al
ror al,1
mov bl,al
mov cx,3000h
add2:
loop add2
jmp start
start4: mov al,bl
mov dx,04b2h
out dx,al
rol al,1
mov bl,al
mov cx,3000h
add3:
loop add3
jmp start
start5: mov al,bl
mov dx,04b2h
out dx,al
rol al,1
mov bl,al
mov cx,1500h
add4:
loop add4
jmp start
start6: mov al,bl
mov dx,04b2h
out dx,al
ror al,1
mov bl,al
mov cx,1500h
add5:
loop add5
jmp start
start7: mov bl,00h
mov al,bl
mov dx,04b2h
out dx,al
jmp start
start8: mov bl,55h
mov al,bl
mov dx,04b2h
out dx,al
jmp start
start9: mov bl,0ffh mov al,bl
mov dx,04b2h
out dx,al
jmp start
code ends
end start。