我想各位朋友都应该知道学习的基本规律就是:从易到难。无论我们学习任何知识、经验和技能,都要遵循这个规律,否则,好高骛远的后果就是:要么面对重重困难,选择放弃,或者,从头再来。
STC单片机与STM32单片机相比,具备以下优点:
(1)STC单片机内部结构比STM32单片机简单,便于初学者理解单片机的经典结构。虽然STC单片机和STM32单片机都是哈弗计算机结构,但是,STC单片机的内部结构相对而言,更为简单。
(2)STC单片机寄存器数量比STM32单片机少了很多很多。STC单片机的寄存器只有几十个,可是STM32单片机的寄存器有几百个。两者完全不在一个数量级上。由于MCS-51、Cortex-M3、Cortex-M4、Cortex-A9、Cortex-A73或者MIPS等等单片机内核及片内外设,都是通过程序操作寄存器实现特定功能的,因此,寄存器数量只有几十个的STC单片机,相对而言,更容易让初学者入门学习。
文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
(3)STC单片机采用MCS-51指令集,其汇编指令一百多条,比STM32少了很多很多。相对少的汇编指令集,能够让初学者相对快速的了解运算处理器汇编指令的功能、结构与计算机体系结构之间的关系。
(4)最新版本的STC8系列单片机具备下载程序方便和自身就是仿真器的特点,节约初学电子产品设计技术的资金投入,学习开发技术方便快捷。STM32需要单独购买独立的Jlink仿真器才可以仿真。
(5)STC单片机具备相对简单的经典体系结构,使初学者不必花费太多精力在其硬件本身,可以集中精力掌握好后续任何类型单片机开发的基础语言:C语言。同时,也可以掌握电子产品基本的设计思想、经验和技能。
因此,综上所述,根据我们由浅入深和从易到难的学习规律可知:初学电子产品开发技术的工程师和大中专学生,应先学习和掌握采用STC单片机开发电子产品的技能。这是基础技能。
STC单片机
说到STC单片机有人会说到,STC也能算主流,估计要被喷了~~我们基于它是国内还算是比较不错的单片机来说。STC单片机是宏晶生产的单时钟/机器 周期的单片机,说白了STC单片机是51与AVR的结合体,有人说AVR是51的替代单片机,但是AVR单片机在位控制和C语言写法上存在很大的差异。
而 STC单片机洽洽结合了51和AVR的优点,虽然功能不及AVR那么强大,但是在AVR能找到的功能,在STC上基本都有,同时STC单片机是51内核, 这给以51单片机为基础的工程师们提供了极大的方便,省去了学习AVR的时间,同时也不失AVR的各种功能…
STC单片机是高速、低功 耗、超强抗干扰的新一代8051单片机51单片机,指令代码完全兼容传统8051,但速度快8~12倍,内部集成MAX810专用复位电路。4路PWM 8路高速10位A、D转换,针对电机电机 的供应商控制,强干扰场合,成为继51单片机后一个全新系列单片机…
特性:
1. 下载烧录程序用串口方便好用,容易上手,拥有大量的学习资料及视频,最著名的
要属于杜老师的那个视频了,好多对单片机有兴趣的朋友都是通过这个视频入门的,同时具有宽电压:5.5~3.8V,2.4~3.8V, 低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)
2. STC单片机具有在应用编程,调试起来比较方便;带有10位AD、内部EEPROM、
可在1T/机器周期下工作,速度是传统51单片机的8~12倍,价格也较便宜
3. 4 通道捕获/比较单元,STC12C2052AD系列为2通道,也可用来再实现4个定时器或4个外部中断,2个硬件16位定时器,兼容普通8051的定时 器。4路PCA还可再实现4个定时器,具有硬件看门狗、高速SPI通信端口、全双工异步串行口,兼容普通8051的串口,同时还具有先进的指令集结构,兼 容普通8051指令集
PS:
STC单片机功能虽不及AVR、STM32强大,价格也不及51和ST32便宜,但是这些并并不重要,重要的是这属于国产单片机比较出色的单片机,但愿国产单片机能一路长虹…
使用最多的器件:STC12C2052AD
AVR单片机
AVR单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业。 AVR单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8MHz,故最短 指令执行时间为250~125ns。AVR单片机能成为最近仍是比较火热的单片机,主要的特点:
特点:
1. AVR系列没有类似累加器A的结构,它主要是通过R16~R31寄存器来实现A的功能。在AVR中,没有像51系列的数据指针DPTR,而是由X(由 R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组DPTR),而且 还能作后增量或先减量等的运行,而在51系列中,所有的逻辑运算都必须在A中进行;而AVR却可以在任两个寄存器之间进行,省去了在A中的来回折腾,这些 都比51系列出色些
2. AVR的专用寄存器集中在00~3F地址区间,无需像PIC那样得先进行选存储体的过程,使用起来比PIC方便。AVR的片内RAM的地址区间为 0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,通常不具备通用寄 存器的功能。当程序复杂时,通用寄存器R0~R31就显得不够用;而51系列的通用寄存器多达128个(为AVR的4倍),编程时就不会有这种感觉。
3.AVR的I/O脚类似PIC,它也有用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10mA左右,低电平吸入电流20mA。这点虽不如PIC,但比51系列还是要优秀的…
缺点:
1. 是没有位操作,都是以字节形式来控制和判断相关寄存器位的
2. C语言与51的C语言在写法上存在很大的差异,这让从开始学习51单片机的朋友很不习惯
3. 通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接与立即数打交道,显然要优于前者。
使用最多的器件:ATUC64L3U、ATxmega64A1U、AT90S8515
对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就行,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取