跟何老师学习STC,打卡记录【实验箱已发出】
本帖最后由 32位8051-STCAI 于 2023-8-30 17:04 编辑一、第一集
基本架构
OSC为晶体振荡器(Oscillator)的英文缩写,它为MCU提供最基本的时钟源
CPU是中央处理单元(Central Processing Unit,CPU)的英文缩写,CPU是MCU中的核心功能单元
SRAM是静态随机访问存储器(Static Random AccessMemory,SRAM)的英文缩写,主要用于暂时保存在程序运行过程中所需要的数据,它充当了易失性存储器的角色
Flash是闪存(Flash Memory)的英文简称,主要用于保存程序代码,它充当了非易失性存储器的角色
UART为通用串行收发器(Universal AsynchronousReceiver/Transmitter,UART)的英文缩写,它是一种以串行方式发送和接收数据的简单外部设备(简称外设)
GPIO为通用输入输出(General Purpose Input&Output,GPIO)的英文缩写,它是MCU最基本的外设配置,也是MCU中最简单的外设
Timer为定时器的英文单词,它是MCU中必不可少的基本外设
Int Controller为中断控制器(Interrupt Controller)英文缩写,它是MCU中最基本的功能单元
EMlF为外部存储器接口(External MemoryInterface,EMIF)的英文缩写,它为MCU提供了连接片外SRAM芯片的能力
ADC和DAC分别为模拟数字转换器(Analog-to-DigitalConverter,ADC)单元和数字模拟转换器单元(Digital-to-Analog Convertor,DAC)的英文缩写
二、第二集
主要讲了指令集架构,也介绍了8051(MCS-51MCU)
CISC:
不等长指令集,有短有长的指令集组合,是相对复杂设计才可实现的指令集,用来实现的组合逻辑相对复杂:
相同晶圆制造工艺制程,指令集组合逻辑复杂,可获得的主频相对较低,部分单条指令相对功能复杂而强大:
空间代码效率高,省程序存储器,相对可在较低的主频完成复杂的任务
RISC:
等长指令集,指令相对简单,是相对简单设计就可实现的指令集,用来实现的组合逻辑相对简单;
相同晶圆制造工艺制程,指令集组合逻辑简单,可获得的主频相对较高,但指令相对简单;
空间代码效率相对较低,浪费程序存储器资源,相对要在较高的主频完成复杂的任务;
由于是简单的等长指令,RSC的逻辑和算术运算指令没有见到直接对存储器操作的指令:
由于是简单的等长指令,R工SC的直接寻址的逻辑和算术运算指令只是对寄存器
RISC放弃了一些CISC常用的组合逻辑较复杂的指令/芯片内部走线会较长,获得了较高的主频
全球很多半导体公司基于英特尔授权的基于MCS-51MCU和MCS-251MCU的ISA,设计并制造基于这些ISA的MCU产品。具体来说,Intel首先制定了一个lSA,基于该ISA实现了MCS-51 MCU,当其他MCU厂商得到了ISA的使用授权后,就可以自己也设计和实现基于该ISA的MCU,简称为8051单片机
此外,由于这些8051单片机对最早的Intel MCS-51MCU的内部结构进行了改进和优化,使得其性能有了显著的提高,因此又把STC公司的这些8051单片机称为增强型8051单片机
这个最早的版本在20世纪80年代和90年代早期就很受欢迎,其增强型的衍生产品(实际上是指使用MCS-51ISA的改进型MCU)至今被广泛应用于嵌入式系统中在MCS-51MCU内部,集成了CPU、RAM、ROM、IO、UART、中断控制和定时器,它具有单独的程序指令和数据存储空间.
本质上,MCS-51是一个8位宽度的MCU这是因为MCS-51核内部主要提供了可以实现算术和逻辑运算的8位算术逻辑单元、8位数据总线和8位寄存器MCS-51MCU所使用的1SA包含了111条指令,其中49条为单字节指令,46条为双字节指令,以及16条是三字节指令,这是复杂指令集计算机(ComplexInstruction Set Computer,CISC)的典型代表
CISC的典型特点就是具有可变的指令长度,并且允许在存储器上执行算术和逻辑运算,由于MCS-2511SA是在MCS-51ISA的基础上进行了扩展,因此在MCS-51上编写的代码可以不需要任何修改就可以运行在MCS-251上,这就是MCS-251向下兼容MCS-51的根本原因
三、第三集
这集主要讲了汇编语言,之前接触STM32一直都是用的标准库C语言,对于汇编语言和寄存器都知之甚少
入口
当采用STC32GG系列单片机后,所需要的时钟周期从使用STC15/STC8系列增强型8051单片机需要48个减少为15个,程序运行时间缩短为原来的1/3,即所需要的时钟周期数是原来的33%,并且指令条数从使用STC15/STC8系列增强型8051单片机需要20条减少为10条,指令数量缩短为原来的1/2(50%)。指令总长度从使用STC15/STC8系列增强型8051单片机需要48个字节缩短为38个字节,即代码的存储容量减少为原来的80%。从指令个数和运行时间来看,采用MCS-251ISA的STC32GG系列MCU的性能要明显高于采用MCS-51ISA的STC15/STC8系列MCU的性能。
四、第四集
STC32G12K128系列单片机的主要特点包括:处理器内核1.采用了超高速32位处理器内核(1T),100%兼容MCS-251SA。与传统8051相比,速度快70倍以上2.支持在线仿真/调试功能3.MDU32。硬件32位乘除法器(包含32位除以32位、32位乘以32位)工作电压:范围为1.9~5.5V。当工作温度低于-40°C时,工作电压不低于3.0V工作温度:范围为-40~85℃。可使用内部参考时钟(Internal Reference Clock,IRC)(其频率最高为36MHz)和外部晶体振荡器;范围为-40~125°℃。当温度高于85°C时请使用外部耐高温晶振,且工作频率控制在24MHz以下 Flash:存储器最大128K字节FLASH程序存储器(ROM),用于存储用户代码支持用户配置EEPROM大小,512字节单页擦除,擦写次数可达10万次以上支持硬件USB直接下载和普通串口下载支特硬件SWD实时仿真,P3.0/P3.1(需STC-USB Link1工具) SRAM,共12K字节4K字节内部SRAM(edata)8K字节内部扩展RAM(内部xdata) 时钟控制内部高精度IRC(SP编程时可进行上下调整)。常温25℃时,误差±0.3%;-40℃~85℃时,温漂为-1.35%~+1.30%;在-20℃~65℃时,温漂为0.76%~+0.98%内部32kHz低速IRC(误差较大)外部晶振(4MHz~33MHz)和外部时钟,有专门的外部时钟干扰内部电路可软件启动内部PLL输出时钟。其中,PLL输出的96MHz/144MHz可独立作为高速PWM和高速SPI的时钟源) 复位硬件复位:上电复位。复位电压值为1.7~1.9V。(在芯片未使能低压复位功能时有效复位脚复位。出厂时P5.默认为/0口,ISP下载时可将P5.4管脚设置为复位脚(注意:当设置P5.4管脚为复位脚时,复位电平为低电平)看门狗溢出复位低压检测复位。提供4级低压检测电压:2.0V、2.4V、2.7V、3.0V软件复位:软件方式写复位触发寄存器 中断支持4个中断优先级,49个中断源,包括NT0、NT1、NT2、INT3、INT4、定时器0、定时器1、定时器2、定时器3、定时器4、USART1、USART2、UART3、UART4、ADC模数转换、LVD低压检测、SPI、I2C、比较器、PWMA、PWMB、USBCAN、CAN2、LIN、LCMIF彩屏接口中断、RTC实时时钟、所有的IO中断(8组)、串口1的DMA接收和发送中断、串口2的DMA接收和发送中断、串口3的DMA接收和发送中断、串口4的DMA接收和发送中断、I2C的DMA接收和发送中断、SPI的DMA中断、ADC的DMA中断、LCD驱动的DMA中断以及存储器到存储器的DMA中断。其中,所有的IO均支持中断,每组IO中断有独立的中断入口地址,所有的WO中断可支持4种中断模式,包括高电平中断、低电平中断、上升沿中断、下降沿中断。IO口中断可以进行掉电唤醒。
五、第五集
准双向输出
强推挽输出
仅为输入(高阻)
开漏输出
下载电路
六、第六集
本集主要讲了如何配置开发软件Keil的环境,以及STC-ISP的配置,其中keil工程文件夹名含义参考如下
七、第七集
本节课开始写程序,照葫芦画瓢写了个流水灯
本帖最后由 pliang 于 2023-8-24 16:02 编辑
八、第八集
优化等级说明
符号表
HEX文件查看
LLAAAARRDDDD.........DDDDCC
-------------------------------------------------------------------------------------
LL:Length field-长度段:数据段(D)的字节数
AAAA:Address field-地址段:数据段第一个字节的地址
RR:Record type-纪录类型,00代表数据,01代表纪录结束
DD:Data field-数据段
CC:CheckSum field-校验和
-------------------------------------------------------------------------------------
九、第九集
本集讲解了启动引导还有硬件在线调试功能
通过硬件在线调试使得程序开发人员能够发现软件仿真时不能探测到的一些更深层次的设计问题
比如:当程序不能响应外部中断的时候,可能有以下几种情况,全局中断没有使能?对应的外部中断没有使能?中断服务程序代码有问题?(没有进入中断服务程序?没有从中断服务程序正常返回?),这些可能性只有通过硬件在线调试功能才能确认。
以下是硬件在线调试步骤
第一步:接线(如图所示)。使用STC官方提供的STC-USB Link1D硬件工具其中一侧的USB接头插入到PC/笔记本电脑的USB接口;另一头通过STC提供的专用的白色电缆连接到STC实验箱上左上角上标记为J5的四针白色插座上
第二步:打开main.c文件,将该程序中for语句全部注释掉,【//for(i=0;i<100000UL;i++):】
第三步:对修改后的代码重新进行编译和链接,并生成HEX文件
第四步:设置参数,并加载hex文件。(1)将单片机型号设置为STC32G12K128;(2)单击“打开程序文件”按钮,重新加载生成的hex文件;(3)1RC频率设置为11.0592Mhz
第五步:
十、第十集
主要讲了不同进制之间的转换,这点比较熟悉,准备看下一集
页:
[1]
2