找回密码
 立即注册
查看: 2423|回复: 22

【试验箱已收到】看视频学习STC8H8K64U心得

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-4 09:50:24 | 显示全部楼层 |阅读模式
本帖最后由 lhj 于 2023-11-13 08:11 编辑

第一讲学习了单片机的发展历程,了解单片机发展史。
截图202311040949062289.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-4 09:55:39 | 显示全部楼层
第二讲学习了keil新建工程,了解STC IO 口状态代码,也可以直接用STC ISP生成IO口配置代码,直接复制粘贴到程序中,非常方便。
截图202311040952472464.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-8 15:10:03 | 显示全部楼层
第三讲,学习逻辑运算。掌握真值表,表示如下:   逻辑运算            
                              逻辑与 Y=A^B   见0则0 相当于串联
                                         真值表         A       B       A^B
                                                            0        0         0
                                                            1        0         0
                                                            0        1         0
                                                            1        1         1



                              逻辑或 Y=A+B   见1则1 相当于并联
                                         真值表         A       B       A^B
                                                            0        0         0
                                                            1        0         1
                                                            0        1         1
                                                            1        1         1

                    
                              非门    Y = ~A       相反
                                        真值表         A   ~A
                                                       0    1
                                                       1    0
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-8 15:11:47 | 显示全部楼层
本帖最后由 lhj 于 2023-11-8 15:22 编辑

第四讲,学习了单片机内部结构,大致了解如下:
               单片机的内部结构
                  微型计算机的内部框架结构
                             控制器 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 等

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-8 15:29:31 | 显示全部楼层
第五讲,学习了存储空间和存储器,有些还是不太明白,地址和数据的读写等,还不太熟悉,需要后面反复学习。

截图202311081529268778.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-8 15:38:07 | 显示全部楼层
第六讲,学习了IO的工作模式,高阻,上拉,下拉,推挽,准双向等,基本上了解了,不过汇编语言是真不了解,还是C语言好理解一点。

截图202311081538016058.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-8 15:50:23 | 显示全部楼层
第七讲,STC8H8K64U汇编进阶,依然是汇编,还是云里雾里,汇编可移植性差,没有C语言灵活,但汇编执行代码效率高,利用率高,程序HEX大小会比C语言的小很多,不过现在单片机的内存现在都很大了,多大的字节都装得下,这个可以忽略不计了。以后我还是以C 为学习方向,汇编听听过吧,了解一下。

截图202311081550197289.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-8 15:58:19 | 显示全部楼层
第八讲,学习汇编数据传送指令
MOV <目的字节>,<源字节>

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

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

                    MOV @Ri, #data8           ;((RI)) <-- #data8               

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

在MAIN 种添加简单的汇编程序
                   MOV R0     #50H
                   MOV @R0  #56H


截图202311081554597416.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-9 13:46:15 | 显示全部楼层
第九讲,汇编指令二(位操作,控制转移)学习:第一次学习汇编,还是比较难理解的,其实很早之前就接触过STC芯片了,大该在2013年左右,公司的产品上用到STC,真正开始学习STC芯片的还是从2017年开始的,买的普中的51学习开发板,当时开发了一个USB串口键盘,公司已商用,后来因为公司单片机用的少,慢慢单片机这一块就遗弃了,想想是很可惜的,没有坚持下来,其实我对单片机一直是比较感性趣的,没有一直坚持学习,希望通过这次视频系统的学习,能够一直坚持下去,同时也加了很多学习群,到时希望群里的大佬能多多指导。
一、位操作指令:
    位传送,位状态控制、位逻辑操作、位条件转移等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
    ANL    C, /bit

    位逻辑或
    ORL    C, bit
    ORL    C, /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


截图202311091332589688.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-05-03 17:56:40

10

主题

165

回帖

1241

积分

金牌会员

积分
1241
发表于 2023-11-9 13:54:03 | 显示全部楼层
本帖最后由 lhj 于 2023-11-9 14:00 编辑

第十讲,汇编语言程序设计的一般步骤和基本框架:C语言和汇编语言的区别:
汇编语言:效率高,对硬件的可操控性更强,体积小,不易维护,可移植性很差
C语言:效率比较低,硬件可操控性比较差,目标代码体积大,容易维护,可移植性很好
汇编语言运行效率高的原因:
1、汇编语言实质上是机器语言的助记符。 CPU只能运行它所支持的指令集,而这些指令集当中的每条指令都是一些二进制数的序列,也就是“0”和“1”的有序组合;“0”和“1”的组合不便于程序员的记忆因此有了“MOV A 0x40”等这样的助记符。所以汇编语言编译成CPU可执行的机器语言其实只要做一个翻译的动作就好了。而C语言编写完程序后,需要通过编译器将C语言编译成与相应CPU指令集对应的机器语言。汇编语言与机器语言是一一对应的。但是C语言呢?当然没这么好事了。C语言的语法是固定的,C语言编写的程序要编译成CPU能读懂的机器语言指令没办法一一对应,因此需要有编译规则了,所以运行效率低一些。也可以说,C语言,是面向程序员的语言,而汇编语言是直接面向CPU的语言。
2、汇编是直接面对CPU的语言,只要是在指令集支持的范围内,汇编语言可以直接而灵活地管理包括特殊功能寄存器、通用寄存器、存储单元的每一个字节,甚至是每一个bit。C语言对内存的使用及管理功能也是很强大的,但毕竟还是受制于语法。举个最简单的例子,C语言当中没有对应三字节或是五字节的变量类型,要么int型,要么long型,所以每次申请必须是固定的字节数,势必造成内存使用上的浪费。而大部份汇编语言根本没有这样的语法,在伪指令的帮助下(其实也只是提高可读性),汇编语言程序可以使用任意字节数的变量,当然处理起来比C语言麻烦得多,最终还是一个字节一个字节地拼接处理,而用C语言写程序就轻松了,不用管这些,最终编译器会搞定嘛。而轻松的代价就是造成了浪费。而内存使用效率不高同时也会影响到整个程序的整体效率。??
C语言与汇编的不同适用场合
1:若只有较简单的逻辑操作、逻辑算法、简单运算,使用汇编会得到较为精准的代码,但用c也同样可以做到。
2:若掺有复杂运算、浮点运算、非线性方程等,汇编难度很大,而C语言作为一种高级语言,有简洁紧凑,使用灵活的语法机制,编写复杂程序容易得多。
3:每一款处理器各自的汇编语法大都不一样,若仅使用汇编,可扩充性、可移植性都很差,用c就会好的多。
4:对硬件进行初始化的操作,使用汇编语言。
截图202311091353308253.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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