找回密码
 立即注册
查看: 2760|回复: 11

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

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 13:51:00 | 显示全部楼层 |阅读模式
学习陈教授的8051单片机原理及应用-STC8H8K64U教学视频打卡
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 13:56:20 | 显示全部楼层
本帖最后由 hadv 于 2023-11-30 14:04 编辑

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

截图202311301404105478.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 14:15:52 | 显示全部楼层
本帖最后由 hadv 于 2023-11-30 15:22 编辑

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

接着学习了如何配置keil//要记得配置生成hex文件
如何配置端口
视频中教授有一段引用不正常,导致我的程序不能正常编译。
截图202311301413182303.jpg
要改成#include "stc8h.h"
截图202311301413349608.jpg
不然要报错

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



截图202311301413136659.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 14:27:00 | 显示全部楼层
本帖最后由 hadv 于 2023-11-30 15:23 编辑

第三节打卡这讲理论的比较多,实际干货操作就是STC8H8K64U的在线仿真操作了。
要记得勾选 run main      设置仿真后记得断电一下 哈哈!
截图202311301421066897.jpg
截图202311301423312588.jpg
截图202311301423577515.jpg
老师仿真的时候卡死,是因为频率没设置对 要断电 要断电
截图202311301426284645.jpg
截图202311301426538477.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 14:38:56 | 显示全部楼层
本帖最后由 hadv 于 2023-11-30 15:23 编辑

第四讲 这一讲基本上都是理论 讲解了单片机的内部结构
截图202311301436116805.jpg
                  微型计算机的内部框架结构 控制器 alu 组成cpu     通过ab db cb 总线 链接存储器 io     io 连接 io 设备
                   传统8051单片机的内部结构
                            包含中央处理器 程序存储器 4kROM 128K RAM
                            2个定时器 4给8为io 1个串口
                             以及io复用总线(ab db cb)

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


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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 14:42:36 | 显示全部楼层
本帖最后由 hadv 于 2023-11-30 14:45 编辑

第五讲 主要讲存储器空间 单片机引脚
截图202311301441081803.jpg 截图202311301441356587.jpg
1. 讲述了特殊功能寄存器(SFR),直接寻址,扩展特殊功能寄存器(XFR),指令:MOVX A,@DPTR
2. 扩展数据存储器,指令:MOVX,@DPTR
3. 单片机引脚(小圆点处为第一脚):电源引脚,外接晶体引脚,控制和复位引脚,输入输出引脚(IO脚),IO脚可实现开关量的输入输出,及复用功能。
           引脚简介
                      VCC/AVcc   5v
                      Gnd/AGnd  接电源地
                      晶振         基本不用 用做普通io
                      ALE          没啥用
                      NRST        可做复位脚
截图202311301442329037.jpg
截图202311301443136129.jpg
IO四种工作模式:
①准双口/弱上拉模式
②推挽输入/强上拉模式
③仅输入/高阻模式
④开漏模式(外接上拉电阻)
  

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 14:49:15 | 显示全部楼层
本帖最后由 hadv 于 2023-11-30 14:52 编辑

第六讲

1.讲解了IO口的复用功能,其中比较重要的是p3口,具有外部终端输入,串口1(程序下载和仿真调试)功能。接着介绍了上拉(下拉)电阻,以及拉电流,灌电流等。随后讲解了三极管控制电路及原理。介绍了IO口外部状态输入时,在软件设置延时,然后在读取状态。
最后对总线扩展方式进行讲述。
截图202311301448126898.jpg
    I/O 的复用
             P0     地址 数据总线  adc uart3 4  t3 4时钟 t3 4脉冲 pwm
             P1     ADC PWM  SPI  UART2 3  系统时钟输出  晶振  i2c
             P2     地址总线高8位  spi i2c pwm
             P3     外部中断 计数器 spi i2c 比较器  uart1  pwm
             p4     spi  读写控制信号 uart2 地址锁存信号
             P5     uart 3 4  比较器  rst  系统时钟输出  spi   pwm
             P6     PWM
             P7     PWM  I2C
      I/O 的使用
             上拉的电阻     现在内部集成4.1k
             下拉电阻        集成10k
              三极管控制    10k上拉vcc   15k 限流连接到基极  vt 集电极通过电阻拉到vcc 接OUT  发射机接地
      I/O 外部状态的输入
             记得加延时,速度太快读的不对

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

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
截图202311301449125377.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 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
截图202311301455097016.jpg
3、操作数
可以是数据,也可以是地址。数据只能是整数,不能是小数;数据是十六进制且是以字母开头时,该数据应该加一个前导0;数据前有前缀#,则表示数据是立即数,如果没有前缀#,则数据为直接地址
截图202311301455296811.jpg
4、指令格式、符号
格式:[标号: ] 操作码助记符 [第一操作数][, 第二操作数][, 第三操作数] [; 注释]
指令常见符号:A:累加器ACC  B:寄存器B  C:进位借位标志    addr8:8位内部RAM地址。  bit:位地址,内部RAM中的可寻址位和SFR中的可寻址位。  @:间接寻址

