单片机系统扩展:通过外围接口技术拓展应用领域

当单片机内部功能不能满足应用系统的要求,经需要在片外连接相应的外围芯片以满足应用系统的要求的过程,叫做系统扩展。51单片机有很强外部拓展能力,大部分常规芯片都可作为单片机的外围扩展电路,可进行的拓展有存储器扩展、I/O口扩展、串行总线接口存储器扩展等。

通过外围接口技术,单片机可以控制LED数码管、键盘、LCD显示器等外部设备,以及进行A/D、D/A转换,让单片机的应用领域更加广泛。

系统扩展

51单片机内部集成了计算机的基本部件,如CPU、I/O口、定时器、中断系统、存储器等,再加上电源、复位电路、时钟单通道等简单的辅助电路,构成了一个能正常工作的最小系统。其电路如下图所示:

51单片机具有很强的外部扩展能力,大多数常规芯片都可以作为单片机的外围扩展电路,可能的扩展有:存储器扩展、I/O口扩展、串行总线接口存储器扩展等。

总线是计算机中CPU、内存、输入、输出等设备传递信息的公共通道,是由导线组成的传输线束,主机的各个部件通过它连接起来,外部设备通过相应的接口电路连接到总线上,从而组成计算机硬件系统。根据计算机传输信息的类型,计算机总线可分为地址总线、数据总线和控制总线,分别用于传输数据、数据地址和控制信号。

扩展单片机系统的方法有两种:并行扩展和串行扩展。并行扩展方式利用单片机的地址总线、数据总线和控制总线来扩展系统,串行扩展方式利用SPI(串行外设接口)总线或I2C(集成电路间)总线来扩展系统。

系统总线 扩展总线信号 对应针脚 扩展总线信号名称 信号含义

P0口锁存输出

A0~A7

地址总线低8位

P2 端口

A8~A15

地址总线高8位

P0端口

D0~D7

8位数据总线

啤酒

啤酒

控制信号,地址锁存使能

前列腺特发性

前列腺特发性

控制信号,程序存储器ROM使能,低电平有效

EA

EA/VPP

控制信号,外部访问使能,低电平有效

研发

读出(P3.7)

控制信号,读信号,低电平有效

西弗

外接手(P3.8)

控制信号,写信号,低电平有效

51单片机包含的系统总线信号如上表所示,为了减少引脚数,51系列单片机的扩展总线中的数据线和地址线采用分时复用技术。

P0口除了作为通用I/O口外,还可以分时复用地传输地址总线信号的低8位(A0~A7)和数据总线信号(D0~D7)。某一时刻是传输低8位地址信号还是传输数据信号,由ALE引脚的电平状态表示。P2口除了作为通用I/O口外,还可以传输地址总线信号的高8位(A8~A15)。其他系统总线信号都是控制信号,由硬件在执行不同的指令时产生。

实际使用时,可以采用外部8位锁存器来分离地址信号和数据信号,下图是采用74LS373实现信号分离电路原理图:

当进行总线扩展时,由于地址总线的宽度为16位,因此外部ROM或RAM的最大直接寻址范围为64KB,并且它们的地址可以重叠使用。

地址译码方法

在进行总线扩展时,首先要做的是分配地址空间,即通过地址译码将64KB寻址空间分成若干个大小相同的页面。低位地址线用于选择页内的单元,高位地址线用于选择页面。不同的外部设备占用不同的页面。分配完成后,还想办法进行地址译码,以方便单片机寻址。常用的地址译码方式有全地址译码和“部分地址译码”。

全地址译码即所有地址线都参与译码,得到的地址空间是连续的。每个数据单元与地址一一对应,电路结构一般比较复杂。例如一个存储页大小为8KB,而64KB存储空间要分成8个页,那么高位地址A13~A15都要参与译码,产生8个独立的页选信号,形成连续的地址段,一般采用3-8译码器实现,如下图所示:

部分解码是指只参与解码一部分地址,得到的地址空间是一个不连续的地址段,不覆盖整个可寻址空间。一个数据单元可能对应多个地址。见下图:

还有一种线选法是部分译码法的一种特殊形式,即不对地址线进行译码,直接用地址线来选择数据单元,得到的地址空间也是不连续的。例如不加外部译码电路,只用高位地址线将64KB寻址空间划分成几个区域,如下图所示:

内存扩展 ROM扩展

