LoveAmanda 发表于 2024-6-28 10:53:45

学习《STC USB型 真1T 8051 单片机原理及应用-STC8H8K64U》视频打卡

本帖最后由 LoveAmanda 于 2024-6-29 21:22 编辑

第1个视频:

1、老平台8086已经落伍,继续研究的价值不高,但基础还得打牢,对比89c31,at89c51,stc89c51,stc12/15/8/32等多款mcu,选择一款合适的单片机对学生学习和产品应用影响是很大的;
2、最新典型单片机stc8h8k64u资源丰富,方便调试仿真,不仅适合深入学习寄存器编程方式,还可以使用库函数进行开发,且汇编指令兼容51;
3、针对小白,你需要了解阻容感,LED,三极管MOS管等基础的分立器件,对于后续的硬件和软件都是必要的,其工作原理,参数解读是其应用的基础,例如要知道数码管是如何工作的,你必须先要知道LED是怎么工作的;
4、如果你有一定的基础,你可以使用面包板进行基本电路的搭建,再去进行编程;如果你只想做驱动开发,硬件电路只是知道原理即可,那么可以使用stc公司提供的开发板或实验箱等。

LoveAmanda 发表于 2024-6-28 17:52:07

本帖最后由 LoveAmanda 于 2024-6-29 09:42 编辑

第2个视频:
1、万能的点灯=Hello World,LED的闪烁能充分证明你能把开发板、开发环境、编程语言结合起来了,你已经迈入了MCU的门内,至于内部的天马行空就需要你细细品味,慢慢钻研了;
2、Keil软件各种功能的熟练使用能为软件开发提高效率,stc-isp的功能强大,里面不仅仅是下载代码的工具,还支持串口,can,USB等调试助手,甚至常用的软件例程也有,让大家可以省掉很多基础代码的编写,等后续继续学习的时候可以多多关注;
3、计算机基础知识,如进制转换,整形数,浮点数,字符数等都需要提前了解,这样在编程过程中才能更好的理解;其次微型计算机或MCU内部的基本架构由什么组成,充当什么角色,有什么作用。

以下是汇编代码,P1.0的LED闪烁功能

                ORG   0000H                                ;程序执行的起始地址                               
                LJMP        Main                                ;跳转到main函数

               
                ORG   0100H                                ;程序跳转到0100H开始执行
        Main:
                MOV                P1M0,#00H                        ;IO引脚配置
                MOV                P1M1,#00H       
        While:               
                CLR                P1.0                                ;P1.0=0
                LCALL        Delay1s                                ;延时1s
                SETB        P1.0                                ;P1.0=1
                LCALL        Delay1s                                ;延时1s
      LJMP        While

        Delay1s:                                                ;修改R5的值即可更改时间(不精准)
                MOV                R5, #08H                        ;单周期,8次 t0=8*125000=1s
        D3:                                                                ;t1=t2*250=500*250=125000
                MOV                R6, #0FAH               
        D4:                                               
                MOV                R7, #0FAH                        ;t2=250*2=500
        D5:               
                DJNZ        R7, D5                                ;R7=250自减,直到为0跳出循环,双周期
                DJNZ        R6, D4                                ;R6=250自减,直到为0跳出循环,双周期
                DJNZ        R5, D3                                ;R5=100自减,直到为0跳出循环,双周期
                RET       

        END       




LoveAmanda 发表于 2024-6-29 09:10:55

第3个视频:
1、数字逻辑基础,如何理解信号的高低电平,上下边沿以及逻辑运算与或非门是什么;
2、什么是单片机,有什么特点,以及对应的应用场景是哪些,可以这么说,生活中单片机无处不在,比如手机、电脑、音响、电视、玩具等等;
3、当开发单片机的程序时,如果发现代码与现象不一致,那么就需要使用仿真功能,查看单片机内部寄存器的实时工作状态,这样才能更好的查找问题。

LoveAmanda 发表于 2024-6-29 09:59:12

本帖最后由 LoveAmanda 于 2024-6-29 21:16 编辑

第4/5/6/7/8/9/10个视频:
1、单片机内部结构,老旧的51单片机功能简单,主要由运算器、控制器、存储器以及输入输出设备组成,而STC8H内部还集成了看门狗,ADC,IIC,SPI,RTC,PWM,USB等通用接口,方便更多应用场景使用;
2、作为嵌入式软件开发工程师,我们肯定是需要了解数据是如何存储的,是存在RAM还是ROM,特别是STC8单片机的256Byte数据RAM还兼容传统51,如果使用C语言开发,可能数据如何存放由开发环境帮忙放置;如果学习汇编语言,那么就要对每个变量进行对应的地址存放,不同地址访问方式还可能不一样;
3、STC8的IO工作模式兼容传统的双向口,还支持推挽、上下拉输入、开漏模式,从而可以更好的适配外部外设的需求,以及GPIO使用的常用功能,如LED,蜂鸣器等;
4、汇编真的不重要了吗?并没有,汇编也是无处不在的,特别是底层开发的某个节点,对执行效率、内存容量有要求的地方,汇编的优势是C无可比拟的;
5、常用汇编指令需要先熟稔于心,比如CLR、SETB,MOV,ADD,SUBB,MUl,DIV等,而少用的指令比如SWAP交换高四位和低四位这种则在使用时进行查询其用法即可;
6、汇编编程与C程序函数类似,首先需要搭模板框架,然后只需要在对应位置填写用户代码即可。汇编代码会跳来跳去,因此需要提前规划好功能模块或者通过思路画流程图进行编写。功能开发过程中需要通过调试手段进行仿真验证,而不是一次性将所有功能全部完成,避免出现问题会无从下手;
7、俗话说“心中无女人,拔剑自然神”,那么汇编和c的开发也是需要心无旁骛,聚精会神,而不是三天打鱼两天晒网,不断的写、练、调试,在产生bug和解决bug中不断轮回,才能实现你的单片机开发梦想。

