大亮
发表于 2023-9-11 15:53:24
2023/09/11 STC8H8K64U教学PWM 打卡笔记
PWM 脉宽调制 应用场景 控制舵机转角,三线连接方式:电源线、地线、PWM控制信号(基于舵机的特性、查看舵机手册)、提供脉宽周期型调节信号、利用占空比变化,改变舵机转轴的角度
周期性方波脉冲信号怎么产生: 定时器:如0~200个周期时间,改变定时器输出实现,更好的方式PWM模式
PWM用来控制电机的转速:电机参数查看手册,额定功率、电压、电流等 电机驱动:用继电器触点开闭控制通断,电路设计电源极性翻转控制正反转,电机调速:
半桥驱动芯片BTN7971 原理框图
STC8H8K64U PWM模块:8通道16位高级PWM定时器,PWMA和PWMB,PWMA可配置成4组带死区控制的互补对称PWM(特别适合电机控制)或捕捉外部信号(脉冲检测),PWMB可配置4路输出或捕获外部信号;
PWM波形输出:单独使能PWMA1P/PWM2P/PWM3P/PWM4P输出(P端输出),也可单独使能N端输出,捕获功能或者脉宽测量 P端具备
六路PWM输出--》用于电机控制,三相六路PWM波控制3个IGBT桥,驱动电机
时基单元的结构图
看文档
向上计数
计数模式
基于寄存器控制的PWM应用
文档要看看
大亮
发表于 2023-9-11 16:44:59
2023/09/11 STC8H8K64U教学梁工讲PWM驱动电机介绍 打卡笔记
电机:
带HALL传感器反馈的电机
不带HALL传感器反馈的电机
等效模型,反电动势--》输入ADC,用CMP功能用比较器中断判断过零检测
启动函数、强起
与PWM相关的应用 在论坛上
月光如盐
发表于 2023-9-11 17:08:13
楼主对我们的免费公开课 认可/支持/给力,建议主动联系我们同事
=====提前获得 【免费+包邮送】的 STC32G12K128实验箱 或 STC8H8K64U实验箱
=====现在送的,都可以利用MCU自带的 硬件USB直接仿真,硬件USB直接下载
【免费+包邮】 送/申样/采购 可加 如下 QQ或微信联系
加STC华南区客服刘经理QQ: 3398500488 ;微信:18106296592要求 【免费+包邮】 送, 还免费教仿真
加STC华南区客服曹经理QQ:1933892258 ;微信:18106296595 要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服聂经理QQ:2593903262;微信:18106296598要求 【免费+包邮】 送, 还免费教仿真
加STC西北区客服孙经理QQ: 1347154513 ;微信:18106296593要求 【免费+包邮】 送, 还免费教仿真
加STC华北区客服石经理QQ: 1638975601 ;微信:19952583876要求 【免费+包邮】 送, 还免费教仿真
加STC华中区客服唐经理QQ:2571301708 ;微信:18106296589 要求 【免费+包邮】 送, 还免费教仿真
加STC东北区客服张经理QQ:3141888640 ;微信:19952583265 要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服张经理QQ:3141888640 ;微信:19952583265 要求 【免费+包邮】 送, 还免费教仿真
工作时间:8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)
【免费+包邮】 送/申样/采购传统电话热线:0513-55012928、0513-55012929、0513-55012966
工作时间:8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外
大亮
发表于 2023-9-11 22:09:14
STC芯 发表于 2023-9-11 17:08
楼主对我们的免费公开课 认可/支持/给力,建议主动联系我们同事
=====提前获得 【免费+包邮送】的 STC32G12 ...
感谢STC提供的如此优秀的系列课程,收到!
大亮
发表于 2023-9-11 23:47:49
本帖最后由 大亮 于 2023-9-11 23:49 编辑
《何老师 STC32位8051单片机原理及应用-STC32G12K128》2023/8/8 (上)
端: 8个比特位按一个字节存储 字节存储顺序:小端模式 (little endian),0x1234 占两个字节 存储器地址0x0 -->0x34 0x1-->0x12 先保存最低有效位或者低字节MSB -- 》 LSB
大端模式: 先保存高地址字节,再保存低地址字节
L8051 CALL指令,压栈先保存下一条指令地址的低字节,是以小端模式保存在堆栈里的(特例),其他16位或32位数据,均采用大端模式
程序Flash存储器 程序存储器空间映射 8位单片机存储器结构何空间地址 STC15系列/STC8系列增强型8051单排年纪的程序空间位于0x0000~0xFFFF的地址范围
16位的PC指向下一条要执行的指令
CPU只能通过使用MOVC指令,从程序空间读取数据
当复位时,PC的内容位0x0000,因此,从程序存储器地址为0x0000的地方开始执行程序(初始化配置为0x80以上,run main之前还有boot)
40K存储器空间
中断服务程序的入口地址(也成为中断向量)也放在程序存储器单元低地址空间/区域,在程序存储单元中,对于每个中断来说都有一个固定的入口地址,Flash特殊结构决定。
数据Flash,8051内部 提供大容量的数据FLASH存储器,用于实现电可擦除的只读存储器EEPROM的功能,非易失性区域,
操作的特殊SFR,
ISP/IAP地址寄存器 (IAP_ADDRH 和 IAP_ADDRL)0xc3 和 0xc4
ISP/IAP命令寄存器 IAP_CMD 0xC5 MS1MS0
ISP/IAP命令触发寄存器 IAP_TRIG 0xC6 IAPEN SWBS SWRSTCMD_FAILWT2~WT0
PCON 电源控制寄存器 0x87
内部数据RAM存储器:MCU内部集成,用于存放程序执行的中间结果和过程数据,STC15 4K内部数据存储器 在逻辑和物理上,分为两个地址空间:内部基本RAM,256B,内部扩展RAM 3840B
256个字节地址空间
低128个字节地址空间怎么用:
32字节/4组寄存器地址 ,,,16字节(128位)可位寻址区域,,,,用户自由发挥区域
Intel用CISC复杂指令集架构,但是用紧凑型结构实现CPU的,
片内扩展RAM:2DPTR
设计访问: 通过MOVX指令访问内部扩展RAM区域 汇编:MOVX @DPTR 或 MOVX @RiC:xdata声明存储类型来访问内部扩展RAM区域
片内外 SFR 0x8e EXTRRAM 辅助寄存器AUXR控制 访问内部扩展 "0" 0X0000 ~ 0X0EFF 3839字节
外部数据存储器:硬件电路(数据地址总线,端口复用),提供BUS_SPEED特殊功能寄存器 (现在极少应用了,片内够了)
微架构 32位时代
大亮
发表于 2023-9-12 08:51:15
《何老师 STC32位8051单片机原理及应用-STC32G12K128》2023/8/8 (下)
32位单片机处理器核的内部结构 STC32系列单片机处理器核兼容MCS-251 ISA, 实现1位/8位/16位/32位的操作,
24位地址总线 XXXXXXXX [高8位二进制数表示访问的段 区域] YYYYYYYY YYYYYYYY[低16位表示当前访问段空间的具体存储单元位置 具体单元]
DMA机制:direct memory accessDMA控制单元 外设和存储器直接通信,跳过CPU
时钟:内部高精度IRC、内部32khz IRC 、外部晶振、内部相位锁相环输出时钟PHASE LOCK LOOP PLL
专用乘法除法单元MDU32
32位MCU的寄存器:
组:同一时刻/一次能操作的8个 不同组 通过设置PSW相应位进行设置
寄存器文件 register file
专用寄存器:
紧凑、小巧
指令集 芯片文档 有详细介绍
大亮
发表于 2023-9-12 13:21:28
现代高性能CPU中几十个寄存器就够用了。
寄存器是CPU中用于存储数据的单元。在运算器、控制器中,都需要有记忆功能的单元来保存从存储器中读取的数据,以及保存运算器生成的数据,这样的单元就是寄存器。
区分:“寄存器” register CPU内部单元 容量小 计算过程中中间数据,瞬时性《==》"存储器" Memory 位于CPU外部 容量大 保存程序、输入输出数据和最终结果
数据寄存器
指令寄存器
地址寄存器
标志位寄存器
寄存器的一个重要概念“位宽”。CPU中经常将一组寄存器单元使用一个模块实现,形成寄存器堆,寄存器堆的典型结构包含3个端口:
地址端口(选择要读写的寄存器编号)
读/写控制端口(向控制器单元写骄傲是从控制器单元读出)
数据端口(从寄存器单元读出或向寄存器单元写入的数据)
大亮
发表于 2023-9-13 03:36:26
《何老师 STC32位8051单片机原理及应用-STC32G12K128》2023/8/11
寄存器组解决寄存器瓶颈问题,寄存器合并解决寄存器位宽问题; R0~R7 *4 ==32
低32字节的存储空间地址片内基本RAMEDATA ,映射特殊功能寄存器
对寄存器的操作,R拼出WR,WR拼出DR,体现Intel典型的紧凑型设计理念
R10寄存器就是寄存器B R1 就是累加器ACC/A 寄存器DR56:扩展的数据指针 (DPX extended data pointer) 寄存器DR60:是扩展的堆栈指针(SPX Extended Stack Pointer)
扩展的数据指针 低八位 高八位 在扩展16位
KEIL的DEBUG 可以把CPU的底层看得很清楚
程序状态字:CY 进位标志 最高有效位有进位 MSB most significate bit
PSW1
========^^^^^^^^^^^^^^^^^内核^^^^^^^^^^==============================================
程序入口地址:FF0000H
程序计数器 PC 当给STC32G系列单片机复位后,程序计数器PC得内容为FF0000H(从这里开始执行程序)
在程序存储器中,每个中断都有一个固定的入口地址,当发生中断并且处理器核响应中断后,PC就会自动跳转到相应的中断入口地址去执行程序
Flash数据存储器 相当于EEPROM以字节为单位读/写数据,以512字节为页单位进行擦除。
数据存储器:
中断:两个目的:能够让CPU尽快响应事件、最小的代价处理事件,中断系统,处理器育有处理外界紧急事件(转化为端口高低电平、脉冲)能力而设置的一种机制,程序计数器跳转,设计芯片的人设计的内部规则
大亮
发表于 2023-9-13 14:21:55
《何老师 STC32位8051单片机原理及应用-STC32G12K128》2023/8/15
课堂例程已经找到并下载,前堂可的苦恼解决,有效提高了听课效率!“STC 32位单片机原理及应用配套设计案例,北京化工大学何宾老师配套资料
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=3876
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)”
=================================================================================
MCS-251: 定义位 1 字节 8 字word16 双字dword 32
字和双字以大端模式保存在内存和寄存器文件中
MOV WR0, #0A3B9H MOV 00:0201H, WR0 MOV DR4,#0000C4D7H
在MSC-51 ISA中,操作数定义:
一天机器指令包含两部分,操作码和操作数
数据存在哪里?CPU指令里(存在指令本身)、寄存器里、edata内存储、扩展存储区、code
MSC-251 ISA支持的寻址模式 (区分源和目的):目的操作数<---源操作数
寄存器寻址;操作数在寄存器中
立即(数)寻址:操作数在指令里 MISP架构也是这样
直接寻址:提供数的地址 片上RAM地址范围00:0000H~00:007FH SFR S:000h~S:0FFHMOV DR0,EDATA 0100H MOV WR2,0X60 (一个wr类型,取两个字节)
间接寻址:给出寄存器、寄存器的内容是要访问的地址MOV @WR0,WR2 MOV @DR0,WR8
位移寻址:指令一个寄存器和一个偏移量 @WRj+dis16 MOV @WR2+0X100, WR4
相对寻址:跳转指令,带符号偏移量*RETURN: MOV R1,#0XA0 MOV A,#0X60 ADD A,R1 JC RETURN
位寻址:包含位地址
机器码二进制序列表示,16进制展示
MCS-51 ISA(cpu mode)存在双模式:0xA5
MCS-251 ISA中包含268条指令 MCS-51 ISA中包含111条指令
ADD指令 CY 第7/16/31位有进位,设置为1 AC 第第三位到第四位有进位,设置为1,只对8位数据相加运算有效
ADD A,Rn
ADD A,dir8
ADD A,@Ri
ADD A, #data.
ADD Rmd,Rms
ADD WRjd,WRjs
ADD DRkd,DRKS
ADD Rm,#data
ADD WRj,#data16
ADD DRK,#0data16
ADD Rm,dir8
ADD Rm,dir16
ADD WRj,dir16
ADD Rm,@WRj
ADD Rm, @DRk
ADDC 实现带进位标志的加法。。。。看STC指令手册....
SUB指令 用于从目标操作数中减去指定的变量,将结果留在目标操作数中
SUBB 带借位的减法
递增指令 INC
递减指令
乘法指令 MUL AB高8位放在B寄存器 低8位放A寄存器 MUL Rmd,Rms
除法指令 DIV AB 商A 余数B
BCD调整指令 DA A
比较指令 CMP R1,R0
大亮
发表于 2023-9-14 11:27:14
GPIO:P0组、P1组、P2组、P3组内部结构框图
P0端口 另输出时,漏极开路(数据地址总线使用,做外扩存储器,少用)
P1端口内部总线数据,经锁存器反相,输出到外部管脚,双向
P2端口
P3端口