找回密码
 立即注册
查看: 2054|回复: 15

STC32G12K128学习心得

[复制链接]

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 14:32:56 | 显示全部楼层 |阅读模式
第一集:心得体会
主要内容:初步认识单片机,了解单片机的一些功能及应用;并解答了一些初学者的常见问题,给出一些学习建议
在本集视频中了解到单片机的定义及基本组成:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
并了解到单片机几种常见的封装:PCIP、QFN、LQFP等


回复

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 14:34:14 | 显示全部楼层
第二集

1)以红外遥控器做引导,了解其典型器件--红外发射与对应的红外接收
(2)电压比较的应用需要与其基准电压做比较,从而根据数据进行实时操作。这里和后面讲ADC采集的应用原理相似,即根据基准电压的对应数据,按照规则,反推出采集电压实际代表数据
(3)LED的应用最为广泛的就是流水灯
(4)数码管的原理:它的每一条灯线都可以根据信号独立点亮从而实现一组数据的显示;类似于电磁炉的显示和热水壶的数值显示。
(5)万能板的存在更多是为了方便用户进行后期扩展,提供区域进行附加元器件的焊接
(6)NTC测温广泛应用于上方的电子体温计探头。
(7)18B20作为温度传感,其精度高但间隔时间长,反馈数据不连续。
(8)与之相比的ADC,作为模拟电压转数据的模块,它可实现连续实时测温,产生连续线性数据,同时通过基准电压得出温度数据。
(9)DAC介绍不多,但可根据ADC反推,同时它可以产生波形图进而以此为基础进行功能调控。
(10)数据存储方面
a.24C02作为外部存储芯片可以存储上次开机是使用数据,便于在单片机损坏时进行数据转移
b.FLASH扩展,存储空间大,可以存放图片与文字等大文件数据,实现实时存储
c.RAM可存储运行时产生的数据,但断电即丢失,需要存入上述的24C02或者FLASH内。
(11)关于按键
a.独立按键,一个按键连接一个引脚,曾应用在影视剧内的典型炸弹与数码管配合使用
b.矩阵按键就是解决独立按键占用大量引脚问题,它也广泛应用于密码锁中。
(12)232接口电路需要特定线进行连接,曾应用于打印机,也可进行代码烧录。
以上为第二集的知识梳理,在冲哥的讲解下对实验箱内各元器件得到了初步理解,有了学习的动力。

截图202401221433266764.jpg
回复 支持 反对

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 14:39:50 | 显示全部楼层
第三集:
1.STC-ISP软件的下载
STC-ISP V6.92A 完整版(需要填写验证码)
STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便。
软件下载STC-ISP
STC 官方烧录软件,可用于烧录 STC 全系列单片机,并集成大量实用的开发工具
2.STC32手册下载
3.PDF阅读器下载
4.学会PDF阅读器查阅手册

利用书签和目录功能,CTRL+F搜索,快速定位。
1.如何使用PDF阅读器打开手册
2.如何查阅日录和详情
3.如何快速查阅章节
4.如何使用搜索功能

5.跟着手册搭建C251开发环境



截图202401221436444210.jpg
截图202401221437594217.jpg
回复 支持 反对

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 14:46:57 | 显示全部楼层
第四集:点亮LED灯

GPIO可以通过软件读取其输入电平或控制其输出高低电平。
将各部分按照顺序依次连接:GPIO-发光二极管-限流电阻-5v

这是通过控制GPIO输出高低电平即可控制LED亮灭
此种位共阳极开漏输出控制LED,还有一种是共阴极推挽输出控制LED(由于IO负载能力有限,建议使用第一种方式)

与89c51有所不同的是stc32单片机需要配置IO的工作模式:P0M1=00;P0M0=00.

截图202401221446122292.jpg
回复 支持 反对

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 14:52:08 | 显示全部楼层
第四集续:

在第四集点亮LED的基础上,通过加入一段程序,使得hex文件在下载进单片机时不需要冷启动,经过视频验证usb-cdc与usb-hid两种方式都可以在编译完以后直接下载进单片机,无需冷启动。


截图202401221450376553.jpg
回复 支持 反对

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 14:53:16 | 显示全部楼层
第五集:

第五集】心得体会

主要内容:详细讲解了数制、c语言中常用的运算符及数据类型,并演示了c语言中printf的实现
一、printf的实现
主函数中添加
if(DeviceState !=DEVSTATE_CONFIGURED) //判断USB是否连接成功
continue;
if(bUsbOutReady)
{
usb_OUT_done(); //接收应答(固定格式)
printf("室内温度:%.2f\r\n",11.2);
}
二、常见运算符
算术运算符
1、加(+)减(-)乘(*)除(/)
2、模(余)运算符(%):不允许出现浮点型,余数正负取决于被除数正负
3、自增(++i,--i;i++,i--)

位运算符
1、右移(>>)、左移(<<)最低为补0
2、按位与(&)
3、按位或(|)
4、按位异或(^)
5、取反(~)


赋值运算符
1、+= 加赋值(a+=3 等价于 a=a+3)
2、-= 减赋值
3、*= 乘赋值
4、/= 除赋值
5、%= 求余赋值
6、&= 按位与赋值
7、|= 按位或赋值
8、^=按位异或赋值
9、<<=左移位赋值(>>=右移位赋值)


三、基本的数据类型


回复 支持 反对

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 14:57:41 | 显示全部楼层
第六集:
花式点亮LED灯,在程序编写过程中,学会使用函数,并形成模块编程的思维,提高程序的可读性和可维护性,一个工程实现的方式多种多样,要不断思考,用不同的方式尝试。

函数的使用
在模块化编程里,函数使用分为如下三步:
1:函数定义
      返回值 函数名称(入口参数)
     {
           函数要执行的功能;
           return 返回值;(无返回值可不写)
      }
      @返回值:没有返回值就是 void
      @函数名称:避开关键词,不重复,非特殊字符随便取
      @入口参数:类型 + 名称,多个参数“,“分开,空就写 void
2.函数声明
      返回值函数名称(入口参数);
3.函数调用
      函数名称(入口参数):
三、新建文件,使用模块化编程
新建 xxx.c 和 xxx.h 文件,代表一个功能块。
xxx.h 格式:
      #ifndef __XXX_H
      #define __XXX_H
      调用头文件
      函数声明...
      #endif
xxx.c 格式
      #include"xxx.h"
      函数定义

截图202401221456181948.jpg
截图202401221457059046.jpg
回复 支持 反对

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 15:03:20 | 显示全部楼层
第七集:学习使用独立按键,并使用按键控制LED灯。
第一种:按下按键即执行

第二种:按下按键松手后再执行

注意:按键在按下的同时会存在机械抖动的情况,导致高低电平跳变,需要在代码中加入延时程序消抖
截图202401221459436151.jpg
截图202401221501367577.jpg
回复 支持 反对

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 15:06:20 | 显示全部楼层
第八集:蜂鸣器

认识蜂鸣器
分为有源蜂鸣器和无源蜂鸣器,有源蜂鸣器内置震荡源,通电可直接发声,但无源蜂鸣器可通过程序控制音高

有源蜂鸣器比较好控制,只需要在端口处输出低/高电平即可发声

原理图

原理图

代码展示

代码展示
回复 支持 反对

使用道具 举报 送花

1

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2024-1-22 15:09:58 | 显示全部楼层
第九集:数码管

数码管分为共阴极和共阳极,型号尾缀A表示共阳极,K表示共阴极。
本质是由7个LED灯按照特定位置排列成断码数字,因此控制起来和驱动LED灯相似

控制断码屏显示,需要控制两组IO口,一组负责位选,一组负责段选
共阳数码管段选IO给低电平点亮 共阴数码管段选IO给高电平点亮

共阳极数码管显示数字对应的段码

10进制段码数组 {192,249,164,176,153,146,130,248,128,144}
16进制段码数组 {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}
共阴极数码管显示数字对应的段码
10进制段码数组 {63,6,91,79,102,109,125,7,127,111}
16进制段码数组 {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}
共阳和共阴数码管段码是相互按位取反的关系

共阳极数码管显示数字对应的段码
共阳极数码管显示数字对应的段码



回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-6 21:55 , Processed in 0.122467 second(s), 101 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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