设计与开发

增强型51单片机 缺芯时代,如何看待快被遗忘的51单片机

小编 2024-11-24 设计与开发 23 0

缺芯时代,如何看待快被遗忘的51单片机

辩证地看待51内核单片机

要回答这个问题,首先需要来看一下传统的51单片机。在有些文章或者书本中,对于51单片机的态度是全面否定的,一旦听到某人要学习或者使用51单片机,则有种“群起而笑之”之势,觉得其主频低,外设少,技术老,然后以这些理由劝退要去学习51单片机的同学。其实,这个态度是非常武断的,必须被批判,虽然现在32位的单片机遍地都是,但是对于一些成本为首位的产品,8位机无疑还是有很大的价格优势的。而市面上最多的8位单片机产品,内核架构最普遍的还是51。批判51单片机不行的人,出发点无疑就是外设少,外部晶振12分频的硬伤这两点,然而这两点只不过是它们印象中的十几年前的51单片机产品。时代在发展,51单片机也在发展,为了区别那些全盘否定51单片机的人口中的“51单片机”,不断发展的51单片机一般被称为“增强型51单片机”。

接下来,我们用辩证的眼光,再来审视一下现在的“增强型51单片机”。

“增强型51单片机”保留了51单片机开发简单,内部结构简单,价格低廉等优点,弥补了传统51单片机的一些不足,增加了主流的外设资源。介于此,“增强型51单片机”的性价比到目前为止还是非常突出,新手上手程度也很简单,有点51单片机基础的,稍微看一下数据手册就可以直接使用。

但是,无论利用何种形式去增强51单片机,51单片机结构的一些致命硬伤是永远存在的,比如用于操作特殊功能寄存器的寻址,在C语言开发中只能利用C51独有的“sfr”关键词去定义特殊功能寄存器,而“sfr”又不是标准C中的关键词,因此51单片机的程序有一部分是无法直接移植到其他平台上去的。中断关键词“interrupt”也是一样。

辩证地看待其优缺点,“增强型51单片机”非常值得花时间学一学。

发展的眼光看51单片机

我们所说的51单片机,用现在比较潮流的说法应该是“MCS51内核”的单片机。如果这么分类的话,51单片机最早的型号其实是8031单片机,这个单片机的内核和现在的“51内核”基本一致,不过它是一个内部没有存储器(ROM)的芯片,在使用的时候,需要外部扩展存储器,非常麻烦。如图1所示。

图1 51单片机外部存储器扩展示意

等到后来的8051单片机,就开始在内部继承ROM,这样可以减少由于外扩存储器带来的烦恼,从而简化了电路结构,降低了元器件成本。

最早的51单片机存储器是EPROM,因此它是需要通过特殊的编程器来烧写程序,而程序擦除时,也需要将单片机曝光在光线下半小时以上才能擦除,而这种EPROM存储程序不稳定,擦写次数也有限,其外形如图2所示。

图2 EPROM的51单片机

为了解决这个问题,FLASH等先进的存储器技术被用到了51单片机上,因此实现了可重复多次擦写,甚至后面多种在应用编程(IAP),在系统编程(ISP)方式也被用到了51单片机上,现在的51单片机,利用一根串口线就可以实现程序的烧写,非常方便。

51单片机的程序烧写问题被flash解决了,后面随着应用程序的需求,51单片机的程序开发难度越来越大,因此一些厂商推出了一些可以在线调试的芯片,在程序开发的时候,利用带调试功能的51单片机进行程序开发,做产品时,将调试好的程序烧录到51单片机即可。后来的一些增强型51单片机,可以直接支持程序调试,如我们使用的STC8A,可以直接使用一根串口线和Keil软件进行程序调试。如图3所示。

图3 程序在线调试界面

