找回密码
 立即注册
楼主: admin

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

   火... [复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-07-03 14:23:49

4

主题

510

回帖

2253

积分

金牌会员

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

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

好好学
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-07-03 14:23:49

4

主题

510

回帖

2253

积分

金牌会员

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

好好学
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-07-03 14:23:49

4

主题

510

回帖

2253

积分

金牌会员

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

好好学
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2024-05-09 10:25:41

0

主题

20

回帖

94

积分

注册会员

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

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

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-03-29 17:35:27

7

主题

62

回帖

537

积分

高级会员

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-05-09 16:57:48

0

主题

7

回帖

48

积分

新手上路

积分
48
发表于 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”
函数定义
添加文件一定要记得引用路径和添加到工程里。



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-05-09 16:57:48

0

主题

7

回帖

48

积分

新手上路

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-07-03 14:23:49

4

主题

510

回帖

2253

积分

金牌会员

积分
2253
发表于 2024-4-21 21:29:58 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-07-03 14:23:49

4

主题

510

回帖

2253

积分

金牌会员

积分
2253
发表于 2024-4-21 21:30:25 | 显示全部楼层
zhaoy*** 发表于 2024-4-21 15:01
第十二集学习笔记:1、计数器用途 马达计数 咖啡机编码器 脉冲计数 2、配置 T1-C/T为1 T1-GATE为0 TR1为1  ...

加油
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-07-03 14:23:49

4

主题

510

回帖

2253

积分

金牌会员

积分
2253
发表于 2024-4-21 21:31:38 | 显示全部楼层
zhaoy*** 发表于 2024-4-19 15:49
第八集学习笔记:蜂鸣器 1、有源和无源两种 2、控制原理 低电平鸣响 3、电磁炉应用 三个按键八个LED 一个蜂 ...

下载视频多看看,画画流程图,好办法
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-3 22:21 , Processed in 0.128258 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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