0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度解读MCS51单片机时序分析及系统扩展

电子设计 来源:微型机与应用2013年第20期 作者:微型机与应用201 2021-02-20 14:32 次阅读

作者:周姝颖,林凡强,何凌霄,富 饶

AT89C51单片机ATMEL公司设计生产的与MCS51内核兼容的51系列单片机之一,该系列单片机以其优越的性能和成熟的威廉希尔官方网站 在控制和自动化应用领域占有着较大的市场;除此以外,51单片机有着计算机系统中经典的总线结构,即:数据总线、地址总线和控制总线。

在实际应用中,单片机的4个端口中,P0口通常是作为地址/数据总线复用;P2口作为高8位地址总线,高8位地址线在有多余I/O的情况下,配合外部的组合逻辑电路一起构成外部总线译码使用;P3口通常作为第二功能使用,则提供给用户使用的I/O仅仅是P1口。在多数应用场合下是不能满足要求的,因此51单片机系统就或多或少地需要进行系统扩展。另外,由于其内部的RAM只有128 B,在使用C语言进行程序设计时显得比较不足,必要时需进行外部RAM扩展,方法与扩展外部I/O相同。实际应用中,使用总线方法可以较容易地实现51单片机外部的I/O、RAM、LCD、ADCDAC等等外设的操作,以弥补51单片机片内外设的不足。

1 MCS51单片机系统的四要素

1.1 51单片机系统的启动

MCS51单片机上电正常工作,需具备以下四点:

(1)电源。AT89S51系列单片机的第40引脚为VCC,外加电压5 V工作电压,另外,单片机的第20引脚是GND,须连接到系统的地。

(2)复位电路。任何处理器都需要在上电时进行自身的复位,51单片机也不例外,上电复位电路是较为简单可靠的电路之一,不可缺少。复位电路如图1所示,该图为带上电复位及手动复位两种结合,二极管D1在系统瞬间掉电能帮助系统快速放电,使系统重新复位,以提高系统的可靠性。

o4YBAGAwq7qAfMtUAAAzHRRJTW4576.png

(3)振荡电路。如图2所示,51单片机的第18脚和第19脚为两个外接振荡的引脚,是内部振荡方式的典型电路, 外接的33 pF电容可以提高振荡的稳定性。

o4YBAGAwq9mAOUttAAAoqY9JoeE383.png

(4)EA。AT89S51单片机内部有4 KB的程序存储器,不需要外部的ROM空间,如果不够可以选择AT89S52或其他内部存储器更大的单片机,所以接高电平,即:不使用外部ROM,只使用内部的存储器。

1.2 MCS51单片机系统的存储器结构

MCS51单片机的存储器分为片内和片外两个部分,即:内部的ROM/RAM和外部的ROM/RAM,编写程序时必须清楚每一个存储单元的用途和功能,这样才能更好地进行系统存储器资源的分配。51单片机的另一个特点是外部的RAM空间和I/O空间共用外部的64 KB空间,因为外部总线的地址线为16 bit,所以能够访问的最大地址空间为64 KB。51单片机系统在进行外部扩展时,所有外设的地址都分布在这64 KB的地址范围内,对于RAM来说,地址是连续的;而对于LCD、ADC等等部件,地址是不连续的。

1.3 51单片机的中断系统

AT89S51单片机为用户提供了可屏蔽中断源有5个,分别是:外部中断0(入口地址为:0003H)、外部中断1(入口地址为:000BH)、定时器0(入口地址为:0013H)、定时器1(入口地址为:001BH)和串行中断(入口地址为:0023H);不可屏蔽中断为复位(入口地址为:0000H)。51系列单片机的其他型号所提供的中断个数不尽相同,所有的单片机都包括上述这6个最基本的中断源,不同公司生产的51内核单片机中断源上有略微的区别。

1.4 51单片机的总线结构

由于51单片机真正可以作为双向I/O口应用的只有P1口,假设系统需要扩展外部的键盘,I/O就所剩无几了。因此,MCS51单片机应用系统设计都不可避免地需要进行系统的扩展,而I/O的扩展则是与系统总线紧密结合的。由于MCS51单片机的外部RAM和I/O口是统一编址的,因此,可以把单片机外部64 KB RAM空间的一部分作为扩展外围I/O口的地址空间。这样,单片机系统就可以把额外的RAM空间用来进行I/O空间的扩展,使用总线方式对外设进行访问[1]。

