单片机---简单IO口扩展实验一.

合集下载

简单的单片机I-O口扩展实例

简单的单片机I-O口扩展实例

简单的单片机I/O口扩展实例扩展实例 简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。

它具有电路简单、成本低、配置灵活的特点。

下图为采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。

 芯片及连线说明 图中电路中采用的芯片为TTL电路74LS244、74LS273。

其中,74LS244为8缓冲线驱动器(三态输出),、为低电平有效的使能端。

当二者之一为高电平时,输出为三态。

74LS273为8D触发器,为低电平有效的清除端。

当=0时,输出全为0且与其它输入端无关;CP端是时钟信号,当CP由低电平向高电平跳变时刻,D端输入数据传送到Q输出端。

P0口作为双向8位数据线,既能够从74LS244输入数据,又能够从74LS273输出数据。

输入控制信号由P2.0和相或后形成。

当二者都为0时,74LS244的控制端有效,选通74LS244,外部的信息输入到P0数据总线上。

当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。

输出控制信号由P2.0和相或后形成。

当二者都为0后,74LS273的控制端有效,选通74LS273,P0上的数据锁存到74LS273的 输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光。

   I/O口地址确定 因为74LS244和74LS273都是在P2.0为0时被选通的,所以二者的口地址都为FEFFH(这个地址不是惟一的,只要保证P2.0=0,其它地址位无关)。

但是由于分别由和控制,因而两个信号不可能同时为0(执行输入指令,如MOVX A,@DPTR或MOVX A,@Ri时,有效;执行输出指令,如MOVX @DPTR,A或MOVX @Ri,A时,有效),所以逻辑上二者不会发生冲突。

 。

单片机实验报告_简单I/O端口扩展

单片机实验报告_简单I/O端口扩展

单片机原理与接口技术实验
实验二简单I/O端口扩展实验(1)
系别:通信工程系
专业:通信工程系11级
学号:
姓名:
实验时间:2014年3月13日
撰写日期:2014年m月n日
实验二简单I/O端口扩展实验(1)
一、实验目的
1、学习单片机扩展简单I/O端口的方法;
2、掌握通过总线输入/输出的编程方法;
3、掌握扩展总线接口芯片的地址分配方法。

二、实验内容(与本次实验报告标题括号中的数字对应)
1、先将8个开关量(K1~K8)从74244的输入端口读入,再把开关量的状态通过74273实时显示在发光二极管上。

【基础,周二/四下午每人做】
三、实验设计思路
通过中间变量,将244的内容传到273输出。

四、电路原理图及接线说明
74273接片选CS1,74244接片选CS2;开关状态接到244的输入;273的输出接到LED灯。

五、实验流程图
运行程序,拨动开关,LED
七、总结
此次实验一步到位。

附录:实验源程序以压缩包提供整个项目文件例如: s03_lab02_1a.rar。

IO口扩展实验

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口扩展模块的基本原理和工作方式。

简单IO 口扩展模块通过与单片机的SPI总线进行通信,实现对其内部寄存器的读写操作,从而实现对IO口的扩展。

在实验中,我们使用STM32F103C8T6开发板和简单IO口扩展模块,通过连接它们的SPI总线,可以将扩展模块的IO口与开发板的IO口进行连接,实现IO口的扩展。

具体连接方式如下图所示:
(此处省略图片)
接下来,我们需要进行程序设计。

在初始化时,需要设置SPI总线的相关参数,然后对扩展模块进行初始化,将其内部寄存器中的数据清零。

然后,通过读写寄存器的方式,可以对扩展模块的每个IO 口进行配置,设置其输入输出状态、上下拉电阻等参数。

在程序中,我们可以通过读取扩展模块的输入口状态,判断是否有外部信号输入,根据需要进行相应的操作。

例如,当输入口接收到高电平信号时,可以控制某个输出口输出高电平信号,从而实现控制设备的功能。

在实验中,我们可以通过连接LED和按键来进行简单的IO口扩展实验。

将LED连接到扩展模块的输出口,按键连接到扩展模块的输入口,通过控制按键输入信号,实现对LED的控制。

总的来说,本次实验通过学习简单IO口扩展模块的原理和工作方式,掌握了通过SPI总线进行IO口扩展的方法,实现了对单片机多个IO口的输入输出控制,为后续的硬件控制和应用开发打下了基础。

简单i o口扩展实验实验报告

简单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口扩展实验报告

简单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口扩展实验

实验一简单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分钟)。可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非常有用的。

简单i o口扩展实验报告

简单i o口扩展实验报告

简单i o口扩展实验报告简单I/O口扩展实验报告引言在现代科技发展的浪潮下,电子设备的功能和复杂性不断提升。

然而,对于初学者来说,了解和掌握电子设备的基本原理和操作方法是非常重要的。

