cumtguojp 发表于 2021-3-14 04:17:47

STC16学习笔记(一)

在晶圆缺货,各行业都在找芯片的背景下,发现只有国产才是我们的中流砥柱,所以多年兜兜转转又回到了STC系列单片机的应用上来,发现有近10年没有接触STC单片机,STC单片机给了太多太多的惊喜,所以沉下心来认真学习STC单片机,并将自己记录的学习笔记上传,也为论坛做点贡献,为国产芯片添加一点自己的力量。闲话不说,直入正题。
一、IO口
STC的IO口还是沿用了早期51系列单片机的IO口设计方式,但是在这个方面有很大的创新,首先是IO口的模式设置,提供了4种模式,可以用PnM0和PnM1进行设置,模式包括:

[*]双向IO口
[*]推挽式输出
[*]高阻输入
[*]开漏输出。

双向IO口还是传统51的IO口控制方式,简单,直接;后面的3种模式,相信使用过STM32的朋友都不陌生。
这里主要是想说开漏输出的模式,个人理解开漏输出就是一种弱化版的双向IO口,可以作为标准的DI或者DO口,可以为对数字电压要求敏感的设计提供一种好的设计体验。但是在使用开漏输出模式的时候,需要外加上拉电阻。
在STC16和STC8的手册中发现宏晶在设计中还保留了很多可以设置IO口的寄存器,包括转换速率、控制电流、施密特触发等等,虽然在手册中的讲解一带而过并没有过多的详细说明,而且在后面的例程中也没有应用体现,但是感觉设计人员还是做了很多思考的,对于这一部分,如果宏晶的工作人员可以看到我的帖子,希望能在后续的手册版本中多做一点说明和应用例程。
二、中断
STC16提供了24个中断源,其中外部中断5个,定时中断5个,串口中断4个,ADC中断1个,低压检测中断1个,SPI和I2C个1个,比较器中断1个,PWMA组中断1个,PWMB组中断1个,USB、CAN、LIN中断个1个。想对比STC8提供的中断源多一点,但是主要集中在PWM控制上,并没有USB、CAN和LIN总线的中断,可以想象STC8应该主要是针对电机控制,尤其是新能源控制方面的。
学习到中断,不能不写中断的寄存器,
1.IE和IE2是中断允许寄存器,STC16是16位单片机,我也一直纳闷怎么寄存器的长度都是8位的,难道是标称?看到这个寄存器,突然想明白了,原来宏晶是真的做了16位的单片机。闲话少说,言归正传,在IE和IE2组成了16位的中断允许寄存器,其中除了总中断EA职位,一共提供了14个中断控制位,涵盖了常用的14个中断,包括所有的定时器和串口,2个外部中断,1个ADC,1个SPI和1个低压检测。命名规则也是一看就懂E***(Enable ***),均为0禁止,1使能。
2.INTCLKO(INT+Clk out)寄存器,其中BIT7和BIT3是保留位,通过INT就可以看出这个寄存器主要和外部中断的控制寄存器,从BIT6-BIT4分别对应外部中断4到外部中断2。CLKO(Clk out)不能算是中断允许位,但是既然写在这里了就顺便看一下,从BIT0-BIT2这3位主要用于选择定时器溢出时,是否要从IO 口输出翻转电平,个人感觉这个可以作为额外的PWM使用,用起来还是比较方便的。
好由于时间的原因先写这么多,后面再跟着写比较器控制寄存器,比较器的寄存器,可以重点记一下笔记。

NM2012 发表于 2021-3-14 19:17:46

沙发️。   

寻思 发表于 2021-3-15 09:14:11

看看st的价格,默默地翻开stc手册{:lol:}{:lol:}{:lol:}{:lol:}

小李非刀 发表于 2021-3-17 12:34:54

不管怎么说,有货才是王道。
比较支持楼主的态度。很多人嗯已碰到国产的,特别是STC的,就是各种贬损。其实对于现在的STC的快速内核,并不像有的人说那么不堪,要用过,才知道其优缺点,而不是因为其是8位机而觉得一无是处。
做产品,近10年,只要用8位机,一直用STC的,STM8用在工控上我失败过,所以一直弃用,至于PIC、AVR,早已弃用,别的8位机就没考虑了。
STC8系列的,除了做数学运算比较慢(不带硬件运算器的MCU都一样慢,比如STM32F103做浮点运算就很慢),其余的控制,则不会慢的,IO操作都1T了。
STC16则增加硬件整数运算和硬件浮点运算单元,这个很赞的,经过测试,整数运算同频可以接近ST的M3和M0,浮点运算则比其快得多(因为M0、M3没有硬件浮点运算单元)。

MCU没有谁好谁坏,只有合适与不合适,总认为ARM可以取代4位机8位机的,是否了解过,很多电子表、计算器依旧是4位机、8位机做的? 用ARM取代可能性不高,价格、耗电难以满足。

zqbing 发表于 2021-3-17 13:19:51

希望能一直坚持下去哈{:biggrin:}

woshigeshuai 发表于 2021-3-17 14:00:31

一起支持国产STC,便宜好用。开发首选。有机会用一下STC16

WindDragon 发表于 2021-3-17 14:31:12

不知道STC16是否已经量产了,价格多少?看了下手册,可以用来替代现在有的STM32F103系列啊
页: [1]
查看完整版本: STC16学习笔记(一)