本文重点之一是介绍采用具有三态缓冲的74HC244芯片和输出带锁存的74HC573芯片来扩展一个4×4的小键盘,缓冲器和锁存器分别占用外部I/O空间中的两个地址。而无论是访问外部的RAM空间还是I/O空间,在进行汇编语言编程时都是通过MOVX指令来实现读写的。在使用C语音进行单片机程序设计时,虽然语言改变了,但是C语言程序反汇编后,访问外部仍然使用的是MOVX指令。因此,分析过程及使用中,都是以汇编语言为例进行扩展设计的。

2 MOVX指令的执行过程

MOVX指令是51单片机访问片外外设的唯一指令,与外部RAM或I/O空间进行数据的读写或者ADC和DAC等都需要使用这条指令。MCS51单片机外部RAM的地址空间为64 KB,地址总线为16 bit,访问外设可执行4条汇编指令:(1)MOVX A,@DPTR;(2)MOVX @DPTR, A;(3)MOVX A, @RI; (4)MOVX @RI, A。其中DPTR为16 bit地址寄存器,地址高8 bit存于DPH,地址低8 bit存于DPL,Ri(i=0,1)是8 bit寄存器,作为地址指针时仅存低8 bit地址。

MCS51执行上述指令时分为两个阶段:首先,是从程序存储器中取出指令代码,并进行译码;然后,执行对外设数据的读写操作。在这两个阶段中,P0口在指令执行过程中是分时复用口,指令前半个周期,低8 bit地址由地址锁存允许信号ALE控制一个8 bit的锁存器输出,接着输出8 bit数据至外部数据总线,P2口在此过程中一直输出高8 bit地址。

由上所述,假设使用R0和R1对外设的进行间接寻址方式的访问,那么可看作是一种页面寻址,将外部的64 KB空间分成了256页,每一页有256 B地址。寄存器P2的当前值决定了当前的页地址。MCS51单片机在复位时,P2端口寄存器数值为FFH,若程序运行中没有改变P2中的值,则R0和R1只能对FF00H~FFFFH范围的外部的间接寻址,即对第255个页面进行访问。往外部空间写1 B时序图如图3所示。

pIYBAGAwq-6AcY9oAACxJHHk4Ok433.png

因此,使用DPTR作为数据指针或者是RI,都可以实现对外部64 KB空间的访问。而指令都是使用MOVX,可见MCS51单片机系统中,MOVX指令有着非常重要的作用。

3 时序分析及系统扩展

MCS51单片机的外部总线时序扩展主要包括外部的译码电路、锁存电路等组合逻辑电路,形成整个系统的外部总线,即:数据总线、地址总线、控制总线。

译码电路采用常用的74系列3/8线译码器74LS138,该芯片的A、B、C分别接地址的最高3位,即A13、A14、A15,译码电路如图4所示;138的使能端E3接高电平,E1和E2接的是EN_138,该信号是由单片机系统的读写信号经过组合得来的,当系统对外部的总线进行读写时,读/写信号其中一个为低电平,使得EN_138控制信号输出为一个低电平脉冲信号,此时,3/8线译码器的输出Y0~Y7其中一个也会输出一个低电平脉冲,用此脉冲就可以有效地对外部设备进行片选。逻辑电路如图5所示。

通过这样的组合后就可以在总线上数据有效的时间内,通过74LS138的Y0~Y7控制外设的片选,实现有效的数据读写。尤其是在扩展外部I/O口使用的74系列的逻辑电路芯片时,这个方法尤为重要,因为这类芯片没有外部的读/写信号,只能通过单片机外部的组合逻辑电路输出一个读/写信号宽度的脉冲用以控制此类I/O芯片。若外设信号控制信号为低电平脉冲,则刚好与3/8线译码器的输出匹配,此时直接相连即可;若外设控制信号需要的是高脉冲信号,则必须在3/8线译码器的输出外面再加一级反相器电路,常用的反相器为74LS04。

以写数据往外设为例,得到的时序流程如图6所示。读数据的时序与写数据一致,只是将写信号换成读信号。

o4YBAGAwrGmAB0M8AAAzmE-aN7M470.png

4 I/O扩展实例

4.1 行列键盘扩展

如前所述,51单片机供用户使用的I/O只有P1端口的8个引脚,远不能满足系统的需求,这样就必须通过总线的方法进行外部I/O扩展。在这里需要注意的是,51单片机系统外部I/O空间是和外部的RAM空间共用外部64 KB空间的。使用74LS573和74LS244分别进行行列的扩展,其中573锁存行信号,244读回数据,扩展了端口,实现了4×4的矩阵式行列扫描键盘,如图7所示。在此程序略,主要介绍扩展的方法。

pIYBAGAwrIiASGxeAADGBes2rys372.png

图8所示为4×4矩阵键盘连接图。

o4YBAGAwrKSABJRHAACeUiN_cfk331.png

