要回答这个问题,我们首先需要了解一下传统的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单片机程序不能直接移植到其他平台。对于中断也是如此关键字“中断”。
辩证地看待它的优缺点,“增强型51单片机”非常值得花时间去学习。
从发展的角度看51单片机
我们所说的51单片机应该是当今比较流行的术语中的“MCS51内核”单片机。 如果这样分类的话,51单片机最早的型号其实就是8031单片机。 这种微控制器的核心与现在的“51核心”基本相同,但它是一个没有内部存储器(ROM)的芯片。 使用时需要外部扩展。 内存很麻烦。 如图1所示。
图1 51单片机外部存储器扩展示意图
后来8051单片机开始内部继承ROM,这样可以减少外部存储器扩展带来的麻烦,从而简化电路结构,降低元件成本。
最早的51单片机存储器是EPROM,因此需要专门的编程器来编写程序。 擦除程序时,单片机也需要暴露在光线下半个小时以上才可以擦除。 这种EPROM不存储程序。 它很稳定,并且擦除和写入次数有限。 其外观如图2所示。
图2 EPROM 51微控制器
为了解决这个问题,51单片机上采用了FLASH等先进的存储技术,从而实现了多次重复擦写。 甚至还使用了各种在应用编程(IAP)和在系统编程(ISP)方法。 在51单片机上,目前的51单片机都可以使用串口线来编写程序,非常方便。
通过flash解决了51单片机的程序编程问题。 后来,随着应用程序的需求,51单片机的程序开发变得越来越困难。 因此,一些厂商推出了一些可以在线调试的芯片。 程序开发时,采用具有调试功能的51单片机进行程序开发。 制作产品时,可以将调试好的程序烧录到51单片机中。 后来的一些增强型51单片机可以直接支持程序调试。 比如我们使用的STC8A就可以直接使用串口线和Keil软件进行程序调试。 如图3所示。
图3 程序在线调试界面
传统的51单片机的内存只有几百字节,程序内存小得可怜,而且其外设支持非常有限。 它只支持2个外部中断、2个定时器计数器和1个串口。 这样的芯片不能放在计算机上。 现在来看,根本无法满足任何应用。 虽然我们可以使用IO来模拟IIC、SPI等外设,但是模拟外设的程序会占用大量的代码空间。 同时,为满足时序要求而增加的延迟也浪费了宝贵的CPU资源。 为了解决这个问题,目前的增强型51单片机外设已经变得琳琅满目。 例如STC8A的存储器最大可以达到8K字节,程序存储器最大可以达到64K字节。 其外设资源有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 MCU特有的12频瓶颈早已得到弥补,目前的51 MCU更多是1T MCU。
从发展来看,增强型51单片机经过国内外40多年的发展,已经与时俱进,满足了市场需求,经受住了产品考验。 过去16位单片机和现在的32位单片机互相挤压,仍然可以保住自己的市场地位。