简介:
国产的STC系列单片机大多数人都比较熟悉。STC采用的是MCS-51指令集,是传统的51内核,指令集结构比较简单。现在STC基本是属于51单片机的代表(不是指性能),功能比较简单,资料也比较多,是用来学习单片机入门选择最多的一种。
市面上有很多为51单片机设计的学习开发板,每个开发板基本都会配备几十G的学习视频资料。一般入门学习不需要人带,买个开发板就能学习到一种单片机里面的各种外设和功能。不过个人倾向于看书,因为我觉得看视频,太啰嗦学习太慢。
2015年STC官方也推出的有一种开发板,可以以大学名义申请,只需要提供相应资质就可以免费获取一定数量的开发板,不过现在已经结束了。开发板上用的是当时最新的IAP15系列的芯片。软硬件都配置的比较足。官方给出的学习资料、芯片手册、烧录软件也都有中文的。可以在STC官网(www.stcmcu.com)上找到。
不过STC的官网做的真是有些山寨的感觉,花花绿绿的让人忍不住要喷,找资料真的不方便。

STC官网封面
烧录工具:
STC自己开发的专用烧录工具(STC-ISP)确实是一个亮点,里面功能很多,主要包括:
- 所有STC芯片烧录*载下**,可以使用加密ID*载下**,保护程序安全。
- 支持将目标程序文件与烧录软件打包生成一个新的exe升级软件,这样方便量产以后的程序升级。
- 芯片选型,查看芯片资源和价格,查看芯片封装类型,IO定义等
- 查看各个芯片的各个外设的范例程序,*载下**芯片手册。
- 可以当作串口收发助手,不需要单独的串口助手软件。
- 新的IAP15系列的芯片,可以用来设置硬件仿真。
- 可以当作波特率计算器、定时器计算器、软件延时计算器等,直接生成寄存器配置代码
- 可以把复位引脚配置成普通IO来用,并可以在可视化软件上设置内置振荡器速率。

STC-ISP烧录工具
真是集多功能与一身, 再集成一个编辑器+编译器功能就可以独步天下了。面对这么好用的烧录工具,对于只用来*载下**程序的小伙伴来说,是不是略显浪费呢。功能用的不熟练的童鞋可以在下方评论区写下来。
编程环境IDE
STC系列单片机软件编程语言用的是C51语言,类似于标准C语言的缩减版,两者语法和格式都是一样的。多了一些关键字如:“sbit”位定义、“code”常量声明等。又缩减了一些关键字比如“const"常量声明关键字。
STC系列单片机编程软件IDE是用的“KEIL FOR C51”,注意keil有很多版本比如:KEIL FOR ARM, KEIL FOR C51等,安装完以后图标都是一样的,但是支持的芯片内核不一样,第一个是ARM内核专用,第二个才是51内核用的。两者还可以根据安装包大小区分,一般KEIL FOR C51版本的软件安装包不会超过100MB,但是KEIL FOR ARM一般都是300M以上。

KEIL FOR C51
这个编程软件是收费的,没有付费的软件有软件编译大小限制,超过一定代码量后就会编译错误提示了。但是一般个人学习使用可以使用注册机软件免费破解到2020年免费使用。至于2020年以后怎么办,应该会有新的注册机出来吧。
IDE集成了编辑器和编译器功能,软件没有内置STC单片机型号,如果想编译STC单片机的项目的话,需要在烧录工具STC-ISP中添加芯片型号到软件安装目录。就可以找到使用了

STC芯片列表
KEIL编译功能还可以,但是编辑器功能实在不好用,没有代码提示、编辑器背景颜色主题可以修改但是颜色比较单一。我一般都是使用visual studio code进行代码编辑,然后使用KEIL编译来做,这样虽然两个软件来回切换,但是效率会高很多

visual studio code
片内外设:
我们拿STC经典的一款STC89C52和最新系列的一款STC15F2K60S2抽取几个主要参数来分别看一下。
STC89C52:
- 程序储存空间:8KB
- 运行内存空间:0.5KB
- EEPROM:4KB
- 串口:1个,没有独立波特率发生器
- 外部中断口:2个
- 定时器:3个,没有硬件PWM功能
- ADC模数转换:无
- 价格:3元
STC15F2K60S2:
- 程序储存空间:60KB
- 运行内存空间:2KB
- EEPROM:1KB
- 串口:2个,部分含有独立的波特率发生器
- 外部中断口:5个
- 定时器:6个,部分含有硬件PWM功能
- ADC模数转换:10位,1024分辨率
- 价格:6元
可见,STC推行这么多年,自家产品性能还是有很大提升的,针对主流应用需求加了很多功能外设,比如ADC模数转换、硬件PWM等,也推出了很多小型SOP-8系列封装的单片机,用在更小巧的场合,价格能做到1.5元左右。
优缺点比较:
- STC芯片本身在进步,但是价格相对国外其他同性能的主流芯片来说,还是偏贵。
- 仿真功能没有跟上,只有部分高端芯片支持硬件在线仿真,还需要设置一些东西才可以。这点就受限于做开发功能可以,但是很多不愿意用STC来做应用。
- 时钟管理的比较混乱,各个外设之间不是独立运作的,牵一发动全身。比如有些串行口没有独立的波特率发生器,就必须占用某个定时器的资源来使用这个外设,两者必须同时来使用。这就显得很麻烦且不好进行功能分配。
- 没有专用的IDE,如果STC官网推出一个STC专用的IDE,可以直接支持编辑、编译、仿真、和烧录的话,对新手就更友好了,相信市场普及率也不会是现在这个局面了。
很多量比较大的产品还是宁愿使用其他的片子比如新塘,毕竟都需要性价比和成本核算的。但是一般这种芯片学习资料比较少,需要专业人员开发产品的时候根据手册进行开发,不适合拿来入门学习。
“下次将为大家介绍一下关于STM8系列单片机的详细情况,并会随后推出一些教程跟进"
有问题或者错误的,可在下方评论指出。