单片机并口扩展
80C51单片机并行IO口的扩展毕业设计资料

摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断的走向深入。
但是在由单片机构成的实际测控系统中,最小应用系统往往不能满足要求,因此在系统设计时首先要解决系统扩展问题。
单片机扩展通常是借助外部器件对系统进行扩展。
本文主要研究了采用可编程多功能扩展芯片intel 8155扩展单片机I/O 口。
把单片机作为一个核心部件,设计单片机与8155的接口,并实现数码管三位数字的显示。
本文的主要内容有:单片机的概述,设计的意义,核心器件intel 8155芯片、80C51单片机、数码管的介绍,单元电路模块,设计原理图及流程图,软件编程设计以及最后的结果和个人在整个设计前后的心得体会。
关键词:单片机,8155,数码管,动态显示。
- I -AbstractWith the development of computer penetration in the social field and LSI in recent years, the application of MCU is constantly deepening. but in the actual measurement and control system constituted by the microcontroller, the smallest applications system often can not meet the requirements, so we have to solve the system expansion. The Microprocessor usually use an external device to relize the expansion of the system.Adopting Intel 8155 which is a kind of programmable multi-function expansion chip,this paper studies the expansion of MCU parallel I/O port. MCU act as a core component,.we have designed the 8155 chip interface to relize three digital display on LED numerical code tube.The main content of this paper are microcontroller overview of the significance of the design, the core of the device intel 8155 ;80C51 microcontroller, the introduction of LED numerical code tube, the unit circuit module,design schematics and flowcharts, software programming design, the final results and individual feelings and experiences throughout the design.Key words:MCU, 8155, LED numerical code tube, dynamic display.目录1.绪论 (1)1.1单片机概述 (1)1.2课题研究背景及意义 (2)1.3设计任务 (3)2.核心器件基本结构与工作原理 (4)2.180C51单片机 (4)2.2带RAM和计数器的可编程并行I/O扩展接口8155 (6)2.2.1 结构和引脚 (6)2.2.2 8155命令和状态字 (8)2.2.3 8155定时器/计数器 (12)2.2.4 MCS-51和8155的接口方法 (13)2.3LED显示器接口 (14)2.3.1 LED显示器的工作原理 (15)2.3.2 LED显示器的显示方式 (16)3.硬件设计 (19)3.1元器件列表 (19)3.2单元电路模块设计 (21)3.2.1 单片机 (21)3.2.2 晶振电路 (22)- 1 -3.2.3 复位电路 (22)3.2.4 Intel 8155与AT89S51接口电路 (23)3.2.5 LED数码管显示电路 (23)3.3总设计原理图 (24)4.软件设计 (25)5.成果展示 (26)总结 (27)致谢 (28)参考文献 (1)附录 (2)80C51单片机并行I/O口的扩展1.绪论1.1 单片机概述单片机是在一片芯片上集成了中央处理器CPU、随机储存器RAM、程序储存器ROM或EPROM、定时器/计数器、中断控制器以及串行和并行I/O口等功能器件的微型计算机。
单片机端口扩展的方法

