找回密码
 立即注册
楼主: ad***

视频教学:《STC32位8051单片机原理及应用》,200万大奖, 送实验箱; 冲哥版

   火... [复制链接]
  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 73 天

    [LV.6]常住居民II

    2

    主题

    140

    回帖

    578

    积分

    高级会员

    积分
    578
    发表于 2024-4-19 12:04:34 | 显示全部楼层
    好学天上 发表于 2024-4-18 15:23
    第四集 点灯打卡

    不知道为啥看视频一直卡住,刷新一下动一下,网速应该是没问题的呀 ...

    好好学
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 73 天

    [LV.6]常住居民II

    2

    主题

    140

    回帖

    578

    积分

    高级会员

    积分
    578
    发表于 2024-4-19 12:04:56 | 显示全部楼层
    孙大圣 发表于 2024-4-18 10:11
    还能申请试验箱吗

    好好学
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 73 天

    [LV.6]常住居民II

    2

    主题

    140

    回帖

    578

    积分

    高级会员

    积分
    578
    发表于 2024-4-19 12:05:19 | 显示全部楼层
    科学妞妞 发表于 2024-4-18 08:03
    希望冲哥教程尽快更新,期待学习更多的知识,  同意你的建议,一起希望

    好好学
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    0

    主题

    78

    回帖

    248

    积分

    中级会员

    积分
    248
    发表于 2024-4-19 15:49:45 | 显示全部楼层
    第八集学习笔记:蜂鸣器 1、有源和无源两种 2、控制原理 低电平鸣响 3、电磁炉应用 三个按键八个LED 一个蜂鸣器 程序中设立标志变量,~按位全部取反。
    今天的内容有些难度,已下载视频多看看,画画流程图,需要好好消化。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 09:09
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    0

    主题

    15

    回帖

    68

    积分

    注册会员

    积分
    68
    发表于 2024-4-19 15:57:58 | 显示全部楼层
    本帖最后由 yzk_hi 于 2024-4-19 16:02 编辑

    第三集  跟着冲哥搭建开发环境 这应该是开发单片机最基础的东西了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    0

    主题

    78

    回帖

    248

    积分

    中级会员

    积分
    248
    发表于 2024-4-20 09:18:37 | 显示全部楼层
    第九集学习笔记:1、认识数码管 LED数码管 尾缀A共阳 尾缀K共阴 实验板上是共阳的。2、显示原理 码表 Excel中DEC2HEX函数实现十进制转十六进制,位选 段选 3、用数组定义0-9的内码 延时0-9循环 按键控制加减。静态显示。

    第十集学习笔记:1、数码管动态显示刷新原理 延时不能太短1ms 总体一个循环结束时间不能大于20ms 动态刷新视觉残留 2、8为数码管同时点亮 新建显示内容的数组 数组嵌套 /取整 %取余 。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 08:40
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    1

    主题

    20

    回帖

    103

    积分

    注册会员

    积分
    103
    发表于 2024-4-20 11:40:12 | 显示全部楼层
    第六集打卡滴滴滴 打卡贴STC32G128K芯片学习打卡贴
    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7834
    (出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)
    好好学习天天向上
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    0

    主题

    78

    回帖

    248

    积分

    中级会员

    积分
    248
    发表于 2024-4-20 21:47:39 | 显示全部楼层
    第十一集学习笔记:1、定时器的作用意义 定时器是定时器计数器的统称,可以实现硬件计时,脉冲计数,代替长时间delay  2、STC32G定时器 使用T0定时器实现1ms中断,TO-GATE为0,加法计数器,对脉冲进行计数,TCON控制寄存器 3、简单应用 4、快速使用 在STC-ISP软件中使用定时器计算器可以快速生成所需的代码。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-21 09:04
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    5

    回帖

    26

    积分

    新手上路

    积分
    26
    发表于 2024-4-21 09:25:49 | 显示全部楼层

    冲哥STC32G单片机视频教程_笔记
            第一集到第三集跳过。
           
    第四集上:建立工程点亮第一颗LED灯上
    第四集下:建立工程点亮第一颗LED灯下
            硬件电路(略)
            软件:
            在桌面上新建文件夹0.DEMO,打开keil251,新建工程Demo保存到0.DEMO中,选择芯片类型为STC MCU,芯片型号为STC32G12K128,新建.c文件,命名为Demo.c,将Demo.c保存到0.DEMO中,把Demo.c文件添加到Demo工程中。
            编写Demo.c文件,
    #include "COMM/stc.h"                //调用头文件
    #include "COMM/usb.h"

    char *USER_DEVICEDESC = NULL;
    char *USER_PRODUCTDESC = NULL;
    char *USER_STCISPCMD = "@STCISP#";
           
    //sbit P40 = P4^0;        //三极管控制引脚
    //sbit P60 = P6^0;        //LED控制引脚
    //sbit P61 = P6^1;        //LED控制引脚

    void sys_init();        //函数声明

    void main()                                        //程序开始运行的入口
    {
            sys_init();                                //USB功能+IO口初始化
            usb_init();                                //usb库初始化
            EA = 1;                                        //CPU开放中断,打开总中断。
           
            while(1)                //死循环
            {
                    P40 = 0;        //三极管引脚输出低电平
                    P60 = 0;        //led4引脚输出低电平
                    P61 = 0;        //led5引脚输出低电平
            }
    }
    void sys_init()                //函数定义
    {
        WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
        EAXFR = 1; //扩展寄存器(XFR)访问使能
        CKCON = 0; //提高访问XRAM速度

             P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
        P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
        P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
        P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
        P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
        P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
        P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
        P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
           
        P3M0 = 0x00;
        P3M1 = 0x00;
       
        P3M0 &= ~0x03;
        P3M1 |= 0x03;

        //设置USB使用的时钟源
        IRC48MCR = 0x80;    //使能内部48M高速IRC
        while (!(IRC48MCR & 0x01));  //等待时钟稳定

        USBCLK = 0x00;        //使用CDC功能需要使用这两行,HID功能禁用这两行。
        USBCON = 0x90;
    }
    在冲哥_教学视频配套附件-20230731中的任意一个例程中找到COMM文件夹,复制到所建的工程文件夹中,把COMM文件夹中的文件添加到工程中。
           
    第五集:C语言运算符和进制数入门上
            1.C语言 printf函数的实现
    首先实现函数printf的打印输出,要实现printf打印输出,要在程序主函数中添加
                    if( DeviceState != DEVSTATE_CONFIGURED )         //判断USB是否连接成功
                            continue;
                    if( bUsbOutReady )                                                                //判断有没有接收到数据
                    {
                            usb_OUT_done();
                    }
    语句,程序为:
    #include "COMM/stc.h"                //调用头文件
    #include "COMM/usb.h"

    char *USER_DEVICEDESC = NULL;
    char *USER_PRODUCTDESC = NULL;
    char *USER_STCISPCMD = "@STCISP#";
           
    //sbit P40 = P4^0;        //三极管控制引脚
    //sbit P60 = P6^0;        //LED控制引脚
    //sbit P61 = P6^1;        //LED控制引脚

    void sys_init();        //函数声明

    void main()                                        //程序开始运行的入口
    {
            sys_init();                                //USB功能+IO口初始化
            usb_init();                                //usb库初始化
            EA = 1;                                        //CPU开放中断,打开总中断。
           
            while(1)                //死循环
            {
                    if( DeviceState != DEVSTATE_CONFIGURED )         //
                            continue;
                    if( bUsbOutReady )                                                               
                    {
                            usb_OUT_done();
                            printf("%03.3f\r\n",1.12);
                            printf("%u \r\n",1<<3);
                    }
                    P40 = 0;        //三极管引脚输出低电平
                    P60 = 0;        //led4引脚输出低电平
                    P61 = 0;        //led5引脚输出低电平
            }
    }


    void sys_init()                //函数定义
    {
        WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
        EAXFR = 1; //扩展寄存器(XFR)访问使能
        CKCON = 0; //提高访问XRAM速度

            P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
        P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
        P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
        P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
        P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
        P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
        P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
        P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
           
        P3M0 = 0x00;
        P3M1 = 0x00;
       
        P3M0 &= ~0x03;
        P3M1 |= 0x03;

        //设置USB使用的时钟源
        IRC48MCR = 0x80;    //使能内部48M高速IRC
        while (!(IRC48MCR & 0x01));  //等待时钟稳定

        USBCLK = 0x00;        //使用CDC功能需要使用这两行,HID功能禁用这两行。
        USBCON = 0x90;
    }
    结束。

    第五集:C语言运算符和进制数入门下
    2、首先自学一下Excel的应用,然后跟着老师学习一下2进制、10进制、16进制之间的转换。
    3、单片机C语言中常用的运算符:
            一、算术运算符
    加(+)减(—)乘(*)除(/)
    模(余)运算符(%):不允许出现浮点型,余数正负取决于被除数正负
    自增(++i,–i;i++,i–)
    二、位运算符
    右移(>>)左移(<<)
    按位与(&)
    按位或(|)
    按位异或(^)
    取反(~)
            三、赋值运算符
    += 加赋值(a += 3等价于 a = a + 3)
    -= 减赋值
    *= 乘赋值
    /= 除赋值
    %= 求余赋值
    &= 按位与赋值
    |= 按位或赋值
    ^= 按位异或赋值
    <<= 左移位赋值(>>= 右移位赋值)
            4.数据的基本类型
    Data Types        Bits        Bytes        Value Range
    bit        1                0 to 1
    aigned char        8        1        -128 -- +127
    unsigned char        8        1        0 -- 255
    enum        8/16        1or2        -128 -- +127 or -32768-- +32767
    sigend short int        16        2        -32768 -- +32767
    unsigned short int        16        2        0 -- 65535
    signed int        16        2        -32768 -- +32767
    unsigned int        16        2        0 -- 65535
    signed lont int        32        4        -2147483648 -- +2147483647
    unsigned long int        32        4        0 -- 4294967295
    float        32        4        +-1.175497E-38 -- +-3.402823E
    double        32        4        +-1.175497E-38 -- +-3.402823E
    sbit        1                0 or 1
    sfr        8        1        0 -- 255
    sfr16        16        2        0 -- 65535

    五、课堂总结
    1.学会printf的格式化输出(后面会反复用到)
    2.了解进制数
    3.学会加减乘除等运算符
    4.了解数据类型和数值范围
    课后练习:自己练习一下printf的用法
           
    第六集:LED闪烁和花式点灯上。
    1、        基于Delay实现的LED闪烁。
    2、        函数的应用。
    3、        新建文件夹,使用模块化编程。
    1,        基于Delay实现的LED闪烁。
    首先用宏定义主时钟
    #define  MAIN_Fosc  24000000UL                        //定义一个IRC系统时钟
            语法分析:

            延时函数如下:
    void delsy_ms(u16  ms)
    {
            u16  i;
            do
            {
                    i = MAIN_Fosc / 6000;
                    while(--i);
            }while(--ms);
    }
    2.函数的使用
    在模块化编程里,函数使用分为如下三步:
    1.函数定义
    返回值 函数名称( 入口参数 )
    {
    函数要执行的功能
    }
    @返回值:没有返回值就是void
    @函数名称:避开关键词,不重复,非特殊字符随便取
    @入口参数:类型+名称,多个参数“,”分开,空就写void
    2.函数声明
    返回值 函数名称( 入口参数 );
    3.函数调用
    函数名称( 入口参数 );
    主函数如下:
    void main()
    {
            sys_init();                //USB功能+IO口初始化
            usb_init();                //usb库初始化
            EA  =  1;

            while(1)
            {
                    if(DeviceState != DEVSTATE_CONFIGURED)
                    continue;
                    if(bUsboutReady)
                    {
                            usb_OUT_done();
                    }
            P40 = 0;                //三极管引脚输出低电平

            P60 = 0;                //led4引脚输出低电平
            delay_ms(500);
            P60 = 1;
            delay_ms(500);
            }
    }
            在Demo.c中加入头文件
    #include "COMM/stc.h"
    #include "COMM/usb.h"
    char *USER_DEVICEDESC = NULL;
    char *USER_PRODUCTDESC = NULL;
    char *USER_STCISPCMD = "@STCISP#";
    3.新建文件,使用模块化编程
            新建xxx.c和xxx.h文件,代表一个功能块。
    xxx.h格式:
    #ifndef __XXX_H
    #define __XXX_H
    调用头文件
    函数声明...
    #endif
    xxx.c格式
    #include “xxx.h”
    函数定义
    添加文件一定要记得引用路径和添加到工程里。



    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-21 09:04
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    5

    回帖

    26

    积分

    新手上路

    积分
    26
    发表于 2024-4-21 09:34:02 | 显示全部楼层
    我已经听了五课,怎么获得STC32G12K128-实验箱-V9.6试验箱?
    回复 支持 反对 送花

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies |上传

    本版积分规则

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

    GMT+8, 2024-5-2 15:57 , Processed in 0.070787 second(s), 64 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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