51单片机访问外部ROM时,其控制总线仅由ALE、PSEN、EA组成。当EA=1时,单片机要访问的地址超出了片内ROM的范围,就会自动切换到片外ROM寻址。通过指令“MOVC A,@A+DPTR”即可访问外部ROM。指令执行过程中控制信号的逻辑关系及时序如下图所示:

使用2764扩展32KB ROM时,接线图如下:

RAM 扩展

51单片机访问外部RAM时,控制总线由ALE、PSEN、RD、WR组成。在执行“MOVX A,@DRTP”、“MOVX @DPTR,A”指令时,对外部RAM进行读写。指令执行过程中控制信号的逻辑关系及时序如下图所示:

使用SRAM芯片61128扩展32KB RAM时,接线图如下:

并行扩展I/O端口的方法与扩展RAM的方法基本相同。

外围接口技术 LED显示屏

LED(Light Emitting Diode)显示屏是由多颗发光二极管组成的显示设备,常用的LED显示屏有七段数码管显示屏等。

七段LED数码管是由8个发光二极管组成,根据内部LED连接形式的不同,又可分为共阴极和共阳极两种,共阴极发光二极管的阴极连接在一起,共阳极的阳极连接在一起。其电路连接如下图所示:

使用共阴极数码管时,所有LED的阴极都连接在一起并接地。当某一LED的阳极接高电平时,对应的LED就会亮。共阳极数码管则相反,当某一LED的阴极接低电平时,对应的LED就会亮。每次点亮某些特定的LED,就可用数码管来显示一些数字或符号。LED数码管一共有8位,正好是一个字节。习惯上把段码字节对应的“a”位作为最低位。这样,只需要输入不同的段码,就可以得到不同的显示。

LED数码管一般采用动态显示,这样节省了I/O口,但这种方式任何时候都只能点亮一个显示位数,当显示位数较多时,就需要采用动态扫描。动态扫描的频率有一定的要求,必须人眼察觉不到,频率太低,LED就会闪烁,频率太高,每个LED的点亮时间太短,LED的亮度太低,肉眼根本看不出来。程序中常用的方法是调用延时子程序,选择某一个LED点亮并保持几ms。

键盘

在单片机应用系统中,经常需要向单片机输入一些指令或参数,有时还需要将单片机的运行结果通过外接的显示器或打印机输出,以便操作人员及时了解和掌握单片机的运行状态。这就构成了人机交互界面。由于单片机本身的特性,不可能具有键盘、显示器、打印机等人机交互部件,因此只能通过其I/O口来扩展这些功能。

键盘分为编码键盘和非编码键盘,编码键盘的闭键识别由专门的硬件实现,非编码键盘的闭键识别由软件实现,单片机一般采用非编码键盘。

单片机系统所采用的键盘均为机械弹性按键,由于机械触点的弹性作用,在按键闭合和弹起的瞬间会产生抖动,按键抖动一般持续时间为5~10ms,为了使一个按键只处理一次,必须消除按键抖动,消除按键抖动可采用软件或硬件去抖动的方法。

硬件去抖通常采用RS触发器实现,需要改进电路,且相对复杂;软件去抖更简单,当检测到按键闭合时,经过短暂延时后再次检测,如果仍然检测到按键闭合,则认为按键真正闭合。

键盘与单片机接口连接方式有两种:独立式和矩阵式。独立式键盘每个按键单独连接一个I/O口,各个按键的输入状态互不影响。单片机通过检测相应I/O口的电平即可判断是哪个按键按下。但当按键数量较多时,占用的I/O口较多。

当需要大量按键时,通常采用矩阵连接。矩阵键盘由行线和列线组成,所以有时也被称为行列键盘。按键位于行线和列线的交叉点处,行线和列线分别连接到 I/O 端口。连接方法如下图所示:

矩阵键盘的识别方法通常采用扫描法。首先设置某一列线,如第0列线输出“0”,其余三条列线输出“1”。然后依次扫描行线的状态。若某一行线为“0”,则表示该行线与第0列线交叉处的键被按下,若行线全为“1”,则表示没有键被按下。同理,可以依次将下一条列线设置为“0”,其余列线设置为“1”,然后扫描行线,这样就可以确定按下的键的位置。

更新历史:

* 2017.11.28 完成初稿

原文链接

单片机

学习单片机基础知识,掌握电子产品的控制核心

2024-6-9 1:12:10

单片机

哈佛结构的本质及 51 单片机是否满足的探讨

2024-6-9 2:07:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索