实验4 单片机端口扩展实验目的通过此实验学习单片机I/O口的扩展,实验通过扩展芯片8255A实现。
实验内容通过8255A芯片进行单片机I/O口扩展。
实验步骤1、在Proteus环境中绘制仿真电路图。
在前面实验中加入一个74LS373锁存器(关键词‘74LS373’),一个8255A扩展芯片(关键词‘8255A’),LED灯,电阻,开关(关键词‘BUTTON’)搭建如图5-1所示仿真电路。
图5-1 I/O扩展实验仿真电路图2、连线说明:74LS373锁存器11引脚主要进行信号的状态选择控制,它直接与CPU的ALE 管脚相连,当它为“1”时,锁存器输出状态(Q0~Q7)同输入状态(D0~D7);当它由“1”变“0”时,数据打入锁存器中。
本文设计中用锁存器出口的Q0、Q1和Q7与8255A芯片的A0、A1和/CS管脚相连,/CS管脚为片选信号输入管脚,A0、A1为8255A芯片出口模式选择信号引脚。
3、8255A端口地址确定简介:端口地址随硬件电路连接的变化而变化,一片8255A占4个端口地址:PA 口、PB口、PC口、控制口,由/CS、A1、A0决定。
/CS、A1、A0接单片机的地址总线,构成单片机访问8255A的16位地址:16位总线访问地址=片选地址+片内地址/CS、A1、A0与地址总线的连接方案不同,端口地址也就不同。
比如:将没有连接的地址线设为1,由上面的连接方式,8255A四个端口地址分别为:PA=7FFCH;PB=7FFDH;PC=7FFEH;控制口=7FFFH;端口地址与电路连接关系密切,端口地址的正确确定是CPU对8255访问的关键。
在本实验电路设计中,利用锁存器实现端口地址的锁存,由连线可以看到P0.0、P0.1和P0.7分别与8255A芯片的A0、A1和/CS引脚相连,则可以确定本实验8255A芯片各端口地址为:PA=FF7CH;PB=FF7DH;PC=FF7EH;控制口=FF7FH4、8255A的控制字介绍:(1)工作方式控制字:作用是设置3个并行口I/O选择和设置8255A的工作方式。
8051单片机 课件 并行口扩展

MOVX A,@DPTR , MOVX @DPTR,A , SJMP $
可编程I/0芯片的使用
可编程I/O芯片是指芯片功能可由指令来确 定,即需要对其编程。 常用的I/O口芯片有8255和8155。
简单I/O口扩展
用并行口扩展I/O口
选择TTL电路或MOS电路即能组成简单的扩展 I/O口。 如:用8位三态缓冲器74LS244可扩展输入口; 用8D锁存器74LS273、74LS373、74LS377 等可组成输出口。
简单I/O扩展接口 简单I/O扩展接口
口地址的确定及编程应用
因为74LS273和74LS244都是在 和 都是在P2.0为0时被选通 所以二者 时被选通,所以二者 因为 都是在 为 时被选通 地址都可以为FEFFH。 两个芯片的地址虽然相同,但可以通过读写操作来区别 两个芯片的地址虽然相同 但可以通过读写操作来区别 编程应用如下: 编程应用如下: MOV DPTR,#0FEFFH ;指向口地址 ,
片内RAM——0000H~00FFH 片内 命令/状态寄存器 状态寄存器:0400H 命令 状态寄存器 PA:0401H PB:0402H PC:0403H
设置8155工作方式
控制字
(只写不读)
TM2 TM1 IEB IEA PC2 PC1 PB PA (A/B口方式):0—输入,1—输出
00 11 01 10 计 数 器 方 式 方式1:A、B口基本I/O,C口输入 方式2:A、B口基本I/O,C口输出 方式3:A口选通I/O, B口基本I必须设置好工作方式,否则将无法正常工作。 前必须设置好工作方式, 在使用 前必须设置好工作方式 否则将无法正常工作。
单片机数字输入输出接口扩展设计方法

