第7章 并行IO口的应用与扩展
第7章 IO口
27
第7章 MCS-51单片机常用接口技术
MCS-51对LED的显示 2.动态显示
多个LED共用一个8位I/O口,任何时候各个LED都接 有相同的字形码,但某一时刻只点亮一个LED。究竟哪个 LED被点亮由字位码控制,各个LED轮流被点亮。
MOV E, C ;读取P1.0、P1.1 ANL C,D ;得DE MOV G, C MOV C, E ORL C, D ;得(D+E) ANL C, /G ;得F值 MOV P1.2, C ;用灯显示F SJMP LOOP1 END 20
第7章 MCS-51单片机常用接口技术
(三)作为外部三态门和锁存器接口
2.读端口数据方式(读端口锁存器中数据) 直接以Pn口为源操作数的操作指令。例:
MOV ORL ANL XRL A , P0 R1 , P1 20H , P2 @R0 , P3
返回
17
第7章 MCS-51单片机常用接口技术
3.读引脚方式(获取从引脚传送进来的外部数据)
例如,读P1口低4位:
MOV P1 , #0FH MOV A , P1
读P1口
MOV P1,A MOV A, P1 JNB ACC.0, PR0
JNB ACC.1, PR1
……
PR7:…
……
JNB ACC.7, PR7
AJMP DONE
END 各按键对应的处 理子程序 32
判断哪个按键被按下
第7章 MCS-51单片机常用接口技术
2.对行列式非编码键盘的接口
行列式非编码键盘是一种把所有按键排列成行列矩 阵的键盘。 在这种键盘中,行列交叉处为按键,当某一按键被 按下时,相应的行线列线就会接通,否则处于断开状 态。
并行IO口扩展控制讲义
并行IO口扩展控制讲义概述并行IO口扩展控制是一种常见的硬件设计技术,用于将单一的IO 口扩展为多个并行IO口,以增加系统的输入输出能力。
在本讲义中,我们将介绍并行IO口扩展控制的根本原理、应用场景以及具体的硬件设计方法。
根本原理并行IO口扩展控制的根本原理是通过串并转换器和多路复用器实现的。
串并转换器将串行信号转换为并行信号,多路复用器将并行信号转换为串行信号。
通过这种方式,可以将一个IO口的输出信号转换为多个并行输出信号,或者将多个并行输入信号转换为一个IO口的输入信号。
应用场景并行IO口扩展控制在很多场景中都有广泛的应用。
以下是一些常见的应用场景:1.高速数据采集系统:在一些需要高速数据采集的系统中,通常需要同时采集多个传感器的数据。
通过并行IO口扩展控制,可以将单一的IO口扩展为多个并行输入口,以实现并行采集多个传感器的数据。
2.并行通信接口:在一些通信设备中,需要同时处理多个并行数据流。
通过并行IO口扩展控制,可以将单一的IO口扩展为多个并行输入输出口,以实现并行处理多个数据流。
3.扩展外设控制:在一些嵌入式系统中,IO口通常是有限的。
通过并行IO口扩展控制,可以将单一的IO口扩展为多个并行输入输出口,以控制更多的外设。
硬件设计方法下面是一种常见的硬件设计方法,用于实现并行IO口扩展控制:1.确定需要扩展的IO口数量:根据特定的应用需求,确定需要扩展的IO口数量。
2.选择串并转换器和多路复用器:根据需要扩展的IO口数量,选择适宜的串并转换器和多路复用器。
常见的串并转换器包括移位存放器和时序控制器,常见的多路复用器包括数据选择器和多路选择器。
3.连接串并转换器和多路复用器:将串并转换器和多路复用器按照设计图纸进行连接。
4.调试和验证:完成硬件连接后,进行调试和验证。
确保IO口扩展功能正常工作。
总结通过并行IO口扩展控制,可以将单一的IO口扩展为多个并行IO 口,以增加系统的输入输出能力。
单片机接口技术
第七章单片机接口技术教学内容:1、I/O口扩展技术2、存储器扩展技术3、 A/D转换和D/A转换技术4、键盘接口技术5、显示接口技术本章重点:1、可编程I/O口扩展技术2、数据存储器的扩展技术3、键盘接口技术4、显示接口技术教学要求:1、通过本章的学习,应掌握通用I/O、可编程I/O口、数据存储器、键盘、显示接口的工作原理及扩展方法。
2、掌握接口的程序设计方法。
3、具备应用系统的开发能力教案:第一节 I/O口扩展技术1、简单I/O口扩展技术1)、I/O口扩展方法芯片:简单输入口扩展采用标准接口芯片,如74HC244、74HC373、74HC245等等。
扩展方法:I/O口线与单片机口线相连,接口的控制线由单片机的其它口线或控制信号相连。
注意事项:如果控制线由通用的I/O口提供,此时单片机的接口相当于端口,访问时用MOV类指令;如果控制信号由单片机的控制口线提供,此时外面扩展的单元就相当于外部的一个存储单元,访问时要用MOVX指令。
2)、输入口扩展如图1所示为用74HC244扩展的通用的输出口。
图1 输入口扩展电路3)、输出口扩展图2是用74HC373扩展的输出电路图2 输出口扩展电路2、可编程I/O口扩展技术可编程I/O口芯片很多,但扩展方法是一样的,下面以8255和8155可编程为例来说明可编程I/O口的扩展方法1)、8255A可编程接口芯片扩展I/O口(1)8255A的内部结构8255A是可编程的I/O接口芯片,通用性强且使用灵活,常用来实现51系列单片机的并行I/O扩展。
8255A按功能分为三部分,即:总线接口电路、口电路和控制逻辑电路。
其内部结构如图3所示。
图3 8255A内部结构数据总线缓冲器:直接与CPU的系统总线连接,以实现CPU和接口之间数据、控制及状态信息的传送。
读写控制逻辑:负责管理内部和外部的数据传送,8255A读写控制如表1所示。
表1 8255A读/写控制表CSA1A0RDWR所选端口操作A口读端口A1B口读端口B1C口读端口C11A口写端口A111B口写端口B111C口写端口C1111控制寄存器写控制字1××××/数据总线缓冲器输出高阻A组与B组控制:每组控制电路一方面接收来自读/写控制逻辑电路的读/写命令,另一方面接收芯片内部总线的控制字,据此向对应的口发出相应的命令,以决定对应口的工作方式和读/写操作。
《单片机原理与应用及上机指导》第7章:80C51单片机系统扩展
表7.4 常用SRAM芯片的主要性能
表7.6 80C51与6264的线路连接
7.2 并行I/O扩展
MCS-51系列单片机共有4个并行I/O口,分别是P0、P1、 P2和P3。其中P0口一般作地址线的低8位和数据线使用; P2口作地址线的高8位使用;P3口是一个双功能口,其第 二功能是一些很重要的控制信号,所以P3一般使用其第二 功能。这样供用户使用的I/O口就只剩下P1口了。另外,这 些I/O口没有状态寄存和命令寄存的功能,所以难以满足复 杂的I/O操作要求。因此,在大部分MCS-5l单片机应用系 统的设计中都不可避免地要进行I/O口的扩展。 7.2.1 并行I/O扩展原理 7.2.2 常用的并行I/O扩展芯片
线选法
若系统只扩展少量的RAM和I/O口芯片,可采用线选法。 线选法是把单片机高位地址分别与要扩展芯片的片选端相连,控制选 择各条线的电路以达到选片目的,其优点是接线简单,适用于扩展芯 片较少的场合,缺点是芯片的地址不连续,地址空间的利用率低。
图7.7 片外RAM的读时序
图7.8 片外RAM的写时序
4.数据存储器芯片及扩展电路
(1) 数据存储器 数据存储器扩展常使用随机存储器芯片,用得较多的是 Intel公司的6116(容量为2KB)和6264(容量为8KB), 其性能 如表7.4所示。 (2) 数据存储器扩展电路 80C51与6264的连接 如表7.6所示。
全地址译码法
利用译码器对系统地址总线中未被外扩芯片用到的高位地址线进行译 码,以译码器的输出作为外围芯片的片选信号。常用的译码器有 74LS139、74LS138、74LS154等。优点是存储器的每个存储单元只 有唯一的一个系统空间地址,不存在地址重叠现象;对存储空间的使 用是连续的,能有效地利用系统的存储空间。缺点是所需地址译码电 路较多,全地址译码法是单片机应用系统设计中经常采用的方法 。
7章I_O口扩展
O F : 输出缓冲器满信号,低电平有效。用来告诉外设, B
在规定的接口上CPU已输出一个有效的数据,外设可以从该 口取走此数据。
AC :外设响应信号,低电平有效。用来通知接口外设 K
已经将数据接收,并使 O F =1。 B INTR:中断请求信号,高电平有效。当外设已从接口取 走数据,口的缓冲器变空,且接口允许中断时,INTR有效。 即, K =1O F =1 且允许中断,则INTR=1。 B AC
图7.13 8255工作方式控制字
对工作方式控制字作如下说明: A口可工作在方式0、方式1和方式2,B口可工作在方 式0和方式1 在方式1或方式2下,对C口的定义(输入或输出)不 影响作为控制信号使用的C口各位功能 最高位是标志位,作为方式控制字使用时,其值固定 为1。 2. 置位/复位控制字
在某些情况下,C口用来定义控制信号和状态信号,因 此C口的每一位都可以 进行置位或复位。对C口的置位或复 位是由置位/复位控制字进行的。各位的功能如图7.14所示。 其中,最高位必须固定为“0”。
B口
INTRB IBFB STBB
图7.10 A口和B口作输出口时, C口提供的控制引线
图7.11 A口和B口作输入口时, C口提供的控制引线
各控制信号的含义如下: STB :输入选通信号,低电平有效。它由外设提供,利用该 信号可以将外设数据锁存于8255的口锁存器中。 IBF:输入缓冲器满信号,高电平有效。当它有效时,表示 已有一个有效的外设数据锁存于8255的口锁存器中。可用此信号 通知外设数据已锁存于接口中,尚未被CPU读走,暂不能向接口 输入数据。 INTR:中断请求信号,高电平有效。当外设将数据锁存于 接口之中,且又允许中断请求发生时,就会产生中断请求。 2. 工作方式2,又称双向输入输出方式I/O操作 只有A口才能工作在方式2。A口工作方式2时要利用C口的5 条线才能实现。此时,B口只能工作在方式0或者方式1下,而C 口剩余的3条线可作为输入线、输出线或B口方式1之下的控制线。 C口提供的控制线如图7.12所示。
7 IO扩展及应用
I/O口地址 I/O口地址 P2P0=00000001 01XXXXXXXX P2P0=00000001XXXXXXXX 其中0100H 0100H其中0100H0105H分配个内部单元 0105H分配个内部单元
微机原理及应用
单片机I/O I/O扩展及应用 第七章 单片机I/O扩展及应用
3. 8279结构原理及应用 8279结构原理及应用
④. 内部定时器/计数器 内部定时器/ 14位为 位为减 计数器, 位确定输出方式,(00) ,(00 低14位为减1计数器,高2位确定输出方式,(00)单 ,(01 ,(10 ,(11 个方波,(01)连续方波,(10)单个脉冲,(11) 个方波,(01)连续方波,(10)单个脉冲,(11)连 续脉冲. 续脉冲. 8155与单片机的连接 2. 8155与单片机的连接
微机原理及应用
单片机I/O I/O扩展及应用 第七章 单片机I/O扩展及应用
1. I/O扩展原因 I/O扩展原因 P0口用于外存扩展的数据 口用于外存扩展的数据/ 位地址,P2用于外存扩展 P0口用于外存扩展的数据/低8位地址,P2用于外存扩展 的高8位地址,P3用于第二功能 I/O资源不足 用于第二功能, 资源不足. 的高8位地址,P3用于第二功能,I/O资源不足. I/O控制方式与扩展技术 2. I/O控制方式与扩展技术 无条件数据传送方式 控制方式 状态查询方式 中断方式 ①.无条件数据传送方式 随时都能进行I/O传送的方式,这样的设备有指示灯, I/O传送的方式 随时都能进行I/O传送的方式,这样的设备有指示灯, 数码管,D/A,机械开关等. 数码管,D/A,机械开关等. ★一般接口逻辑 一般接口逻辑
输入接口
输出接口
微机原理及应用
单片机I/O I/O扩展及应用 第七章 单片机I/O扩展及应用
单片机基础 第七章 单片机IO扩展及应用
单片机基础第七章单片机IO扩展及应用《单片机基础第七章单片机 IO 扩展及应用》在单片机的应用中,IO 端口(Input/Output 端口,输入/输出端口)往往是有限的。
然而,在实际的项目开发中,我们可能需要连接更多的外部设备,这就涉及到单片机 IO 扩展的知识。
单片机的 IO 端口是与外部世界进行交互的重要通道。
通过这些端口,单片机可以接收外部的输入信号,例如按键的按下、传感器的数据等,同时也可以向外输出控制信号,驱动各种执行器,如 LED 灯、电机等。
但当我们需要连接的外部设备数量超过单片机本身所提供的IO 端口数量时,就必须考虑进行 IO 扩展。
IO 扩展的方式多种多样,常见的有并行扩展和串行扩展。
并行扩展是通过增加并行接口芯片来实现的。
并行扩展的优点是数据传输速度快,能够在一个时钟周期内同时传输多个位的数据。
例如,我们可以使用 8255 芯片来扩展并行 IO 端口。
8255 具有三种工作方式,可以根据实际需求灵活配置为输入端口或输出端口。
在进行并行扩展时,需要注意地址线的连接和译码。
通常,我们会使用地址译码器来生成芯片的片选信号,确保单片机能够准确地访问到扩展的 IO 端口。
串行扩展则是通过串行通信的方式来实现 IO 扩展。
相比于并行扩展,串行扩展所需的连线较少,有利于节省电路板的空间和降低成本。
常见的串行扩展方式有SPI(Serial Peripheral Interface,串行外设接口)和 I2C(InterIntegrated Circuit,集成电路总线)。
SPI 是一种高速的全双工同步串行通信接口,通常需要四根线:时钟线(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)和片选线(CS)。
通过合理地配置这些信号线,我们可以实现多个 SPI 设备的连接和数据传输。
I2C 则是一种两线式串行总线,只需要两根线:串行数据线(SDA)和串行时钟线(SCL)。
io口扩展原理
io口扩展原理
IO口扩展原理
IO口是计算机中的一种通用输入输出接口,它可以连接各种外部设备,如键盘、鼠标、打印机、显示器等。
但是,计算机的IO口数量是有限的,如果需要连接更多的外部设备,就需要进行IO口扩展。
IO口扩展的原理是通过芯片来实现的。
常见的IO口扩展芯片有74HC595、74HC164、74HC573等。
这些芯片都是串行输入并行输出的芯片,可以将一个串行输入的信号转换成多个并行输出的信号。
以74HC595芯片为例,它有三个引脚:SER、SRCLK、RCLK。
SER 是串行输入端,SRCLK是移位寄存器时钟,RCLK是并行输出寄存器时钟。
当输入一个高电平信号到SER引脚时,芯片内部的移位寄存器就会将这个信号存储起来。
每当SRCLK引脚接收到一个上升沿时,移位寄存器就会将存储的信号向左移动一位,同时将新的输入信号存储到最右边的位置。
当移位寄存器中存储的位数达到8位时,就可以通过RCLK引脚将这8位信号输出到外部设备。
通过多个74HC595芯片的级联,可以实现更多的IO口扩展。
例如,如果需要扩展16个IO口,就可以使用两个74HC595芯片级联,将第一个芯片的并行输出连接到第二个芯片的串行输入,这样就可以实现16位的并行输出。
除了74HC595芯片,还有其他的IO口扩展芯片可以使用。
不同的
芯片有不同的特点和应用场景,需要根据具体的需求进行选择。
IO口扩展是一种常见的硬件扩展方式,可以帮助计算机连接更多的外部设备。
通过了解IO口扩展的原理和使用方法,可以更好地应用这种技术,提高计算机的功能和性能。
(9)IO口扩展
+5V
R 8
WR P2.0 RD
1
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G
D0 D1 D2 D3 D4 D5 D6 D7
K0 K1 K2 K3 K4 K5 K6 K7
74LS244
程序如下:
ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#0FEFFH;数据指针指向I/O口地址 MOVX A,@DPTR ;从244读入数据,检测按键 MOVX @DPTR,A ;向273输出数据,驱动LED AJMP MAIN END
同时,段选线上输出相应位要显示字符的字型码, 这样同一时刻,4位LED中只有选通的那一位 显示出字符,而其它三位则是熄灭的。
同样,在下一时刻,只让下一位的位选线处于选 通状态,而其它各位的位选线处于关闭状态时, 在段选线上输出相应位将要显示字符的字型码, 则同一时刻,只有选通位显示出相应的字符, 而其它各位则是熄灭的。如此循环下去,就可 以使各位显示出将要显示的字符, 虽然这些字符是在不同时刻出现的,而且同一时 刻,只有一位显示,其它各位熄灭,但由于人 眼有视觉暂留现象, 只要每位显示间隔足够短便可造成多位同时亮的 假象,达到显示的目的。
// a b c d e f g h // Msb.......................................Lsb Const uchar table[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6} Const uchar counttable[4]={0x00,0x10,0x20,0x30} uchar Dispbuf[4]; uchar DispCount=0; /********************************************************** *原型:void Display(void) *功能:显示缓冲区的数值。 *参数:无 *返回:无 **********************************************************/ void Display(void) { LedPort = LedPort&0x0f; //先将为选择信号置为零 LedPort = LedPort | counttable[DispCount]; //输出下一位数码管的为选择信号 PORTA = Dispbuf[DispCount]; //输出对应缓冲区的段信号 DispCount ++; if( DispCount == 4 ) { DispCount=0; } }
并行IO口及其应用课件
21
高电压光电隔离输入
22
23
I/O口的实例仿真
q 例4.3 报警器的proteus仿真及C语言程序设计
q 设计要求 :如图4.27所示,用P1.0输出1KHz和500Hz的 音频信号驱动扬声器,作报警信号,要求1KHz信号响 100ms,500Hz信号响200ms,交替进行,P1.7接一开关 进行控制,当开关合上报警信号响,当开关断开报警信 号停止。
25
4.3 I/O口应用实例与仿真
I/O口的实例仿真
q 例4.4广告灯(查表方式)的proteus仿真及程序设计
q 设计要求 :如图4.29所示,利用查表的方法,使端口P1 做单一灯的变化:左移2次,右移2次,闪烁2次(延时 的时间0.2秒)。
q 广告灯的仿真电路原理图 (见教材图4.29 ) q 元器件选取
q 灌电流和拉电流反应了管脚的带负载能力,灌电流比拉 电流大,因此灌电流带负载能力强。
q 限流电阻的选择要根据灌电流、拉电流的大小进行选择。
19
大功率负载驱动
q 当驱动大电流负载,或驱动高电压负载时,需要采用以 下的电路形式。
q 当驱动强电电路时,弱电电源与强电电源需要隔离,此 时需要使用光电隔离器件。
q 报警器的仿真电路原理图 (见教材图4.27) q 元器件选取
• ①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振; ④CAP、CAP-ELEC:电容、电解电容;⑤SPEAKER:扬 声器;⑥SW-SPDT:单刀双掷开关;⑦9012:PNP三极管
24
4.3 I/O口应用实例与仿真
I/O口的实例仿真
• 汇编语言步骤如下:①把控制码建成一个表TABLE;②利用 MOV DPTR,#TABLE指令来使数据指针寄存器指到表的开 头;③利用MOVC A,@A+DPTR的指令,根据累加器的值 再加上DPTR的值,就可以使程序计数器PC指到表格内所要 取出的数据。
单片机中的IO口扩展原理及应用
单片机中的IO口扩展原理及应用单片机是一种在微处理器中集成了中央处理器、内存、输入/输出控制和时钟等功能的微型计算机。
在实际应用中,单片机的使用每況愈下,并逐渐被更高级的处理器所取代。
然而,在一些特殊应用领域,如嵌入式系统和物联网设备中,单片机仍然扮演着重要的角色。
在单片机中,IO口的扩展是一项关键的技术,用来增加单片机的输入和输出接口数量。
本文将探讨单片机中的IO口扩展原理及其应用。
一、单片机IO口扩展原理在单片机中,IO口(Input/Output Port)用于连接外部电路和其他设备,扮演着数据输入和输出的桥梁角色。
然而,通常单片机内部只有有限的IO口数量。
为了满足复杂的应用需求,需要通过扩展技术来增加IO口的数量。
1. 并行IO口扩展其中一种常见的IO口扩展技术是通过并行IO口扩展芯片来增加IO口数量。
该芯片通常由一个并行输入/输出移位寄存器和控制逻辑组成。
通过串行通信协议,单片机可以控制并行IO口扩展芯片,以实现扩展IO口的输入和输出功能。
这种方式适用于需要大量IO口的应用,如工业控制和自动化设备。
不过需要注意的是,并行IO口扩展芯片策略相对复杂,需要额外的引脚和电路设计,并且使用的软件协议需要单片机和外部芯片之间的高速通信支持。
2. 串行IO口扩展另一种常见的IO口扩展技术是通过串行IO口扩展芯片来增加IO口数量。
串行IO口扩展芯片通常采用常用的串行通信协议,如I2C(Inter-Integrated Circuit)或SPI(Serial Peripheral Interface),通过少量的引脚连接到单片机。
通过控制寄存器和数据寄存器,单片机可以发送指令和数据来控制扩展IO口的输入和输出。
这种方式相对于并行IO口扩展芯片来说,引脚数量较少,实现简单,适用于需要较少IO口数量的应用。
同时,由于使用串行通信协议,可以通过级联多个串行IO口扩展芯片,进一步增加IO口数量。
二、单片机IO口扩展应用单片机IO口扩展技术在各种嵌入式系统和物联网设备中都有广泛的应用。
第7章MCS-51单片机的并行IO接口及扩展
2. P1口一个位的结构
读锁存器 Vcc
*
上拉电阻 P1.x
内部总线 写
D Q CP Q T2
读引脚
P1口的作用特点: 1)内部具备上拉电阻,执行输出功能是,无须连接外部上拉电阻。 2)若要执行输入功能,必须先输出高电平(1)才能读取该口所 连接的外部数据。
• 例7-2-1 试编出模拟图7-2-5中电路的程序。
• 在51系列的C语言中对四个I/O端口进行编程,必 须要利用8051的C语言头文件,其中给出P0~P3 标号的定义。并且可以使用Px^y格式对P0~P3端 口的单个位进行表示,其中x是端口0、1、2或3, y是该端口的位0~7,例如P1^7指示P1.7。
8255A的内部结构如图7-4-2所示,由三部分电路组成: 与CPU的接口电路、内部控制逻辑电路和与外设连接的输 入/输出接口电路。 (1)与CPU的接口电路 (2)内部控制逻辑电路 (3)输入/输出接口电路
图7-4-2 8255A的内部结构
表7-4-1 8255A的端口分配及读/写功能
7.4.2 8255A的工作方式及其初始化编程
地址 控制
Vcc * 上拉电阻 P2.x
D Q CP Q
MUX
T2
4 . P3口 P3口一个位的结构
选择输出功能 读锁存器 Vcc * 上拉电阻 P3.x 内部总线 写 D Q CP Q T2
读引脚
第二输入功能
P3口的第二功能
P3引脚 P3.0 P3.1 P3.2 兼用功能 串行通讯输入(RXD) 串行通讯输出(TXD) 外部中断0(INT0)
7.3 用TTL芯片扩展简单的I/O接口
第七章 IO扩展及应用
MOV DPTR,#7FFCH
MOVX A,@DPTR
RET
精选版课件ppt
17
*&7-4 可编程并行接口芯片8155
与8255A相比,8155具有更强的功能,可 以扩展单片机的I/O口、定时器、外部数据存储
器RAM。 1、8155芯片的构成 1)逻辑结构
2)引脚图 3)接口信号
精选版课件ppt
18
精选版课件ppt
8155
Vcc PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
20
PA0-PA7 PB0-PB7 PC0-PC5
AD0-AD7
IO/ M
TIMER IN TIMER OUT
RD、WR ALE CE
若端口A工作于方式1,则B可工作于方式0;
•
若端口B工作于方式1,则A可工作于方式0或余下的
13位可工作于方式0;
•
若端口A和B同时工作于方式1,端口C余下的两位还
可用于传送数据或控制信号。
精选版课件ppt
14
3)方式2
也称选通的双向I/O方式,仅适用于端口A, 这时A口的 PA7-PA0作为双向的数据总线, 端口C有5条引脚用作A的握 手信号线和中断请求线,而B口和C口余下的3位仍可工作于 方式0或1。 它可以认为是方式1输出和输入的组合但有以下不 同:
数据端口A、B、C;A组控制和B组控制;读/写控制逻 辑电路;数据总线缓冲器。结构如图所示
精选版课件ppt
10
端口A:包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数 据输入锁存器,可作为数据输入或输出端口, 并工作于三种 方式中的任何一种。
并行I-O接口的扩展
MOVDPTR,#OFF7DH;B口地址→DPTR MOVA,#DATA1;要输出的数据#DATA1→A MOVX@DPTR,A;将#DATA1送B口输出 MOVDPTR,#OFF7EH ;C口地址→DPTR MOVA,#DATA2;#DATA2→A MOVX@DPTR,A;将#DATA2送C口输出
8255A的C口8位中的任一位,均可用指令来置位或复位。例 如,如果想把C口的PC5置1,相应的控制字为00001011B=0BH (关于8255A的C口置位/复位的控制字说明参见图5 18),程 序如下:
MOVDPTR,#OFF7FH;控制口地址→DPTR MOVA,#0BH;控制字→A MOVX@DPTR,A;控制字→控制口,PC5=1
(2)方式1:选择输入/输出方式。方式1主要用于中断和查 询数据传送方式,只有A口和B口可以选择这种工作方式。 (3)方式2:双向传送方式。只有A口可以使用方式2,既可以输 入数据,也可以输出数据,此时C口中的PC3~PC7用做A口的控制 和联络信号。
8255A的3种工作 方式由写入控制字寄 存器的方式控制字来 决定。方式控制字的 格式如图所示。3个 端口中C口被分为两 个部分,上半部分随 A口称为A组,下半部 分随B口称为B组。其 中A口可工作于方式0、 1和2,而B口只能工 作在方式0和1。
输入操作: MOV DPTR,#
0FEFFH
MOVX A,
@DPTR
输出操作: MOV A,#DATA
输
入 0FDFFH
信 号
MOV DPTR,# MOVX @DPTR,
A
1.2 可编程并行I/O接口8255A
并行IO接口的扩展实验报告
并行IO接口的扩展实验报告一、实验目的1、了解并行IO接口的扩展方法2、掌握可编程接口芯片8255A的工作原理、编程方式和使用方法二、实验条件1、DOS操作系统平台2、8255A接口芯片三、实验原理1、并行IO口的扩展方法:(1)通过通用的IO扩展芯片实现(2)通过TTL、CMOS 锁存器、缓冲器芯片实现。
如74LS377、74LS273、74LS244、74LS245 等。
(3)通过串行通信口扩展并行I/O 口。
2、8255A 扩展I/O 端口:(1)8255A 具有三种基本工作方式,即方式0、方式1、方式2。
各端口的工作方式及输入输出方向都由方式控制字设定(通过写入控制寄存器)。
8255A 的控制字有方式控制字和C 口置位/复位控制字两种。
3、8255A 的工作方式:(1)方式0 是一种基本I/O 方式。
在这种工作方式下,三个端口都可由程序设定为输入或输出,这种方式不使用联络信号,其基本功能为:a. 两个8 位端口(A、B) 和两个4 位端口(C)。
b. 任一个端口可以作为输入或输出。
c. 输出锁存,输入不锁存。
d. 在方式0 时,各端口都可以作为数据端口,CPU 用简单的输入或输出指令来进行读或写。
(2)方式1 是一种选通I/O 方式。
在这种方式下,端口A 和B 可作为数据端口,但C 口的某口的其它位仍可工作于方式0。
方式1 的基本功能为:a. 用作一个或两个选通端口。
b. 每个选通端口包含有:8 位数据瑞口,3 条控制线,提供中断逻辑。
c. 任一端口可输入或输出。
d. 若只有一个端口工作于方式1,余下的13 位可以工作于方式0。
e. 若两个端口工作于方式1,C 口余下2 位可以工作于方式0。
(3)方式2 是一种双向I/O 方式,只有端口 A 具有这种工作方式,其基本功能为:a. 一个8 位双向数据端口(A)和一个5 位控制端口(C)。
b. 输入和输出锁存。
c. 5 位控制端口用作端口A 的状态和控制信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.2.2 简单并行I/O接口的扩展
扩展I/O接口所用的芯片主要有通用可编程 I/O芯片和TTL、CMOS锁存器、三态门电 路芯片两大类。
采用74LS244做扩展输入、74LS273做扩展输 出的简单I/O扩展电路。
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 LEDX8
7.3 键盘与显示器的扩展
7.3.1 基本LED显示原理 1.LED显示器的结构与原理
共阴极
g f GND a b a b c d e f g dp
R 8 R 8
共阳极
+5v
f e 1 2
a g d
b c dp 3 4
a b c d e f g dp
e d GND c dp
十六进制数字形代码表
;再读键状态 ;和延时前的状态一样吗? ;一样,则转去查询键号 ;8~F号键也不存在操作,则跳 ;再读按键状态
;按键没有松开,则等待松开 ;查询有键操作的键号 ;不是第1个键,则跳 ;赋键初值 ;不是第2个键,则跳 ;赋键初值
……
7.3.4 8255A的应用
8255A是可编程的并行输入/输出接口芯片, 通用性强且使用灵活,常用来实现与MCS-51 系列单片机的并行I/O扩展。
7.2 基本I/O口的应用与扩展
7.2.1 I/O口的直接应用 从P1.0~P1.3 输入开关状态, 再经P1.4~ P1.7输出去驱 动发光二极管, 使发光二极管 显示开关的状 态。
+5V
5.1k 4
P1.0 P1.1 P1.2 P1.3
K0 K1 K2 K3
100 4
89C51
P1.4 P1.5 P1.6 P1.7
驱动器
a b c d e f g dp
7.3.2 矩阵式键盘的扩展
键盘上的键按行列构成矩阵,在行列的交点 上都对应有一个键。 所谓键实际上就是一个机械开关,被按下则 其交点的行线和列线接通。非编码键键盘接 口技术的主要内容就是如何确定被按键的行 列位置,并根据此产生键码。
1.键输入过程与软件结构
D 0 ~ D7
组A A口
PA 7 ~ PA 0
数据 总线 缓冲
组A C口高
PC 7 ~ PC 4
RD WR A1 A0 REST
组B C口低 读/写 控制 逻辑
PC3 ~ PC0
组B 控制
组B B口
PB7 ~ PB0
CS
2.总线接口电路
(1)数据总线缓冲器 (2)读/写控制器
3.8255A的工作方式
LED0 LED1 LED2 LED3
+5V
程序如下:
ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV A,#0FH MOV P1,A MOV A,P1 SWAP A MOV P1,A AJMP MAIN END
;熄灭发光二极管 ;读入开关状态 ;A高低半字节交换 ;开关状态输出
4.键盘接口举例
8×2行列式键盘扫描接口电路
P1.0 P1.1 P0.0 P0.1 P0.2 8051 P0.3 P0.4 P0.5 P0.6 P0.7 P2.7 RD VCC
74HC245
B0 B1 B2 B3 B4 B5 B6 B7 A0 A1 A2 A3 A4 A5 A6 A7 DIR E
0 1 2 3 4 5 6 7
8 9 A B C D E F
R 8
1
键盘扫描的程序(采用查询方法)
KS: KSK1: MOV CLR MOVX MOV CPL JZ LCALL MOVX XRL JZ SETB CLR MOVX MOV CPL JZ LCALL DPTR,#7FFFH ;键扫描程序 P1.0 ;先扫描第1列(即0~7号键) A,@DPTR ;读入按键状态 37H,A ;暂存按键状态 A ; KSK1 ;0~7号键没有键操作,则跳 DL20 ;0~7号键有操作,则延时去抖 A,@DPTR ;再读键状态 A,37H ;和延时前的状态一样吗? KS1 ;一样,则转去查询键号 P1.0 ;开始扫描第2列,8~F号键 P1.1 A,@DPTR ;读入按键状态 37H,A ;暂存按键状态 A KSK2 ;8~F号键没有键操作,则跳 DL20 ;8~F号键有操作,则延时去抖
键扫描
N
有无键按下
Y
查键号 JMP @A+DPTR
A=00H A=01H A=NNH ...
00#按键 应用程序
01#按键 应用程序
NN#按键 应用程序
2.键盘输入接口与软件应解决的任务
(1)键开关的可靠输入 抖动的处理有硬件处理和软件处理两种。 (2)按键编码与键号定义 (3)键盘检测与编制键盘程序
6 0 1 1 7 1 B0 1 B1 1 B2
0 0 0 0
位 置1/置0 标志 0=有效
6.8255A的应用
8051
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 ALE/P P2.7 RD WR RESET
74LS373
D0 D1 D2 D3 D4 D5 D6 D7 LE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 OE
3.矩阵式键盘电路的结构及工作原理
一个4×4的 行、列结构 可以构成一 个含有16个 按键的键盘。
+5V X3 X2 X1 X0 12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3 Y0 Y1 Y2 Y3
扫描方法:先令列线Y0为低电平(0),其 余3根列线Y1、Y2、Y3都为高电平,读行线 状态。如果X0、X1、X2、X3都为高电平, 则Y0这一列上没有键闭合,如果读出的行线 状态不全为高电平,则为低电平的行线和Y0 相交的键处于闭合状态;如果Y0这一列上没 有键闭合,接着使列线Y1为低电平,其余列 线为高电平。用同样的方法检查Y1这一列上 有无键闭合,依次类推,最后使列线Y3为低 电平,其余列线为高电平,检查Y3这一列有 无键闭合。
+5V
CLR
74LS273
89C51
1
WR P2.0 RD
1
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G
D0 D1 D2 D3 D4 D5 D6 D7
+5V R 8 K0 K1 K2 K3 K4 K5 K6 K7
74LS244
程序如下:
ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#0FEFFH;数据指针指向I/O口地址 MOVX A,@DPTR ;从244读入数据,检测按键 MOVX @DPTR,A ;向273输出数据,驱动LED AJMP MAIN END
7
8
F8H
80H
07H
7FH
灭
FFH
00H
2.LED显示器接口方法
(1)以硬件为主的接口方法
R 8
+5v
a b c d e f g dp
D0 D1 D2 D3
锁存器 译码 驱动器 I/O 接口
地址译码器 A0 „„ A7
(2)以软件为主的接口方法
R 8
8155
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
1.8255A的逻辑结构和信号引脚
PA 3 PA 2 PA 1 PA 0 RD CS GND A1 A0 PC 7 PC 6 PC 5 PC 4 PC 0 PC 1 PC 2 PC 3 PB 0 PB 1 PB 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
8255A共有三种工作方式,即方式0、方式1 和方式2。
(1)方式0 基本输入/输出方式
方式0适合于无条件数据传送,可供使用的是 两个8位口(A口和B口)及两个4位口(C口 高位部分和低位部分)。
(2)方式1 选通输入/输出方式
方式1下,A口和B口分别用于数据的输入/输出。而 C口则作为数据传送的联络信号。具体定义见表。
+5V
8255A芯片的PA端口的地址为7FFCH,PB端口的地 址为7FFDH,PC端口的地址为7FFEH,控制寄存器 的地址为7FFFH。可用“MOVX”指令来访问这些端 口。
ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV A,#90H MOV DPTR,#7FFFH MOVX @DPTR,A MOV DPTR,#7FFCH MOVX A,@DPTR MOV DPTR,#7FFEH MOVX @DPTR,A END
8255A
40 39 38 37 36 35 34 33 32 31 30 29
28 27 26 25 24 23 22 21
PA 4 PA 5 PA 6 D7 V CC PB 7 PB 6 PB 5 PB 4 PB 3
组A 控制
8255A
D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 CS RD WR RESET PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 LED
+5V R 8 K0 K1 K2 K3 K4 K5 K6 K7
R 8
只有A口才能选择这种工作方式,这时A口既 能输入数据又能输出数据。在这种方式下需 使用C口的五位口线作控制线。方式2适用于 查询或中断方式的双向数据传送。如果把A 口置于方式2下,则B口只能工作于方式0。