汇编模板:

                Value        EQU                30H                        ;变量定义
               
                P20                EQU                P2.0                ;引脚定义
               
                ORG   0000H                                ;程序执行的起始地址                               
                LJMP        Main                                ;跳转到Main函数
               
                ORG   0100H                                ;程序跳转到0100H开始执行
        Main:
                MOV                P1M0,#00H                        ;初始化:IO引脚配置
                MOV                P1M1,#00H       
        While:                                                        ;主循环
                CLR                P20                                        ;P20=0
                LCALL        Delay1s                                ;延时函数调用1s
                SETB        P20                                        ;P20=1
                LCALL        Delay1s                                ;延时函数调用1s
      LJMP        While                                ;回到while循环

        Delay1s:                                                ;修改R5的值即可更改时间(不精准)
                MOV                R5, #08H                        ;单周期,8次 t0=8*125000=1s
        D3:                                                                ;t1=t2*250=500*250=125000
                MOV                R6, #0FAH               
        D4:                                               
                MOV                R7, #0FAH                        ;t2=250*2=500
        D5:               
                DJNZ        R7, D5                                ;R7=250自减,直到为0跳出循环,双周期
                DJNZ        R6, D4                                ;R6=250自减,直到为0跳出循环,双周期
                DJNZ        R5, D3                                ;R5=100自减,直到为0跳出循环,双周期
                RET

        END       






LoveAmanda 发表于 2024-6-29 22:50:34

第11/12个视频:
1、“千呼万唤始出来”,C语言是基础,编程语言都是互通的,将一门语言学精、细、深,那么其它语言上手也都类似;
2、因为C和汇编有重合的关键字如data,xdata等,因此在C编程的时候务必要注意这些细节。C语言编程的数据变量类型很多,需要合适的选择,如标志位只有2个状态,那么使用bit定义即可,而不需要使用long int,int等过犹不及、大炮打鸟的类型,适合才是最好的;
3、单片机开发常用的都是裸机开发,而在使用Free-RTOS操作系统或功能很复杂时,需要使用C语言中的指针、结构体等功能,方便后期移植、维护等,基础不牢,地动山摇。;

LoveAmanda 发表于 2024-6-30 15:54:03

本帖最后由 LoveAmanda 于 2024-6-30 15:56 编辑

后续的视频,比如定时器,外部中断,串口,ADC,IIC,SPI等外设就需要实操进行了,不能像之前学习理论一样,可以通过调试进行基本验证了,而是需要实物进行支撑,正式成为一名专业的“点灯大师”,等待最小系统板回来测试。
最小系统板,支持2个LED,3个按键(1个复位),满足USB和UART下载,并将外部晶振加上,电源使用3.3V。


LoveAmanda 发表于 2024-7-7 22:43:45

本帖最后由 LoveAmanda 于 2024-7-7 22:50 编辑

STC官方论坛积分兑取了STC8H8K64单片机,然后使用嘉立创EDA画sch和pcb,并打板回来自己手工焊接。
最小系统一把成功,看看效果还不错,弄个点灯大师专享例程,跑起来吧。
使用拨码按键作为上下电,P3.2用于USB识别,以及外部中断按键,2个LED,1个复位按键,并将外部晶振引出,方便后续使用焊接。



sqj 发表于 2024-7-7 23:22:25

加油{:4_174:}

LoveAmanda 发表于 2024-7-16 22:10:42

本帖最后由 LoveAmanda 于 2024-7-16 22:14 编辑

这几天又弄了个STC32G12K128的最小系统,跟STC8H电路一样,只是换了个芯片而已,必须跑起来。。。
虽然实物的丝印弄错了,不影响使用哈。。。不用说,芯片肯定是白嫖STC的,打板嘉立创白嫖,现在的时代确实是电子爱好者DIY最好的时代。。。

lyldzxx 发表于 2024-8-17 16:37:12

跟着各路大神学习进步
页: [1] 2
查看完整版本: 学习《STC USB型 真1T 8051 单片机原理及应用-STC8H8K64U》视频打卡