单片机数字输入输出接口扩展设计方法单片机作为一种常见的微控制器,其数字输入输出接口的扩展设计方法是我们在电子工程领域中经常遇到的任务之一。
在本文中,我们将讨论单片机数字输入输出接口的扩展设计方法,并探讨其中的原理和应用。
在单片机系统中,数字输入输出(I/O)接口在连接外围设备时起着至关重要的作用。
通过扩展数字 I/O 接口可以为单片机系统提供更多的输入输出通道,从而提高系统的功能和性能。
下面将介绍几种常见的单片机数字 I/O 接口扩展设计方法。
1. 并行输入输出接口扩展并行输入输出接口扩展是最常见和直接的扩展方法之一。
通常,单片机的内部I/O口数量有限,无法满足一些复杂的应用需求。
通过使用外部并行输入输出扩展芯片,可以将单片机的I/O口扩展到更多的通道,同时保持高速数据传输。
这种方法可以使用注册器和开关阵列来实现数据的输入和输出。
2. 串行输入输出接口扩展串行输入输出接口扩展是一种节省外部引脚数量的方法。
使用串行输入输出扩展器,可以通过仅使用几个引脚实现多个输入输出通道。
这种方法适用于具有较多外设设备且外围设备数量有限的应用场景。
通过串行接口(如SPI或I2C)与扩展器通信,可以实现高效的数据传输和控制。
3. 矩阵键盘扩展矩阵键盘扩展是一种常见的数字输入接口扩展方法。
很多应用中,需要通过键盘输入数据或控制系统。
通过矩阵键盘的使用,可以大大减少所需的引脚数量。
通过编程方法可以实现键盘按键的扫描和解码,从而获取用户输入的数据或控制信号。
4. 脉冲编码调制(PCM)接口扩展脉冲编码调制是一种常见的数字输出接口扩展方法。
它通过对数字信号进行脉冲编码,将数字信号转换为脉冲信号输出。
这种方法适用于需要输出多个连续的数字信号的应用,如驱动器或步进电机控制。
通过适当的电路设计和编程,可以实现高效的数字信号输出。
5. PWM(脉冲宽度调制)接口扩展PWM接口扩展是一种常用的数字输出接口扩展方法。
PWM技术通过改变信号的脉冲宽度来实现模拟信号输出。
第14讲:MCS-51单片机系统的并口IO扩展(8255)

8255A 74LS373
1D ~ 8D 2Q 1Q G /OC
8 8
微型打印机
P0
PA0~PA7
A1 A0 PC0 PC7
DB0~DB7
8031
ALE /RD /WR RST /EA
BUSY /STB
D0 ~D7 /RD /WR RESET
分析:因为PC0连接BUSY,所以,PC3~PC0为输入,又因PC7连接 /DATA
STROBE ,所以PC7~PC4为输出;STROBE表示重复的意思;/DATA STROBE 数据选通信号。作用是通知打印机,8255A要给它传数。 PA口输出,PB口未用。 故 8255A的控制字可设为:1000 0001B=81H 由电路图,得PA口地址:7FFCH(地址的无关位取“1”) PB口地址:7FFDH PC口地址:7FFEH 控制口 : 7FFFH
I/O
I/O INTRA /STBA IBFA × ×
I/O
I/O INTRA × × /ACKA / OBFA
(4)8255A的4个端口的地址
①8255各端口的地址如何确定?
CS
0 0 0 0 1
②对8255各端口的操作?
A1
0 0 1 1 ×
A0
0 1 0 1 ×
选中的端口
PA PB PC 控制寄存器 芯片未选中
C口:除了单独作为8位输入、输出口使用外, 还可以按控制命令被分成两个4位端使用, 分别作为A口和B口输出控制信号和输入 状态信号。
A组控制和B组控制:这两组控制电路由 工作方式控制字来设定两组端口的工作 方式和读/写操作。 A组的控制电路管理A口和C口的高5位 (PC7~PC3)的工作方式和读/写操作。 B组的控制电路管理B口和C口的低3位 (PC2~PC0)的工作方式和读/写操作。
单片机并行I-O口的扩展方法

单片机并行I/O口的扩展方法摘要:由于在MCS-51单片机开发中P0口经常作为地址/数据复用总线使用,P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等)使用,所以对于51单片机的4个I/O口,其可以作为基本并行输入/输出口使用的只有P1口。
因此在单片机的开发中,对于并行I/O口的扩展十分重要,主要分析3种扩展并行I/O口的方法。
关键词: MCS-51单片机; 并行I/O口; 扩展MCS-51单片机有4个并行的I/O口,分别为P0口、P1口、P2口和P3口,4个并行I/O 口在单片机的使用中非常重要,可以说对单片机的使用就是对这4个口的使用。
这4个并行I/O口除了作为基本的并行I/O口使用,还常作为其他功能使用,如P0口经常作为地址/数据复用总线使用[1], P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等等)使用。
这样,单片机只有P1口作为基本的并行I/O口使用,如果在单片机的使用中对并行I/O口需求较多,对于并行I/O口的扩展就非常重要了。
下面通过具体的实例(8位流水灯设计)来给出几种不同的并行I/O口扩展方法。
为了更好地说明以下几种不同的并行I/O口扩展方法,假设利用单片机实现流水灯的设计。
采用单片机的P1口设计流水灯,电路。
由图1可知,8只LED直接连接在单片机的P1口上,通过对单片机进行编程即可以实现8只发光二极管产生流水灯。
1 使用单片机的串行口扩展并行I/O口单片机有一个全双工的串行口[2],这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为移位寄存器使用。
当单片机的串行口工作在模式0时,若外接一个串入/并出的移位寄存器(74LS164),就可以扩展一个8 bit并行输出口;若外接一个并入/串出的移位寄存器(74LS165),就可以扩展一个8 bit并行输入口。
,单片机外接一个串入/并出的移位寄存器(74LS164),这样就可以扩展8 bit并行输出口。
一种C51单片机并行口扩展设计及应用

