找回密码
 立即注册
查看: 1252|回复: 9

学习打卡——何宾教授STC32教学视频

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-26 15:31:08 | 显示全部楼层 |阅读模式
最近比较闲,正好利用此时间系统学习一下STC新推出的STC32单片机。明天开始学习何宾教授的教学视频,希望自己能坚持并有所收获。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-26 17:28:37 | 显示全部楼层
本帖最后由 zghlt 于 2023-10-26 17:31 编辑

由于本人具有一定8位单片机基础,本阶段计划重点学习32位单片机的特色之处,故跳过了1~12集,从13集《32位单片机处理器核的内部结构一》开始学习。

第13集   32位单片机处理器核的内部结构一
截图202310261715567910.jpg

本集学习心得:
1、STC32单片机采用的MCS-251架构,虽然架构较为古老,但采用新设计新工艺进行了内部结构优化,增加了许多实用性强的外设,兼顾了性能和成本,具有较强的市场竞争力。
2、与MCS-51不同,在MCS-251 ISA中,对于24位地址总线进行了定义,高8位表示访问的段空间,低16位表示当前访问段空间的具体存储单元位置。
3、通过扩展的地址和数据总线,连接片上的存储系统。存储系统包括:(1)Flash存储器和EEPROM(共128KB);(2)内部RAM区域EDATA(共4K);(3)内部扩展RAM区域XDATA(共8K)。


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-26 21:27:33 | 显示全部楼层
本帖最后由 zghlt 于 2023-10-26 21:28 编辑

第14集   32位单片机处理器核的内部结构二

截图202310262055531686.jpg

学习心得:
1、MCS-251架构为最大程度实现与传统51架构的兼容,采用紧凑型结构,将传统51通用寄存器R2n、R2n+1合并作为WR2n进行访问,也可将R4n、R4n+1、R4n+2和R4n+3合并作为DR4n进行访问,WR和DR在访问时仅能按字访问,不能按字节访问。
2、传统通用寄存器组0~3中对应的寄存器R0~R7,在MCS-251架构中,对应的存储器地址空间为00H~1FH,使用过程中,选择那一组作为工作寄存器是由PSW(程序状态字)中的bit3、bit4位决定的。
3、字寄存器(16位)是两个字节寄存器的组合,双字寄存器(32位)是4个字节寄存器的组合。寄存器R0~R15可作为字节、字和双字寻址,寄存器R16~R31只能以字或双字形式寻址,R56~R63只能以双字形式寻址。
4、在传统51单片机中,A(累加器)作为数据移动和计算的主要寄存器,容易形成系统运行速度的瓶颈,而在MCS-251 ISA的STC32系列单片机中,R1~R15都可用于累加器功能,因此,该架构十分有利于系统整体性能的提升。
5、在编写STC32单片机汇编程序时,如果代码大小超过64K,在指定复位入口地址时需要在操作数前增加“0FF:”。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-27 14:42:09 | 显示全部楼层
第15集    32位单片机存储器结构和地址空间、中断系统原理及功能                


截图202310271405041761.jpg


本集学习心得:
1、至此学习的几集何教授和姚总都围绕STC32单片机的内部结构、原理和工作机制进行详细阐述讲解,看似比较枯燥乏味,但其实学习这些知识是用好单片机的必由之路,必须深入了解底层工作过程,在应用编程时才能有的放矢地“榨干”单片机的内部有限资源,实现系统的稳定高效运行。
2、STC32相对于传统51单片机,在存储结构上进行了优化,将地址空间进行了扩展,处理器连接到片内的24位地址总线,最多能够访问16M的存储空间,其中包括数据存储器和程序存储器各8M.
3、STC32单片机内部集成了大容量的数据存储器和程序存储器,而没有提供访问外部程序存储器的总线。
4、STC32单片机现有型号内部数据存储器的总容量最大为12K,其中EDATA区域容量4K,XDATA区域容量8K,其中堆栈容量1K放置在EDATA区域。
5、中断是嵌入式系统保证工作实时性的重要手段,其执行效率高于轮询、低于DMA。本集主要深入浅出地讲解了中断原理、中断系统结构、中断优先级处理、中断优先级控制寄存器和中断向量表。
6、概括来讲,STC32的中断系统既实现了与传统51单片机的兼容,又进行了大幅度的扩展,增加了中断源数量和中断优先级组数,有利于执行更为复杂的任务。
7、STC32单片机的中断响应时间大约为2个LCALL指令时间,6个时钟周期左右。



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-27 23:05:58 | 显示全部楼层
第16集   单片机指令集架构-数据类型和端、指令集中的符号规则  

截图202310272227459824.jpg

