51单片机的外部接口扩展
我接触单片机有些年头了,对CPLD有些了解,但说来惭愧,从未在设计中使用过。
曾经有一次面试,有位老工程师,就问我一些问题,其中就有CPLD,我实话实说没有用过,他就问我为什么不用;我答复他说,可能是设计的东西比较简单,在设计时用不着;他说你端口不够怎么办,我回答说可以扩展。
下面我就以51为例,介绍他的几个常用的外部芯片。
用单片机设计电路,无非就是输入,输出和界面显示。本文以按键式和光耦隔离输入.继电器和LED为输出,显示界面为数码管,外部为ADC0809,一一进行介绍。
设计指标:
按键输入8只七段数码管5只
光耦隔离输入8只继电器输出8只
LED灯指示16只
按键和光耦隔离输入.数码管显示和ADC0809共用P0端口,继电器和LED显示灯控制采用P1端口,P2端口作为其他一些外设的控制输出和扩展芯片的选通,P3作为复用和选通端口。这样便可以满足设计的需要。
外围芯片统计及分配:
按键输入74HC2441只光耦隔离输入74HC2441只
数码管CD45114只74HC2731只
继电器输出74HC2731只LED指示74HC2732只
ADC08091只 74HC3731只74HC021只
74HC141只
74HC244为八同相三态缓冲器/线驱动器,内部框图和真值表如下:
典型运用原理图如下:
由真值表,看出当使能端1,19脚为低电平时,输出与输入同相,当使能端为高电平时,输出呈高阻状态。
74HC273为8D触发器,内部框图和真值表如下:
典型运用原理图如下:
有真值表看出,273在1脚为低时,输出全部为0.图中R3.C5就是为了利用这个功能实现上电后清零,避免误操作;当1脚(CLR)为高时,11脚(CLK)为上升沿时,输出与输入相同。
CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器,特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED。
内部框图和真值表:
典型运用原理图如下:
CD4511显示方式为静态显示,与动态显示相比,静态显示要亮很多,但使用的资源也较多些;动态显示是利用人眼的余辉效应,通过循环扫描数码管来实现。也就是说在同一时刻只有一个数码管点亮,由于扫描速度很快,所以人眼是分辨不出的,这种方法在LED显示屏上运用很多的。
其他的芯片基本同理,由于篇幅有限,不一一介绍
整机电路图大致如下:
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)