一种C51单片机并行口扩展设计及应用1 引言C51单片机是我们生活中最常用的系列,MCS-51系列单片机有4个并行口(P0,P1,P2,P3口),但对一个稍微复杂的应用系统来说,真正可供用户使用的并行口,只有P1口可用,况且常常因扩展I2C和SPI的器件需占用某些P1口,迫使用户不得不扩展并行口以满足实际的需要。
习惯上,常用的并行口接口芯片有8255、8155,这两种芯片功能比较齐全,可以使用在相对比较复杂的系统中,但如是对一般的系统而言,这些功能往往闲置不用。
那么就可以选用一些本来闲置不用的口线作为选通信号来进行并行口的扩展,这样就能充分利用单片机有限的I/O资源,在本设计中是将P1口扩展成一个或几个8位并行口,在每一个八位口上接入8个发光二极管做为输出,二极管是做开关量来使用的,在这里设计了跑马灯和流水灯程序,做到对开关量的开断控制;配合开关量的控制笔者设计了一个共阳LED数码管,用来显示当前发光二极管发亮的序号,做到更加直观的双重控制效果,然后再将P0口通过D/A转换器和一放大器输出一个模拟信号,其结果可以通过示波器看出。
这样整个系统即有了数字信号输出和模拟信号输出,也有数码管显示功能,实用性能大提高了。
2 基于89C51的系统硬件设计2.1 并行口的扩展的电路设计众所周知,C51系列的单片机都有四个I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我们通常仅仅使用P1口作为并行口,而令其余口(P2、P3)处于闲置状态,所以这次设计,我们就是使用闲置不用的P3口做为选能信号线来将P1口进行并行口扩展。
(1) 种方式的并行口扩展优点连线简单;不占用存储器空间;(2) 编程也方便灵活。
但也有很大的缺点并行口扩展能力有限,(如使用74LS573(74LS373)且不进行驱动处理,则最多可扩展4个同样类型的并行输出端口,当然还需要与之对应的四个选通信号。
)如扩展较多,选通信号占用并行口位数太多,例如欲扩展8个并行输出端口,则需要8个选能信号,此时,仅选能信号就占用了一个8位并行口,这对在I/O端口线有限的单片机系统中,如此浪费资源的现象是不能容忍的。
第九章 MCS-51单片机并行接口的扩展与应用