4.2 大于64 KB空间的扩展

MCS51单片机是8位的微控制器,外部地址总线共16 bit地址,能访问的空间共为64 KB,但是如果系统中所有的外设加起来需要的地址空间超过64 KB时(如128 KB、256 KB的RAM或者需要更多的I/O空间等情况出现)就需要使用P1口或者是P3口不使用的I/O口进行线选法译码或者译码法进行额外的扩展来实现。

这种情况在单片机系统中经常会遇到,本文中介绍一种基于分页原理的扩展方法。51单片机系统虽然只有16条地址总线,在系统需要较大的RAM或I/O空间时,可以将系统中空余的I/O口作为额外的外部地址使用,例如:使用P1.0时进行线选法译码时,就可以扩展外部的128 KB空间。当P1.0为低电平时,选择第1个64 KB空间;当P1.0为高电平时, 选择第2个64 KB空间。

以此类推,假设有更多的空间需求时,还可使用专用译码器进行译码,来进行更多的选择
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6036

    文章

    44555

    浏览量

    634874
  • OPPO
    +关注

    关注

    20

    文章

    5234

    浏览量

    78940
  • MCS51单片机
    +关注

    关注

    0

    文章

    24

    浏览量

    14696
  • 5G
    5G
    +关注

    关注

    1354

    文章

    48441

    浏览量

    564073
收藏 人收藏

    评论

    相关推荐

    51单片机驱动

    电子发烧友网站提供《51单片机驱动.exe》资料免费下载
    发表于 09-20 11:46 5次下载

    国产单片机(MCU)崛起 —— 51系列

    一、51系列单片机的命名由来51系列单片机的命名由来与它的设计和开发历史相关。这个系列的单片机主要由Intel的8051微控制器发展而来,后
    的头像 发表于 08-14 08:39 2068次阅读
    国产<b class='flag-5'>单片机</b>(MCU)崛起 —— <b class='flag-5'>51</b>系列

    基于51单片机时钟温度显示设计

    本资源内容概要:       这是基于51单片机时钟温度显示设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、proteus仿真图。本资源适合人群
    发表于 06-25 10:17 0次下载

    基于51单片机时钟SHT10湿度采集显示定时报警设计

    本资源内容概要:       这是基于51单片机时钟SHT10湿度采集显示定时报警设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、proteus
    发表于 06-25 10:14 0次下载

    Aurix系列单片机时系统有哪些特点?

    Aurix系列单片机时系统有哪些特点
    发表于 02-04 06:48

    基于51单片机的比赛计分系统

    电子发烧友网站提供《基于51单片机的比赛计分系统.rar》资料免费下载
    发表于 01-12 10:26 6次下载

    基于51单片机的汽车倒车防撞报警系统设计

    电子发烧友网站提供《基于51单片机的汽车倒车防撞报警系统设计.rar》资料免费下载
    发表于 01-12 09:55 19次下载

    基于51单片机的温度报警系统设计

    电子发烧友网站提供《基于51单片机的温度报警系统设计.rar》资料免费下载
    发表于 01-12 09:50 30次下载

    基于51单片机的火灾报警系统设计

    电子发烧友网站提供《基于51单片机的火灾报警系统设计.rar》资料免费下载
    发表于 01-12 09:20 21次下载

    基于51单片机的火灾报警系统设计

    电子发烧友网站提供《基于51单片机的火灾报警系统设计.rar》资料免费下载
    发表于 01-03 11:26 2次下载

    基于51单片机的温度报警系统(仿真)设计

    电子发烧友网站提供《基于51单片机的温度报警系统(仿真)设计.rar》资料免费下载
    发表于 01-03 10:59 16次下载

    基于51单片机的汽车倒车防撞报警系统设计

    电子发烧友网站提供《基于51单片机的汽车倒车防撞报警系统设计.rar》资料免费下载
    发表于 01-03 10:13 7次下载

    stc51单片机怎么烧录

    步骤 常见问题与解决方法 STC51单片机是一种常见的8位单片机,广泛应用于各种嵌入式系统。它具有高性能、低成本、易于学习和使用等优点。STC51
    的头像 发表于 01-02 17:41 3396次阅读

    基于51单片机的电子闹钟设计

    基于51单片机的电子闹钟设计(实物)
    发表于 01-02 09:58 8次下载

    51单片机定时器定时1秒程序流水灯结果分析

    51单片机是一种广泛应用的嵌入式微控制器,具有高性能、低功耗、易扩展等优势。在实际应用中,定时器常用于定时操作,如控制程序运行时间、生成精确的时间延时等。本文将详细介绍51
    的头像 发表于 12-26 14:57 7202次阅读