传统的51单片机,内存只有几百个字节,程序存储器也小得可怜,而且其外设支持非常有限,只支持2个外部中断,2个定时计数器,1个串口,这样的芯片,放到现在来看,根本满足不了任何应用。尽管如IIC,SPI的外设我们都可以使用IO去模拟,但是模拟外设的程序会占据大量的代码空间,同时,为了满足时序需求所增加的延迟,也浪费了宝贵的CPU资源。为了解决这个问题,目前的增强型51单片机外设变得琳琅满目,如STC8A的内存最大可达到8K byte,程序存储器最大可达到64K byte,而其外设资源有5个外部中断,5个定时计数器,4个高速串口,4组16位的PCA模块,8组15位增强型带死区控制PWM,SPI,IIC,12位精度15通道的ADC(采样率800K),GPIO支持准双向,强推挽,开漏,高阻等模式。并且内置最高24MHz的高精度RC振荡器。这个配置放在目前的8位机市场,甚至是低端32位机市场,也拿得出手。具体如图1-1-4所示。

图4 STC8A的配置

除此之外,51单片机特有的12分频瓶颈也早已被弥补,现在的51单片机更多的是1T的单片机。

用发展的眼光来看,增强型51单片机经过国内外四十几年的发展早就与时俱进,满足了市场需求,经住了产品考验。在过去16位单片机,如今32位单片机轮番挤压下,还能保留自己的市场地位。

详解51系列单片机引脚及功能

51系列单片机有各种封装形式,这里以40引脚双列直插DIP形式的封装来进行介绍,如图1.1所示。其中正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

图1.1 8051双列直插式的引脚配置

有些新型的单片机在引脚数量以及功能上都略有区别,但都是基于51系列单片机内核。这里介绍的内容同样适用于新型的单片机。下面介绍51系列单片机的引脚功能,这些是学习单片机程序设计必须要了解和掌握的基础知识。

❑电源引脚:主要负责单片机的供电,有两根引脚。VCC(Pin40)为正电源端,接5.0V电压;GND(Pin20)为接地端。

❑外接晶振或外部振荡器引脚:主要负责为单片机的运行提供时钟振荡器,主要有两根引脚。其中,XTAL1(Pin19)为时钟XTAL1脚,片内振荡电路的输入端;XTAL2(Pin18)为时钟XTAL2脚,片内振荡电路的输出端。

8051单片机的时钟振荡器有两种工作方式。一种是片内时钟振荡方式,在18和19脚外接石英晶体和振荡电容,振荡电容的值一般取10~30pF。另外一种是外部时钟方式,由外部直接提供时钟源。

❑P0口:即P0.0~P0.7(Pin39~Pin32),输入输出脚,可用于8位并行I/O口或分时复用为地址和数据总线。

P0定义为I/O口时,为准双向I/O口,需外接上拉电阻,在程序中向该端口写入1后,成为高阻抗输入口。P0口作为输出口时,每个引脚可以负载8个TTL。在外扩存储器时,可定义为低8位地址/数据线。

❑P1口:即P1.0~P1.7(Pin1~Pin8),输入输出脚,8位准双向并行I/O口。P1口内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL;在Flash编程和校验时,定义为低8位地址线。

❑P2口:即P2.0~P2.7(Pin21~Pin28),输入输出脚,8位准双向并行I/O口。P2口内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL;当访问外部存储器时,定义为高8位地址线。

❑P3口:即P3.0~P3.7(Pin10~Pin17),输入输出脚,8位准双向并行I/O口。P3口内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL。

P3口每个引脚都具有第二功能。引脚P3.0(RXD)和引脚P3.1(TXD)分别为串行数据的接收和发送端口,用于串行数据传输;引脚P3.2和引脚P3.3为外部中断请求,分别用于

的中断输入;引脚P3.4(T0)和引脚P3.5(T1),分别为定时器/计数器T0和T1的外部计数输入端;引脚P3.6(

)和引脚P3.7(

)用于读写单片机片外RAM存储器,分别是外部数据写选通信号和读选通信号。

❑RST(Pin9):单片机内部CPU的复位信号输入端。在单片机的振荡器启动后,该引脚置两个机器周期以上高电平,便可以实现复位。

