hadv 发表于 2023-11-30 13:51:00

陈桂友教授《8051单片机原理及应用-8H8K64U》学习打卡记录

学习陈教授的8051单片机原理及应用-STC8H8K64U教学视频打卡

hadv 发表于 2023-11-30 13:56:20

本帖最后由 hadv 于 2023-11-30 14:04 编辑

第一集
单片机的发展介绍和这个视频让我对STC8H8K64U有了一个初步的了解,我知道了它是一款什么样的单片机,它有什么特点,它可以做什么事情,它和我以前学过的8051有什么不同
二级管 银色为负极 正极流入负极流出 一般发光二极管的工作电流5-10ma 。三极管两种分类pnp和npn的三种状态,晶振和数码管的工作原理。数码管就是由8个二极管组成,分共阴和共阳。




hadv 发表于 2023-11-30 14:15:52

本帖最后由 hadv 于 2023-11-30 15:22 编辑

第二讲打卡
首先看原理图如何让led4亮,首先要让单片机p4.0为0让三极管导通,p6.0为1 led4才会亮

接着学习了如何配置keil//要记得配置生成hex文件
如何配置端口
视频中教授有一段引用不正常,导致我的程序不能正常编译。

要改成#include "stc8h.h"

不然要报错

程序也比较简单。 后面的理论一直坚持听下去了!{:4_167:}{:4_167:}{:4_167:}{:4_167:}



hadv 发表于 2023-11-30 14:27:00

本帖最后由 hadv 于 2023-11-30 15:23 编辑

第三节打卡这讲理论的比较多,实际干货操作就是STC8H8K64U的在线仿真操作了。
要记得勾选 run main      设置仿真后记得断电一下 哈哈!



老师仿真的时候卡死,是因为频率没设置对 要断电 要断电


hadv 发表于 2023-11-30 14:38:56

本帖最后由 hadv 于 2023-11-30 15:23 编辑

第四讲 这一讲基本上都是理论 讲解了单片机的内部结构

                  微型计算机的内部框架结构 控制器 alu 组成cpu   通过ab db cb 总线 链接存储器 io   io 连接 io 设备
                   传统8051单片机的内部结构
                            包含中央处理器 程序存储器 4kROM 128K RAM
                            2个定时器 4给8为io 1个串口
                           以及io复用总线(ab db cb)


                  stc8h8k64u的单片机的内部构成
                           8051内核8位数据总线 与16位地址总线
                           大量的io口 定时器
                           还有dma
                           有硬件i2c spi 等


最后就是挂外部晶振的方法 和注意事项 。不起震要么设错了,要么就是电容用大了

hadv 发表于 2023-11-30 14:42:36

本帖最后由 hadv 于 2023-11-30 14:45 编辑

第五讲 主要讲存储器空间 单片机引脚

1. 讲述了特殊功能寄存器(SFR),直接寻址,扩展特殊功能寄存器(XFR),指令:MOVX A,@DPTR
2. 扩展数据存储器,指令:MOVX,@DPTR
3. 单片机引脚(小圆点处为第一脚):电源引脚,外接晶体引脚,控制和复位引脚,输入输出引脚(IO脚),IO脚可实现开关量的输入输出,及复用功能。
         引脚简介
                      VCC/AVcc   5v
                      Gnd/AGnd接电源地
                      晶振         基本不用 用做普通io
                      ALE          没啥用
                      NRST      可做复位脚


IO四种工作模式:
①准双口/弱上拉模式
②推挽输入/强上拉模式
③仅输入/高阻模式
④开漏模式(外接上拉电阻)


hadv 发表于 2023-11-30 14:49:15

本帖最后由 hadv 于 2023-11-30 14:52 编辑

第六讲

1.讲解了IO口的复用功能,其中比较重要的是p3口,具有外部终端输入,串口1(程序下载和仿真调试)功能。接着介绍了上拉(下拉)电阻,以及拉电流,灌电流等。随后讲解了三极管控制电路及原理。介绍了IO口外部状态输入时,在软件设置延时,然后在读取状态。
最后对总线扩展方式进行讲述。

    I/O 的复用
             P0   地址 数据总线adc uart3 4t3 4时钟 t3 4脉冲 pwm
             P1   ADC PWMSPIUART2 3系统时钟输出晶振i2c
             P2   地址总线高8位spi i2c pwm
             P3   外部中断 计数器 spi i2c 比较器uart1pwm
             p4   spi读写控制信号 uart2 地址锁存信号
             P5   uart 3 4比较器rst系统时钟输出spi   pwm
             P6   PWM
             P7   PWMI2C
      I/O 的使用
             上拉的电阻   现在内部集成4.1k
             下拉电阻      集成10k
            三极管控制    10k上拉vcc   15k 限流连接到基极vt 集电极通过电阻拉到vcc 接OUT发射机接地
      I/O 外部状态的输入
             记得加延时,速度太快读的不对

   单片机应用系统的典型构成
            拓展RAM用不上
                           P0P2 占用当作数据 地址总线
                           ALE 接地址锁存器
                           通过的地址总线给锁存器地址
                           数据总线送数据
            
   汇编
      学习原因
            有助于理解原理
            移植会用
         伪指令                  

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

hadv 发表于 2023-11-30 14:58:08

本帖最后由 hadv 于 2023-11-30 14:59 编辑

第七讲
汇编语言进阶 宏编程
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、位寻址。对位地址空间的每一位进行运算和传送。


hadv 发表于 2023-11-30 15:02:49

第八讲打开
数据传送类指令mov

            相当于 =
            对psw没用
            
             MOV <目的字节>,<源字节>

                  MOV A, #data8               ;(A) <-- #data8

                  MOV addr8, #data8         ;(addr8) <-- #data8

                  MOV @Ri, #data8         ;((RI)) <-- #data8                注意2种寻址方式

                  MOV Rn, #data8             ;(Rn) <-- #data8


数据传送类指令注意事项:
1、向累加器传送数据时,会影响PSW中的P标志
2、执行传送指令时,源地址中的内容不变
3、特殊功能寄存器SFR只能使用直接寻址
4、80H~FFH单元只能使用@Ri间接寻址方式
5、累加器A压栈和出栈时,应使用 PUSH ACC 或者 POP ACC


hadv 发表于 2023-11-30 15:07:34

本帖最后由 hadv 于 2023-11-30 15:09 编辑

第九讲 继续汇编指令
注意   c语言不能用.取出位很麻烦 要移位后做逻辑运算
一、位操作指令:


完成位传送,位状态控制、位逻辑操作、位条件转移、控制转移类等功能,一共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
查看完整版本: 陈桂友教授《8051单片机原理及应用-8H8K64U》学习打卡记录