本集学习心得:
1、本集主要讲解内容有:(1)数据类型和端;(2)指令集中的符号规则;(3)单片机CPU寻址模式;(4)指令模式的选择;(5)单片机CPU指令类型和格式。总体感觉是理论性较强,需要理解和记忆的内容较多,学习过程中可以利用Keil工具软件,通过对比汇编指令、寄存器值和机器码,反复练习琢磨,加深理解。
2、MCS-251 ISA可寻址的数据类型有bit(1位)、byte(8位)、word(16位)和double word(32位)共四种,需要注意的是word和double word以大端形式保存在内存和寄存器文件中。所谓大端形式,即符合“高址低字节、地址高字节”规则。
3、word和double word类型的数据,可以保存在存储器中任何字节开始的地址,而无需边界对齐。
4、一条机器指令包含两部分:操作码和操作数。通俗讲,操作码即向被操作对象下发行动命令,操作数即被操作对象。
5、在STC32单片机中,操作数可以保存在CPU的内部寄存器、片内Flash程序存储器、片内RAM或片外扩展存储器中,也可以仅仅是一个常数,作为操作码的一部分存在。
6、在单片机中,将CPU寻找操作数所在存储位置的方式,称为寻址模式。MCS-251 ISA支持寄存器寻址、立即寻址、直接寻址、间接寻址、位移寻址、相对寻址、位寻址共七种寻址模式。
7、在进行指令模式选择时,要注意到寻址模式不同,CPU的工作效率也大不相同。






回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-28 20:12:43 | 显示全部楼层
本帖最后由 zghlt 于 2023-10-28 20:14 编辑

第17集   单片机CPU指令集架构-单片机CPU寻址模式、单片机指令模式的选择


截图202310281928045036.jpg

本集学习心得:
1、本集继续学习STC32单片机CPU指令集架构,何教授和姚总详细讲解了CPU的五种寻址模式、单片机的两种指令模式、从MCS-51指令集至MCS-251指令集的演进过程,并开始了STC32单片机指令的讲解,本集讲解了加法指令。
2、本集讲解了STC32的五种常用寻址模式,分别是:(1)直接寻址;(2)间接寻址;(3)寄存器寻址;(4)位移寻址;(5)相对寻址。
3、直接寻址是最常用且速度最快的寻址方式,在应用中需要注意:MCS-251 ISA中,在SFR区域内寻址的地址需要加入前缀符号‘S:’,以表示后面跟随的地址是SFR区域内的地址,即S:000H~S:1FFH。
4、间接寻址是在寄存器中保存着寻址存储空间的地址。在MCS-251 ISA中,间接寻址与传统51架构有所差异,它可以通过8位(byte)、16位(word)和32位(double word)作为间接寻址的寄存器。
5、在传统51架构中,寄存器寻址模式,指令仅寻址寄存器R0~R7;而在MCS-251 ISA中,指令可寻址的寄存器有(1)R0~R15;(2)WR0、WR2、。。。WR30;(3)DR0、DR4、。。。DR28、DR56、DR60。
6、在MCS-251 ISA中,如果是16位位移寻址模式,可间接访问存储器中最低的64KB空间;而如果是24位间接寻址模式,则可间接访问存储器的整个16MB地址空间。
7、相对寻址模式即将程序计数器(PC)中的当前值与指令中第二个字节给出的数相加,其结果作为转移指令的转移地址。
8、STC32具有两种可选的指令模式:(1)源(Source)模式;(2)二进制(binary)模式,在我们的Keil设置中,通常选用源模式。二进制模式主要是用于兼容51架构的高效机器指令编码模式。
9、MCS-251 ISA中包含了268条指令,指令规模为传统51架构的近2.5倍。
10、在MCS-251 ISA中,加法指令包括两种类型:(1)ADD指令;(2)ADDC指令。









回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-28 22:46:28 | 显示全部楼层
本帖最后由 zghlt 于 2023-10-28 22:48 编辑

第18集   单片机CPU指令类型和格式-算术指令

截图202310282214308531.jpg

本集学习心得:
1、本集紧接上一集,接着学习STC32单片机系统的算术指令,老师讲解了加法指令中的ADDC指令、减法SUB指令、递增INC指令、递减DEC指令、乘法MUL指令、除法DIV指令、BCD调整指令以及比较指令。
2、本人专业从事单片机产品开发也有近10年时间了,虽然最初是从汇编语言开始学习,但很快就转到C语言学习了,之前的产品开发也都使用的C51。在工作过程中,使用单片机开发满足预期功能要求的产品采用C51是合适的,但时间长了,自然会忽视单片机底层运作过程,不利于单片机资源的高效优化使用。这次返过来从汇编开始学习,感觉受益颇丰,通过老师剖析单片机底层运作过程,并在Keil中对比汇编指令、存储器值、机器码学习,对单片机有了更深刻的理解,以后使用C语言进行编程也会更为得心应手。
3、课后,我想有必要再抽时间静心阅读STC公司的datasheet,以前工作中都是带着问题查找相关章节内容,并没有系统完整的阅读过。这次经过老师讲解,发现其中隐含着许多与底层息息相关的知识,想要真正做到精通单片机是不容忽视的。