(Pin30):地址锁存使能端和编程脉冲输入端。

当访问外部程序存储器时,ALE引脚的负跳变将低8位地址打入锁存;而非访问内部程序存储器时,ALE引脚将有一个1/6振荡频率的正脉冲信号,该信号可以用于外部计数或时钟信号。当访问外部数据存储器(执行MOVX类指令)时,ALE引脚会跳过一个脉冲。另外,对8EH单元的特殊功能寄存器的D0位置1,可禁止ALE输出,只有在执行MOVX或MOVC类指令时,ALE才被激活,仍输出锁存有效。在执行片外程序代码时,该设定禁止ALE位无效。

(Pin29):访问外部程序存储器的读选通信号。

当单片机访问外部程序存储器,读取指令码时,每个机器周期产生2次有效信号,即此脚输出2个负脉冲选通信号;在执行片内程序存储器以及读写外部数据时,不产生

脉冲信号。

(Pin31):

为访问内部或外部程序存储器选择信号。

当8051 CPU访问外部程序存储器时,则

必须保持低电平;当

保持高电平时,则8051 CPU先从片内0000H单元开始,执行内部程序存储器程序;如果外部还有扩展程序存储器,则8051 CPU在执行完内部程序存储器程序后,自动转向执行外部程序存储器中的程序。

相关问答

51单片机 电机调速的方法?

单片机电机调速可以通过PWM(脉宽调制)实现,通过控制PWM的占空比可以调节电机的转速。具体实现方法是先采集电机转速,然后根据设定的目标转速计算对应的占空比...

什么叫 51单片机 啊?

是型号MCS-51系列.所谓单片机,就是把中央处理器CPU(CentralProcessingUnit)、存储器(Memory)、定时器、I/0(Input/Output)接口电路等一些计算机的主...

8051单片机最高频率?

工作频率即机器频率即机器周期倒数,传统51单片机的工作频率为时钟频率(晶振频率)的1/12,但增强型单片机的工作频率可达时钟频率的1倍,51单片机晶振频率为11...

51单片机 P2口输出高电平,外接一个负载,负载两侧电压是5v?-ZO...

传统51单片机,如果接一个10k的电阻,输出电压应该接近5v,对于1k负载电阻,输出电压很低,估计就1伏多但是现在的增强型51单片机,lO口可以配置为推挽输出,此时高电...

STM32比 51 强在哪?

*ATMEL(艾德梅尔)的:89C51、89C52、89C2051,89S51(RC),89S52(RC)等;*Philips(飞利浦)、华邦、Dallas(达拉斯)、Siemens(西门子)等公司...

stc8h1k08是 51单片机 吗?

是。因为stc8h1k08是STC公司生产的51单片机系列产品,具有51单片机的基本架构,也支持大量的51单片机指令集和工具链等。除了stc8h1k08,市面上还有许多其它厂商...

51单片机 r4是什么?

151单片机r4是一种型号的单片机。251单片机r4是一种常用的单片机型号,它具有较高的性能和稳定性,适用于各种嵌入式系统和电子设备的开发和控制。351单片机r...

51 开发板特点?

51开发板能干什么51开发板也称51单片机实验板、51单片机学习板。是用于学习51型号的单片机的实验及学习器件,他是将51单片机常用的外围。比如流水灯,数码...

at89s 51单片机 内部包含哪些主要逻辑功能部件,各部分的功能作用?

5,UART串口通信功能模块;6,时钟脉冲振荡器;7,中断逻辑单元;8,I/O控制单元;9,特殊功能寄存器;10,电源管理和复位单元增强型51单片机还增加了AD转...6,时...

51单片机 开发板有什么好的推荐?

51单片机是单片机学习入门的首选,经过三十年多的发展51单片机已经做得很成熟,成本低,操作方便,资料丰富。虽然多数公司都用32位或者更高级的芯片去做产品,但...5...

猜你喜欢