本实验旨在通过简单的I/O口扩展实验,帮助初学者更好地理解和应用I/O口扩展技术。

一、实验目的本实验的主要目的是通过使用I/O口扩展技术,实现电子设备与外部设备的交互功能。

具体目标包括:1. 了解I/O口扩展的基本原理和应用场景;2. 学习使用I/O口扩展芯片进行输入输出控制;3. 实现简单的电子设备与外部设备的交互功能。

二、实验器材1. Arduino开发板;2. I/O口扩展芯片;3. 电阻、电容等基本电子元件;4. 连接线、面包板等实验工具。

三、实验步骤1. 连接电路将Arduino开发板与I/O口扩展芯片通过连接线连接起来,按照电路图进行正确的连接。

确保电路连接无误后,将其连接到电源。

2. 编写程序在Arduino开发环境中,编写程序以实现所需的输入输出控制功能。

通过调用相应的库函数,配置I/O口扩展芯片的输入输出模式,并编写相应的逻辑控制代码。

3. 烧录程序将编写好的程序烧录到Arduino开发板中,确保程序能够正确运行。

4. 实验验证运行程序后,通过操作外部设备,如按钮、LED灯等,验证I/O口扩展功能的正确性。

观察外部设备的状态变化,以及Arduino开发板的响应情况。

四、实验结果与分析通过实验,我们成功实现了I/O口扩展技术的应用。

通过编写程序,我们可以根据需要配置I/O口扩展芯片的输入输出模式,并通过控制逻辑实现与外部设备的交互功能。

在实验过程中,我们发现通过I/O口扩展技术,可以实现大量的输入输出控制。

例如,我们可以通过按钮控制LED灯的开关,通过传感器获取环境温度并进行相应的控制,通过继电器控制电机等。

这些功能的实现,不仅提高了电子设备的灵活性和可扩展性,也为我们提供了更多的创造空间。

然而,我们也发现在实际应用中,I/O口扩展技术还存在一些挑战和限制。

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

实验三简单 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.ASM
NAME T3 ;I/O口扩展实验一PORT EQU 0CFA0H ;片选地址 CS0
CSEG AT 0000H
LJMP START
CSEG AT 4100H
START: MOV A,#11H ;两个红灯亮,黄灯、绿灯灭
ACALL DISP ;调用 273显示单元(以下雷同 ACALL DE3S ;延时 3秒
LLL: MOV A,#12H ;东西路口绿灯亮 ; 南北路口红灯亮
ACALL DISP
ACALL DE10S ;延时 10秒
MOV A,#10H ;东西路口绿灯灭 ; 南北路口红灯亮 ACALL DISP
MOV R2,#05H ;R2中的值为黄灯闪烁次数
TTT: MOV A,#14H ;东西路口黄灯亮 ; 南北路口红灯亮 ACALL DISP
ACALL DE02S ;延时 0.2秒
MOV A,#10H ;东西路口黄灯灭 ; 南北路口红灯亮 ACALL DISP
ACALL DE02S ;延时 0.2秒
DJNZ R2,TTT ;返回 TTT ,使东西路口黄灯闪烁五次 MOV A,#11H ;两个红灯亮,黄灯、绿灯灭
ACALL DISP
ACALL DE02S ;延时 0.2秒
MOV A,#21H ;东西路口红灯亮 ; 南北路口绿灯亮 ACALL DISP
ACALL DE10S ;延时 10秒
MOV A,#01H ;东西路口红灯亮 ; 南北路口绿灯灭 ACALL DISP
MOV R2,#05H ;黄灯闪烁五次
GGG: MOV A,#41H ;东西路口红灯亮 ; 南北路口黄灯亮 ACALL DISP
ACALL DE02S ;延时 0.2秒
MOV A,#01H ;东西路口红灯亮 ; 南北路口黄灯灭 ACALL DISP
ACALL DE02S ;延时 0.2秒
DJNZ R2,GGG ;返回 GGG ,使南北路口 ; 黄灯闪烁五次 MOV A,#03H ;两个红灯亮,黄灯、绿灯灭
ACALL DISP
ACALL DE02S ;延时 0.2秒
JMP LLL ;转 LLL 循环
DE10S: MOV R5,#100 ;延时 10秒
JMP DE1
DE3S: MOV R5,#30 ;延时 3秒
JMP DE1
DE02S: MOV R5,#02 ;延时 0.2秒 DE1: MOV R6,#200
DE2: MOV R7,#126
DE3: DJNZ R7,DE3
DJNZ R6,DE2
DJNZ R5,DE1
RET
DISP: MOV DPTR,#PORT ;273显示单元 CPL A MOVX @DPTR,A
RET
END。

相关文档
最新文档