×
单片机 > 单片机程序设计 > 详情

89C51与STM8简要对比

发布时间:2020-05-28 发布时间:
|

立题简介:


内容:对比“89C51”与“STM8”;


来源:实际使用得出;


作用:以对比为支撑,为后续开发做参考;


PCB环境:Altium Designer;


日期:2018-03-06;


=====================分割线========================


立题详解:


在之前介绍过“STM32”和“STM8”单片机,均为“8bit-MCU”,对单片机入门而言,多是从“89C51”开始;“89C51”无愧是“经典级单片机”,在数十年前,微控制器技术并不发达,8bit单片机普及率很低,而“89C51”凭借价格、性能逐步占领市场,即使到了今天,“89C51”仍应用于很多场合;譬如现在“校园外”所设计的“自动门”,其“控制芯片”即为“89C51”或“89C52”;


虽然“89C51”应用广泛,但由于“外设”、“频率”等参数的限制,现今其主要服务于“低端市场”;“STM8”而言,其也是面向“低端市场”的“8bit-MCU”,但其外设、频率等性能均比“89C51”更大优势;


两者作为“微控制器”而言,其“基本电路”亦由4部分构成:“电源电路”、“晶振电路”、“复位电路”、“下载电路”;


1、对“89C51”而言:


对“89C51”而言,其能满足大部分需求,但最初代的“89C51”不具有“ADC”、“PWM”等外设功能;而且单就“ADC芯片”而言,列举一下4点:


i)、“价格方面”:以“STC89C52”(DIP-40)为例,工作电压为“+5.0V”,其“某宝”价格多在“4.5RMB/PCS”以上;以“ADC0804”(8bit-ADC)为例,其“某宝”价格多在“5.5RMB/PCS”以上,过于便宜的芯片,无法保证;


ii)、“应用方面”:以“ADC0804”(8bit-ADC)为例,即便是单片“贴片-SOP20封装”,其芯片在PCB板上所占面积亦不可忽略,由此带来的“电源”、“GND”、“通信线路布线难度”等问题,在后续开发中,会随着“开发规模增加”而越发困难;


iii)、“开发方面”:最新的“stc系列单片机”也引入了“ADC”、“PWM”等功能,“指令集”采用“CISC”,开发级别为“寄存器”;


iv)、“基本电路”:在“基本电路”的4部分中,其“晶振电路”不能省略,“外部晶振”多采用“11.0592MHz”;其“下载方式”多采用“串口下载”,因此其“下载电路”与“串口电路”共用同一线路;“代码下载完成”后,需“热重启”方可运行代码;


2、对“STM8”而言:


对“STM8”而言,其具有“ADC”、“PWM”等外设功能;而且单就“STM8芯片”而言,列举一下4点:


i)、“价格方面”:以“STM8s003f3p6”(集成:10bit-ADC)为例,工作电压为“+5.0V”/“+3.3V”(推荐),其“某宝”价格多在“1.35RMB/PCS”以上,过于便宜的芯片,无法保证;


ii)、“应用方面”:以“STM8s003f3p6”,对“贴片-TSSOP20封装”,其芯片在PCB板上可省略“ADC芯片”所占面积,由此带来的“电源”、“GND”、“通信线路布线难度”等问题也将迎刃而解;


iii)、“开发方面”:以“STM8s003f3p6”,现已有“专用Lib库”,开发级别可为“寄存器”或“库开发”,可有效提高“开发效率”;


iv)、“基本电路”:在“基本电路”的4部分中,其“晶振电路”而言,“STM8”默认使用“芯片内部”自带的“16MHz频率”,因此,若无特殊要求,“外部晶振”可省略,可进一步减小“PCB板面积”、“简化PCB布线”;其“下载方式”多采用“SWD下载”,因此其“下载电路”与“串口电路”不为同一线路,且“代码下载完成”后,无需“热重启”即可运行代码;


3、“89C51”与“STM8”使用问题


综合以上所述,“89C51”与“STM8”对比而言,“STM8”具有较大优势,但在实际应用方面,经过实测,得出以下3点:


i)、“GPIO电平方面”:“89C51”仅支持“+5.0V电平”,“STM8”可兼容“+5.0V”/“+3.3V”电平;


ii)、“功耗方面”:在“89C51”使用“+5.0V”电源消耗;“STM8”可使用“+3.3V”或“+5.0V”电源消耗,同等条件下功耗更低,可用于“低功耗场景”;


iii)、“应用开发方面”:“89C51”若需使用“ADC”,需外接合适的“ADC芯片”;“STM8”可直接使用“内部ADC”对“外部模拟量”进行“ADC采集”;“89C51”开发级别较低,“STM8”可支持“寄存器开发”和“库开发”2种;


4、特殊应用场景


在笔者实际应用中,由于意外,同时使用“89C51”与“STM8”在同一个“无线供电环境”中,在此环境下,“无线干扰”较为严重,“STM32芯片”在此环境下,容易出现“程序宕机现象”;“控制电路”功能均为“采集GPIO信号”并改变“对应GPIO电平”;此时“89C51”使用为“+5.0V电源”,“STM8”使用为“+3.3V电源”;现象有以下2点:


i)、情况一,初始时,考虑应用方便,使用“STM8”作为“核心”进行控制,“控制电路”在运行“不到2min”,“控制电路”会“自动复位”进而导致“电路异常”,多次测试,结果均一致;


ii)、情况二,使用“89C52”作为“核心”进行控制,“控制电路”在长时间运行后,“控制电路”亦不会出现“自动复位”现象,多次测试,结果均一致;


以上使用结果,初步总结一下4点:


i)、在常规条件下,“STM8”比“89C51”更具优势;


ii)、“89C51”对外部干扰的“抗干扰能力”强于“STM8”;


iii)、在较为恶劣的“电磁环境”下,使用“89C51”比使用“STM8”更为可靠;


iv)、猜想:除恶劣的“电磁环境”外,在恶劣的“温度环境”、“湿度环境”、“防尘环境”等下,“89C51”比“STM8”更加可靠;注意:此“猜想”由于“条件限制”并未实测,仅供参考;



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会