回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-29 09:57:42 | 显示全部楼层
本帖最后由 zghlt 于 2023-10-29 18:46 编辑

第19集   单片机CPU指令类型和格式-算术指令、逻辑指令

截图202310290929071124.jpg


本集学习心得:
1、本集继续上一集,学习STC32单片机的逻辑指令。何教授讲解了逻辑“与”指令、逻辑“或”指令、逻辑“异或”指令、清除指令、取反指令和移位指令。本集知识点较多,老师的讲解节奏也拉得较快,所幸自己之前有这方面的基础,所以思维速度还是能跟上。
2、“与”指令:在指定变量之间进行按位逻辑“与”运算,并将结果保存在目标变量(目的操作数)中。该指令影响N(符号标志)和Z(零标志)。
3、“或”指令:在指定变量之间进行按位逻辑“或”运算,并将结果保存在目标变量(目的操作数)中。同样,该指令影响N和Z。
4、“异或”指令:在指定变量之间进行按位逻辑“或”运算,并将结果保存在目标变量(目的操作数)中。
5、“清除”指令:将累加器A的内容清除,该指令也影响N和Z。
6、“取反”指令:将累加器A的内容按位取反,该指令也影响N和Z。
7、“移位”指令:该指令将累加器A的内容移位,本集具体讲解了六种方式:(1)RL:将累加器的内容循环左移;(2)RR:将累加器的内容循环右移;(3)RLC:将累加器的内容带进位标志位(CY)循环左移;(4)RRC:将累加器的内容带进位标志位(CY)循环右移;(5)SLL:将寄存器Rm的内容逻辑左移一位,最低有效位用“0”填充,移出的MSB保存在CY中,影响N和Z;(6)SRA:将寄存器Rm的内容算术右移一位,,移出的最高有效位保持不变,移出的LSB保存在CY中,影响N和Z。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-29 18:44:49 | 显示全部楼层
本帖最后由 zghlt 于 2023-10-29 18:58 编辑

第20集   单片机CPU指令类型和格式-逻辑指令、数据传送指令

截图202310291819388838.jpg

本集学习心得:
1、本集继续学习上一集逻辑指令中未讲完的移位指令SRA和SRL,以及半字交换指令SWAP;然后开始学习数据传输指令,课中何教授花了大量篇幅详细讲解了通用传输指令(MOV)。
2、逻辑右移指令(SRL):将寄存器Rm的内容逻辑右移一位,最高有效位用“0”填充,移出的LSB保存在CY中,运算结果影响N和Z。
3、半字交换指令(SWAP):将累加器A中的半字节进行交换,影响N和Z。
4、在MCS-251 ISA中,数据传送指令包括数据传输指令、堆栈操作指令和数据交换指令三种。
5、具体到STC32单片机,数据传输指令又包括内部数据传输指令、外部数据传输指令和查找表传输指令三种。
6、MOV指令是一类最通用的数据传输指令,它用于传输(搬运)变量,将源操作数指定的字节变量复制到目标操作数指定的位置,而源操作数不受影响。该类型指令不影响标志位。
7、对于MOV指令,MCS-251 ISA对寻址模式进行了扩展,MOV可以在任意两个寄存器之间或寄存器与地址空间中的任意位置之间传输字节(8位)、字(16位)或双字(32位)数据。








回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-05-02 19:10:49

1

主题

9

回帖

120

积分

注册会员

积分
120
发表于 2023-10-31 16:06:17 | 显示全部楼层
第21集   单片机CPU指令类型和格式-数据传送指令、位指令、控制指令

截图202310311548191779.jpg



本集学习心得:
1、本集继续学习STC32单片机的指令类型和格式,老师讲解了数据传送指令中的代码空间数据传输指令(MOVC)、外部数据存储器传输指令(MOVX)、堆栈操作指令(压栈和出栈)和数据交换指令(XCHD)。
2、接下来老师讲解了位指令中的清除指令(CLR)、置位指令(SETB)、取反指令(CPL)、逻辑与指令(ANL)、逻辑或指令(ORL)以及控制指令中的返回指令(RETI)、无条件跳转指令(AJMP)。
3、理论学习确实感觉枯燥,容易走神,许多地方听老师讲是懂了,但要自己复述一遍却总不全面。课后,需要自己结合keil软件多实践多验证,在真正理解的基础上强化记忆。为接下来的汇编语言编程学习打下必要的基础。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 03:43 , Processed in 0.148476 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表