https://blog.csdn.net/qq_38351824/article/details/88883379
标识解释:
STC—前缀,表示芯片为STC公司生产的产品。其他前缀还有如AT,i,Winbond,SST等。
8—表示该芯片为8051内核芯片。
9—表示内部含Flash E^2PROM储存器。还有如80C51中的0表示内部含Mask ROM(掩模ROM)存储器;如87C51中,7表示内部含ERPOM存储器(紫外线可擦除ROM)。
C—表示该器件为CMOS产品。还有如89LV52和89LE58中的LV和LE都表示该芯片为低电压产品(通常为3.3V供电);而89S52中的S表示该芯片含有可串行下载功能的Flash存储器,即具有ISP可在线编程功能。
5—固定不变。
1—表示该芯片内部程序存储空间的大小,1为4KB,2为8KB,3为12KB,即该数乘上4KB就是芯片内部程序存储空间大小。
40—表示该芯片外部晶振最高可接入40MHz。对AT单片机数值一般为24,表示其外部晶振最高为24MHz。
C—产品级别,表示芯片使用温度范围。C表示商业级,温度范围为0℃~+70℃。
P3额外功能
总线结构(不重要)
51的总线
名词
special function register
special bit
材料
原理图
标号相同,表示物理连接
从左到右:开关电源,去耦电容,滤波电容
nop函数
C语言中没有nop()函数。
在51C中一般包含在#include “intrins.h” 头文件中。
该函数是在51单片机中用的延时函数,表示执行一条没有什么意义的指令,延时一个指令周期,有的指令周期是两个或两个以上的机械周期,但是nop();指令需要的只是一个机械周期也就是12个时钟周期(震荡周期)。
51单片机中,1个机械周期 = 12个时钟周期 = 12 * ( 1 / f)。(f 为晶振频率)。
如果只用的是12MHZ的晶振,那么 一个机械周期就是1us;也就是说:
nop(); 指令的延迟时间为 1us。可以较为精确得控制延迟时间。
nop指令的作用:
1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。)
2)通过nop指令产生一定的延迟,但是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟。
3)i/o传输时,也会用一下 nop,等待缓冲区清空,总线恢复;
4)清除由上一个算术逻辑指令设置的flag位;