【打卡】STC8051单片机原理及应用-STC8H8K64U学习记录
第一课主要是对单片机进行介绍
后面对实验箱进行介绍说明
可以看出,实验箱的功能还是很全面的
最后是下载程序的步骤
接下来继续学习
第二课
点灯大师
点灯的步骤:
后面讲述了STC_ISP软件的使用:其中几个按键步骤,按住INT0,再按电源键,松开电源键,再松开INT0,扫描串口出现HID1
接着讲了一些基础知识,之前有过一些了解,看了又一次加深了印象
本节课直接化身理论点灯大师,个人感觉这种先直接给出实验现象之后讲解的方式还是很好的,能有一个直观的认识,也更容易有学下去的动力,继续学习
本帖最后由 bystc 于 2023-9-22 20:35 编辑
第三课
数字逻辑与基本数字电路
这些知识之前学数电模电也了解过一些,但是不用的话很快就忘了,现在重新拾起来,但是结合动手操作,理解应该会更深一些
以上分别为逻辑与,逻辑或,逻辑非的符号示意图
之后介绍了一些应用
单片机广泛应用在智能仪器,工业农业实时监控,计算机网络和通信领域,家用电器,医疗设备,汽车设备等等领域。
接着介绍了程序仿真,使用Keil 仿真的一些设置。主要包括设置单片机型号,选择使用USB口进行仿真,将所选目标单片机设置为仿真芯片
本帖最后由 bystc 于 2023-9-24 21:00 编辑
第四课 单片机内部结构
首先讲述了计算机的内部结构
接着引出单片机内部结构,传统8051单片机结构如下,其中cpu是由运算器和控制器组成的。
STC8H8K64U的结构如下
单片机CPU由运算器和控制器组成,其中重点介绍了运算器中的程序状态标志寄存器PSW。
单片机程序存储器和数据存储器是独立编址的,分为程序flash存储器,内部数据存储器,扩展数据存储器,其中特殊功能寄存器与内部数据存储器高128字节地址重复。特殊功能寄存器只能直接寻址访问。 第五课 存储器空间 单片机引脚
1. 讲述了特殊功能寄存器(SFR),直接寻址,扩展特殊功能寄存器(XFR),指令:MOVX A,@DPTR2. 扩展数据存储器,指令:MOVX,@DPTR3. 单片机引脚:电源引脚,外接晶体引脚,控制和复位引脚,输入输出引脚(IO脚),IO脚可实现开关量的输入输出,及复用功能。IO四种工作模式:①准双口/弱上拉模式②推挽输入/强上拉模式③仅输入/高阻模式④开漏模式(外接上拉电阻)
本帖最后由 bystc 于 2023-9-24 21:21 编辑
第六课 IO口工作模式 汇编语言1.讲解了IO口的复用功能,其中比较重要的是p3口,具有外部终端输入,串口1(程序下载和仿真调试)功能。接着介绍了上拉(下拉)电阻,以及拉电流,灌电流等。随后讲解了三极管控制电路及原理。介绍了IO口外部状态输入时,在软件设置延时,然后在读取状态。最后对总线扩展方式进行讲述。2. 简述了汇编语言,一些常用伪指令 1、设置起始地址
ORG addr16
2、定义字节DB
<标号:> DB <项或项表,多个逗号分隔>
3、定义字DW
<标号:> DW <项或项表,多个逗号分隔>
4、为标号复制EQU
<标号> EQU 数值或表达式
5、DATA指令
符号名 DATA 表达式
注:将内部RAM的地址赋值给指定的符号名,表达式(00H~FFH)
6、XDATA指令
符号名 XDATA 表达式
7、定义位命令BIT
符号名 BIT 位地址
8、文件包含
$INCLUDE (文件名)
例:$INCLUDE (STC8H.INC)
9、源程序结束
END
汇编语言这里相对抽象一些,需要多加学习,结合51系列单片机汇编语言指令框架,更好的理解单片机汇编语言。 本帖最后由 bystc 于 2023-9-25 11:41 编辑
第七课 汇编语言进阶 宏编程1、助记符语言描述 MOV 是数据的传送, ADD 是数据的相加运算,ANL 是数据的逻辑与运算,#8BH,带井号,是立即数
2、操作码数据传送类:MOV、MOVX、MOVC,指明操作对象从哪来,到哪去
数据操作类:ADD、SUBB、MUL、DIV,一般靠运算器完成,需要两个操作对象程序控制类:AJMP(SJMP、LJMP) JZ、JC、JB(JNZ、JNC、JNB) ACALL(LCALL)RET CJNE
逻辑操作类:ANL、ORL、XRL
3、操作数可以是数据,也可以是地址。数据只能是整数,不能是小数;数据是十六进制且是以字母开头时,该数据应该加一个前导0;数据前有前缀#,则表示数据是立即数,如果没有前缀#,则数据为直接地址4、指令格式、符号
格式:[标号: ] 操作码助记符 [第一操作数][, 第二操作数][, 第三操作数] [; 注释]
指令常见符号:A:累加器ACCB:寄存器BC:进位借位标志 addr8:8位内部RAM地址。bit:位地址,内部RAM中的可寻址位和SFR中的可寻址位。@:间接寻址5、寻址方式
1、立即寻址指令中的源操作数是立即数。
2、寄存器寻址指定寄存器的内容为操作数,对寄存器ACC、B、DPTR和CY寻址时,具体的寄存器已隐含在其操作码中。而对选定的8个工作寄存器R7~R0,则用指令操作码的低3位指明所用的寄存器。
3、直接寻址指令中包含了操作数的地址。
4、寄存器间接寻址。指定某一个寄存器的内容作为操作数地址,使用时,前面加“@”表示间接寻址。
5、变址寻址由偏移量寄存器和基址寄存器DPTR或PC相加所得结果作为操作数地址。例:MOVEC A, @A + PC
6、相对寻址。主要用于相对跳转指令。注:该偏移量有正负号,所转移的范围为相对于当前PC值的 -128~+127 之间。
7、位寻址。对位地址空间的每一位进行运算和传送。
上面是七种寻址方式的ppt😊接下来继续学习
本帖最后由 bystc 于 2023-9-25 16:29 编辑
第八课 汇编指令 1.传送指令:MOV
主要是内部数据存储器和特殊功能寄存器: MOV <目的字节>, <源字节>
学习
数据传送类指令注意事项:
1、向累加器传送数据时,会影响PSW中的P标志
2、执行传送指令时,源地址中的内容不变
3、特殊功能寄存器SFR只能使用直接寻址
4、80H~FFH单元只能使用@Ri间接寻址方式
5、累加器A压栈和出栈时,应使用 PUSH ACC 或者 POP ACC
接下来是几个例子:
接下来继续学习
本帖最后由 bystc 于 2023-9-27 13:06 编辑
第九课 汇编指令二
话说之前在移动端写的,看着格式没问题,到PC端格式居然乱了
一、位操作指令:
完成位传送,位状态控制、位逻辑操作、位条件转移、控制转移类等功能,一共17条。可被汇编程序识别的位地址表示方式:
(1)直接使用位地址。
(2)写成“字节地址.位号”,例如:0B8H.0
(3)位寄存器的定义名称,例如C、EA等
(4)对于位寻址寄存器,可以用“字节寄存器名.位号”,例如P1.0、PSW.4
(5)伪指令事先定义的符号地址,EQU
接下来分别介绍:
1、位数据传送指令
MOVC, bit ; (C) ⬅ (bit)
MOVbit, C ; (bit) ⬅ (C)
注:其中一个操作数必须为累加器(进位标志CY)
2、位状态控制指令
位清零指令
CLRbit ; (bit) ⬅ 0
CLRC ; (C) ⬅ 0
位求反指令
CPLbit ; (bit) ⬅ (/bit)
CPLC ; (C) ⬅ (/C)
位置位指令
SETBbit ; (bit) ⬅ 1
SETBC ; (C) ⬅ 1
3、位逻辑操作
位逻辑与
ANLC, bit ; (C) ^ (bit) 注:^为与符号
ANLC, /bit ; (C) ^ (bit)
位逻辑或
ORLC, bit ; (C) ⬅ (C) v (bit) 注:v为或符号
ORLC, /bit ; (C) ⬅ (C) v (bit)
4、位条件转移
判断进位标志C
JCrel ;若(CY) == 1, 则(PC) ⬅ (PC) + rel , 否则顺序执行
JNCrel ; 若(CY) == 0, 则(PC) ⬅ (PC) + rel , 否则顺序执行
判断直接寻址位
JBbit, rel
JNBbit, rel
JBCbit, rel ;若(bit) == 1, 则(PC) ⬅ (PC) + rel, (bit) ⬅ 0
5、控制转移类指令
控制程序走向,分为:
程序转移指令
LJMPaddr16
AJMPaddr11
SJMPrel
JMP@A + DPTR
JZrel
JNZrel
CJNZ、DJNZ
子程序调用
LCALLaddr16
ACALLaddr11
RET ;子程序返回
其他:RETI ;中断返回NOP ;空操作
例子:
第十课 汇编语言设计步骤及基本框架
1.简要介绍汇编语言设计的基本步骤
2.汇编语言的框架
3.讲解了典型汇编语言程序设计的例子:
汇编语言还需多加理解,才能掌握。
页:
[1]
2