5、寻址方式
    1、立即寻址  指令中的源操作数是立即数。
截图202311301456249672.jpg
    2、寄存器寻址  指定寄存器的内容为操作数,对寄存器ACC、B、DPTR和CY寻址时,具体的寄存器已隐含在其操作码中。而对选定的8个工作寄存器R7~R0,则用指令操作码的低3位指明所用的寄存器。
    截图202311301456488921.jpg

3、直接寻址  指令中包含了操作数的地址。
截图202311301457101414.jpg
    4、寄存器间接寻址。指定某一个寄存器的内容作为操作数地址,使用时,前面加“@”表示间接寻址。

截图202311301457341958.jpg
   5、变址寻址  由偏移量寄存器和基址寄存器DPTR或PC相加所得结果作为操作数地址。例:MOVEC A, @A + PC
   截图202311301458429708.jpg
  6、相对寻址。主要用于相对跳转指令。注:该偏移量有正负号,所转移的范围为相对于当前PC值的 -128~+127 之间。
截图202311301458552336.jpg

7、位寻址。对位地址空间的每一位进行运算和传送。
截图202311301459183515.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 15:02:49 | 显示全部楼层
第八讲打开
数据传送类指令mov
截图202311301501449534.jpg
              相当于 =
              对psw没用
              
             MOV <目的字节>,<源字节>

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

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

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

                    MOV Rn, #data8             ;(Rn) <-- #data8
截图202311301502191214.jpg

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

截图202311301502474993.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:40
  • 最近打卡:2025-05-11 10:23:56

2

主题

36

回帖

154

积分

注册会员

积分
154
发表于 2023-11-30 15:07:34 | 显示全部楼层
本帖最后由 hadv 于 2023-11-30 15:09 编辑

第九讲 继续汇编指令
注意     c语言不能用  .  取出位很麻烦 要移位后做逻辑运算
一、位操作指令:
截图202311301505316406.jpg
截图202311301505505065.jpg
完成位传送,位状态控制、位逻辑操作、位条件转移、控制转移类等功能,一共17条。可被汇编程序识别的位地址表示方式:
(1)直接使用位地址。
(2)写成“字节地址.位号”,例如:0B8H.0
(3)位寄存器的定义名称,例如C、EA等
(4)对于位寻址寄存器,可以用“字节寄存器名.位号”,例如P1.0、PSW.4
(5)伪指令事先定义的符号地址,EQU


接下来分别介绍:
1、位数据传送指令
    MOV  C, bit ; (C) ⬅ (bit)
    MOV  bit, C ; (bit) ⬅ (C)
    注:其中一个操作数必须为累加器(进位标志CY)
2、位状态控制指令
    位清零指令
    CLR  bit ; (bit) ⬅ 0
    CLR  C ; (C) ⬅ 0
    位求反指令
    CPL  bit ; (bit) ⬅ (/bit)
    CPL  C ; (C) ⬅ (/C)
    位置位指令
    SETB  bit ; (bit) ⬅ 1
    SETB  C ; (C) ⬅ 1
3、位逻辑操作
    位逻辑与
    ANL  C, bit ; (C) ^ (bit) 注:^为与符号
    ANL  C, /bit ; (C) ^ (bit)
    位逻辑或
    ORL  C, bit ; (C) ⬅ (C) v (bit) 注:v为或符号
    ORL  C, /bit ; (C) ⬅ (C) v (bit)
4、位条件转移
    判断进位标志C
    JC  rel ;  若(CY) == 1, 则(PC) ⬅ (PC) + rel , 否则顺序执行
    JNC  rel ; 若(CY) == 0, 则(PC) ⬅ (PC) + rel , 否则顺序执行
    判断直接寻址位
    JB  bit, rel
    JNB  bit, rel
    JBC  bit, rel ;  若(bit) == 1, 则(PC) ⬅ (PC) + rel, (bit) ⬅ 0
5、控制转移类指令
    控制程序走向,分为:
    程序转移指令
    LJMP  addr16
    AJMP  addr11
    SJMP  rel
    JMP  @A + DPTR
    JZ  rel
    JNZ  rel
    CJNZ、DJNZ
    子程序调用
    LCALL  addr16
    ACALL  addr11
    RET ;  子程序返回
    其他:RETI ;  中断返回  NOP ;  空操作
具体看下 下面的例子
截图202311301509256096.jpg

截图202311301506398293.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-1 16:07 , Processed in 0.144546 second(s), 94 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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