方式1输入控制/ 方式1输入控制/状态信号图
六、8255A的工作方式1 8255A的工作方式 的工作方式1
错误
方式1输出时控制/状态信号的功能: 方式1输出时控制/状态信号的功能: \OBF 输出缓冲器满信号 选通信号,低电平有效; 选通信号,低电平有效; \ACK外设响应信号,低电平有效; ACK外设响应信号 低电平有效; 外设响应信号, INTR 中断请求信号,8255A输出,向CPU申请中断; 中断请求信号,8255A输出 输出, CPU申请中断 申请中断; INTE 中断允许信号,高电平时允许中断; 中断允许信号,高电平时允许中断;
方式1输入时控制/状态信号的功能: 方式1输入时控制/状态信号的功能: \STB 选通信号,用来将外来数据输入锁存 选通信号, 器; IBF 输入缓冲器满信号,由8255A输出; 输入缓冲器满信号, 8255A输出 输出; INTR 中断请求信号,8255A输出,向CPU 中断请求信号,8255A输出 输出, 申请中断; 申请中断; INTE 中断允许信号,高电平时允许中断; 中断允许信号,高电平时允许中断; \STB有效使IBF置位,表示数据已经输入到 STB有效使 有效使IBF置位 置位, 输入锁存器。IBF、INTE为高电平时 为高电平时, 输入锁存器。IBF、INTE为高电平时, INTR置位 可申请中断。 RD的下降沿将 INTR置位,可申请中断。\RD的下降沿将 置位, INTR复位 上升沿将IBF复位 INTR复位,上升沿将IBF复位。 复位, 复位。
பைடு நூலகம்
§9-2 8255A并行接口的扩展 并行接口的扩展
一、可编程并行接口8255A 可编程并行接口8255A 可编程输入/输出接口芯片; 可编程输入/输出接口芯片; 3个8位I/O口:A、B、C,其中C口可位操作; I/O口 其中C口可位操作; 管脚: 管脚: 1. D0-D7三态双向数据线; 三态双向数据线; 2. PA0-PA7 A口输入/输出端; PA0 PA7 口输入/输出端; 3. PB0-PB7 B口输入/输出端; PB0 PB7 口输入/输出端; 4. PC0-PC7 C口输入/输出端; PC0 PC7 口输入/输出端; 5. \CS片选; CS片选 片选; 6. \RD 读信号; 读信号; 7. \WR写信号; WR写信号 写信号; 8. RESET 复位信号端,高电平有效; 复位信号端,高电平有效; 9. A0,A1地址线。 ,A1地址线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机IO口扩展技术
2010-05-09 18:13
0 引言
在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术、高可靠性和高性价比,占领了工业测控和自动化工程应用的主要市场,并成为国内单片机应用领域中的主流机型。
MCS-51单片机的并行口有P0、P1、P2和P3,由于P0口是地址/数据总线口,P2口是高8位地址线,P3口具有第二功能,这样,真正可以作为双向I/O口应用的就只有P1口了。
这在大多数应用中是不够的,因此,大部分MCS-51单片机应用系统设计都不可避免的需要对P0口进行扩展。
由于MCS-51单片机的外部RAM和I/O口是统一编址的,因此,可以把单片机外部64K字节RAM空间的一部分作为扩展外围I/O口的地址空间。
这样,单片机就可以像访问外部RAM存储器单元那样访问外部的P0口接口芯片,以对P0口进行读/写操作。
用于P0口扩展的专用芯片很多。
如8255可编程并行P0口扩展芯片、8155可编程并行P0口扩展芯片
等。
本文重点介绍采用具有三态缓冲的74HC244芯片和输出带锁存的74HC377芯片对P0口进行的并行扩展的具体方法。
1 输入接口的扩展
MCS-51单片机的数据总线是一种公用总线,不能被独占使用,这就要求接在上面的芯片必须具备“三态”功能,因此扩展输入接口实际上就是要找一个能够用于控制且具备三
态输出的芯片。
以便在输入设备被选通时,它能使输入设备的数据线和单片机的数据总线直接接通;而当输入设备没有被选通时,它又能隔离数据源和数据总线(即三态缓冲器为高阻抗状态)。
1.1 74HC2244芯片的功能
如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。
74HC244芯片的引脚排列如图1所示。
74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。
当1C和2G都为低电平时,输出端Y和输入端A状态相同;当1G和2G都为高电平时,输出呈高阻态。
1.2 应用74HC244芯片扩展输入接口
图2是采用74HC2244芯片进行输入接口扩展的原理电路,图3是读P0口的时序。
由图3可以看出,当P2.7和RD同为低电平时,74HC2244才能将输入端的数据送到单片机的
P0口。
其中,P2.7决定了74HC244的地址,0000H-7FFFH(共32K)地址都可以访问这个单元,这就是用线选法所带来的副作用。
通常可选择其中的最高地址作为这个芯片的地址来写程序,如这个芯片的地址是7FFFH。
但这仅仅是一种习惯,并不是规定,当然也完全可以用0000H作为这个芯片的地址。
当确定了地址之后,其接口的输入操作程序如下:
MOV DPTR,#7FFFH
MOVX A,@DPTR
其中MOVX类指令是MCS-5l单片机专用于对外部RAM进行操作的指令。
由于外部I/O与外部RAM是同一接口,所以一般使用这条指令对外部I/O进行操作。
一旦执行到MOVX类指令,单片机就会在RD或WR(根据输入还是输出指令)引脚产生一个下降沿,这个下降沿的波形与P2.7相或,则会在或门的输出口也产生一个下降沿,这个下降沿将使74HC244的输出与输入接通,这样,输入设备的数据就可以被MCS-51单片机从总线上读取。
需要说明的是,74HC244是不带锁存的,因此,如果输人设备提供的数据时间比较短,那么就要用带锁存的芯片进行扩展,如74HC373,74HC573等。
2 输出接口的扩展
由于单片机的数据总线是为各个芯片服务的,一般不可能为一个输出而一直保持一种状态,因此,输出接口的主要功能是进行数据保持(即数据锁存),也就是说,输出接口的扩展实际上就是扩展锁存器。
2.1 74HC377芯片的功能
输出接口扩展通常用74HC377芯片来实现。
该芯片是一个带允许端的8D锁存器,其芯片的引脚如图4所示,各相关引脚的功能如下:
◇D0~D7为8位数据输入端;
◇Q0~Q7为8位数据输出端;
◇G为使能控制端;
◇CLK为时钟信号,上升沿锁存数据。
表1所列是该芯片的真值表。
2.2 应用74HC377芯片扩展输出接口
图5是利用74HC377进行输出接口扩展的电路连接图。
图中,74HC377的G端与P2.6口相连,其地址是x0xxxxxxB,如果把“x”全置为1,则为1011 1111 1111 1111B,这样,0BFFFH 就是该芯片的地址了。
由于MCS-51的WR是与74HC377的CLK端相连的,当WR信号由低变高时,数据总线上的数据为输出数据,而此时P2.6输出低电平,G有效,因此,数据就被锁存。
其相关程序如下:
MOV DPTR,#0BFFFH
MOV A,#DATA
MOVX @DPTR,A
此外,利用74HC373芯片、74HC573芯片也可以进行P0口的扩展。
3 接口扩展实例
在实际的应用系统中,可能需要同时扩展多个I/O口,以满足应用系统的需要。
而各个输入、输出扩展I/O芯片应通过74LS138进行“全地址”译码选通,从而分时复用数据总线DB (DataBus)。
为了防止过渡干扰对译码选通逻辑造成的影响,单片机系统所用的外围芯片一般均设为双步选通方式,即除了配置译码选通端外,还应配置使能选通端。
而74HC244芯片本身没有明显的片选和读/写控制端,设计时通常采用译码和读控制信号来同时控制74HC244的CS,从而有效地抑制输入/输出数据信息的过渡干扰。
此电路输入口扩展采用2个74HC244。
其输入端接键盘或其它数字信号;而输出口扩展则选用2个74HC377,以用于控制数码管、发光二极管、继电器等。
其详细电路原理图如图6所示。
其部分代码如下:
51单片机的数据/地址/控制总线端口都有一定的负载能力,P0口可驱动8个TTL门电路,P1口、P2口和P3口可驱动4个TTL门电路。
负载超过上述规定一般应加驱动器。
总线驱动器可以使用TTL型三态缓冲门电路74HC244、74HC245。
另外,在扩展口线的同时,还应兼顾配置总线驱动器,注意总线负载平衡的配置。
在总线上适当安装上拉电阻可以提高总线信号传输的可靠性。
此外,一个系统可能由于存在各种干扰及不稳定因素而出现故障,为解决这一问题,设计时也可以从软件设计方面采取一些措施。
4 结束语
与其它51单片机P0口扩展相比,本文介绍的输入/输出口的P0并行扩展方法,可以很方便的实现P0口的并行扩展。
所设计的接口扩展电路已成功用于实际系统中。
实际运行表明,采用该方法扩展的P0口系统能够可靠、稳定的运行。