摘要:本文针对MCS-51系列单片机输入输出口,提出并实现了一种简单可行的多I/O口扩展设计。在充分考虑了单片机的总线结构的前提下,使用一种带I2C总线、具有CMOS电路、可使大多数MCU实现远程I/O口扩展的PCF8574芯片,只用两根线就可扩展出8个I/O口线来。这种扩展设计有占用口线少,电路结构简单,易于实现系统的模块化,标准化特点,可广泛应用于多数据采集及多目标控制等场合。
毕业论文关键词:AT89C52,PCF8574,I2C总线,I/O口
Abstract: In this paper a simple and feasible multi-I/O port expansion design is proposed, which is in connection with the MCS-51 series microcontroller. In the design, a kind of the chip PCF8574, which possess the bus of I2C and CMOS circuits, is adopted and it can enable most MCUs to be expaned its remote I/O of ports of 8 port lines through the only two port lines. For this design, less port lines are needed and its circuit structure is simple. This expanning method can be standarded and modularized easily, and they can be widely used in multiple data acquisition and multi-objective control occasions.
Key words: AT89C52, PCF8574, bus of I2C, I/O port
目 录
1 前言 4
1.1 课题设计背景 4
1.2 设计功能说明 4
2 方案论证 4
2.1 设计总体方案论证 4
2.2 扩展方案 5
3 元件介绍与硬件电路设计 5
3.1 PCF8574简介 5
3.2 PCF8574引脚说明及内部结构 5
3.3 PCF8574的工作原理 7
3.4 AT89C52单片机介绍 8
3.5 PCF8574与单片机的连接 10
4 软件设计 12
设计总结 14
参考文献 15
致 谢 16
附录A:仿真原理图 17
附录B:程序 18
1 前言
1.1 课题设计背景
电子产品层出不穷的涌现,单片机的应用范围越来越广泛。一方面,希望单片机构成的嵌入式系统功能尽可能的强大,控制对象多,处理能力强;另一方面,又希望整个系统的性价比高。因此,实际应用中常常会遇到单片机I/O接口短缺的情况,在一些复杂的应用系统中,由于被控制的对象较多,此时,就会出现端口需求矛盾,传统的解决方案是采用8155、8255、8243、8279、74LS373、74LS377、74LS244、74LS273、74LS367等外扩I/O口,这样必然会使系统复杂化,成本增加,可靠性下降。为了提高系统的性能,因此选择I2C总线接口的芯片是节省I/O口的最好方法。本文主要讨论用不具有I2C总线单片机的普通I/O进行I2C总线操作,基于PCF8574来扩展多个并行I/O口的方法。
1.2 设计功能说明
基本功能说明:MCS-51系列单片机内部有4个双向并行的I/O口:P0~P3,在有片外扩展存储器的系统之中正真提供给用户的只有P1和部分的P2、P3口,因而需要进行对MCS-51单片机的I/O口进行扩展。本设计就是基于一种具有I2C两线串行接口的PCF8574芯片,只用两根线就可扩展出8个I/O口线来。
2 方案论证
2.1 设计总体方案论证
首先考虑MCS-51系列单片机对I/O口进行扩展的原因。MCS-51系列单片机内部有4个双向的并行I/O端口:P0~P3,共占了32根引脚。P0口的每一位可以驱动8个TTL负载,P1、P2、P3口的负载能力为3个TTL负载。在无片外存储器扩展的系统中,这4个端口都可作准双向通用I/O口使用。另一种在具有片外扩展存储器的系统中,P0口作为低8位数据线与地址线,P2口就不能再作为通用的I/O口。因此,就大部分应用系统而言,能够供给使用的只有P1和部分的P2、P3口。MCS-51系列单片机的I/O口常需进行扩充,以便和更多的外设(例如显示屏、键盘)进行连接。扩展I/O的方法有以下三种:简单的I/O口扩展、可编程I/O口芯片扩展以及利用串行口进行I/O口扩展。下面将对上述三种方法进行一个简析与比较。