找回密码
 立即注册
查看: 8950|回复: 55

【实验箱已送】【跟着冲哥学32位8051】学习日记

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-19 02:32:08 | 显示全部楼层 |阅读模式
本帖最后由 STC爱好者 于 2023-8-17 10:09 编辑

要说不想学单片机,那是假话,真的想学,并且工作生活中都有用处。
要说只想学不想领实验箱,也是假话,或多或少还是希望得到这个实验箱玩玩的。
既想学STC的32G单片机,也想通过好好学习领取到实验箱。
感谢STC给了这个机会,也鼓励自己坚持下去。

【打卡第1讲】

1: 单片机集成了处理器,存储器和输入输出口
2:单片机的外观有很多类型,不仅是是原来的40脚双列封装,形状、管脚都不同
   目前STC脚最少的是8脚,STC32G是很强大的单片机,远超传统的89系列
3:单片机可以做一些有规律可循的控制应用
   比如电压表里面用的也是单片机,电饭煲、洗衣机里面也有。
4:进行控制的话,了解寄存器很重要
5:学习单片机不分年龄,不分基础,但需要精心,动手,多思考,多看网上知识
6:STC官网资料很多

另外,STC官网有好几个;

老风格:
http://www.stcmcudata.com/
看似很乱,实际上所有资料都可以用CTRL-F查到,其实是最方便的,不在乎好不好看,而在乎能不能帮助到使用者。

STC32位8051技术网站:
www.STCAI.com
里面出现了菜单,整齐了不少,依据每个人的兴趣吧,原先的开发者可能习惯了老官网,
新官网更整齐一些。

STC32位8051技术论坛:
www.STCAIMCU.com
这就是我学习视频的地方。



回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-19 02:59:29 | 显示全部楼层
【打卡第2讲】

1: STC实验箱不仅包含了STC的MCU,还包含了很多常用的外设
   比如:
   O 红外发射接收
   O 数码管
   O 洞洞板
   O 电压比较
   O LED
   O NTC测温
   O 18B20测温
   O ADC按键
   O PWM DAC
   O 外置存储
   O 矩阵键盘
   O LCD接口
   O RS232
   O 独立按键
   O 调试接口
   O 蜂鸣器等
   几乎涵盖了一般设计中需要的大部分外设,不需要为每种外设单独去打板,大大简化了设计和实验的流程
2:STC 32G单片机的参数可以在主页上查到,比如电压是1.9~5.5V,这个电压范围相当不错,
   意味着2节5号电池、锂电池、USB都能直接点亮单片机。

作业:
使用STC实验板能做什么东西
能想到以下东西:
1:温度控制,使用NTC测温,与目标温度比较,通过继电器控制加热元件,通过数码管显示温度,通过按键设定触发和停止加热的温度。
   可以用来控制酸奶、米酒、豆芽、发面、孵小鸡、食物保温等。
2:充电器
   通过ADC获取电池电压,到预订电压停止,数码管显示当前充电电压。
3:智能遥控器,通过红外接收管学习遥控器的指令,存储在24芯片中,按键时发射出去
   甚至可以实现智能遥控,比如睡眠时空调几小时升高一度,或8小时后自动停止。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-19 23:44:53 | 显示全部楼层
【打卡第3讲】

1:STC ISP不需要安装,这一点很牛
2:STC手册很全,1000多页,可以用WPS或福昕阅读器打开,福昕可能更顺一些,其他的阅读器也行,看个人喜好
3:Keil的安装和设置教程,在STC手册中有详细描述,跟着手册走就可以
4:Keil uVision是Keil的默认编辑器,也可以使用其他喜欢的编辑器编辑程序
5:可以通过STC ISP去下载STC32G实验箱的程序包,也可以在官网下载
6:STC32G程序包中有很多实例程序,可以进入实例程序,点击工程打开,然后在Keil中编译
7:在编译前,需要使用STC ISP向Keil添加型号和头文件,否则会提示错误
8:让单片机进入下载模式的方法是
   a. 按P3.2让该脚接地
   b. 按OFF让单片机重启
   c. STC在上电瞬间发现P3.2低电平,并STC ISP的握手指令
   d. 这时STC ISP就能通过USB识别出单片机,单片机也执行ISP程序
9:STC ISP中点击“打开程序文件”,选择编译出的HEX文件,即可烧录单片机
10:如果程序中使用了指定频率的时钟,则可以在下载到MCU是调节
11:如果选择的单片机与程序的目标不同,则下载时会提示型号错误
12:与其他系列的不同,STC32G可以直接使用USB下载程序,而不需要额外的USB转TTL设备
回复 支持 反对

使用道具 举报 送花

1

主题

12

回帖

71

积分

注册会员

积分
71
发表于 2023-6-20 00:37:14 | 显示全部楼层
共同进步
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-21 01:31:43 | 显示全部楼层
【打卡】【第四集:建立工程点亮第一颗LED上】
1: LED单向导通
2:单片机输出的高电平,就是它的电源电压,对应1,低电平就是0V,对应0
3:单片机输出的Px.x表示它的IO口,就是GPIO
   表示既可以用于输入,也可以用于输出
4:Px.x中,前一个x表示同一组,可以一起批量操作,也可以单独操作
6:在示例中,使用一个三极管为所有LED提供电源,是为了扩流
7:单片机开始开发时,开始的几步是:
   a. 新建工程
   b. 选择单片机型号
   c. 新建C语言文件
   d. 将C文件加入工程
   e. 开始编辑程序源代码
8: 工程设置中要选中输出HEX-386格式
    Hex文件用于把编译后的程序烧写到单片机中,HEX有HEX-80和HEX-386,教程中使用的是HEX-386格式。
9: 编程时参见手册是很有用的
10:单片机的端口都有一个地址,比如P0端口的地址是80H
11:sfr用于将一个变量和它的特殊功能寄存器的地址联系起来,随后可以用这个变量访问
12:sbit用于将一个变量与另一个变量的位联系起来
13:程序中使用P4.0控制三极管,P6.0控制LED
14:P0M0之类的表示端口设置寄存器,可以设置端口的状态,比如准双向口等
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-22 00:56:46 | 显示全部楼层
本帖最后由 OstrichFly 于 2023-6-22 00:59 编辑

【自学】【第四集:建立工程点亮第一颗LED上】
HEX-80和HEX-386的区别:
原文:As hex-386 is for 32-bit addressing and Hex-80 is 16 bit.
我的理解:HEX-386是32位地址的HEX文件,而HEX-80是16位地址的HEX文件。
STC 32G系列是32位单片机,因此需要使用32位的HEX文件格式。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-22 00:57:30 | 显示全部楼层
【打卡】【第四集:建立工程点亮第一颗LED下】
1:手册是好东西,需要的知识几乎都能在手册中找到,比如程序直接下载功能
2:向IAP_CONTR寄存器写入0x60,即可将单片机复位到系统区,实现不停电直接下载功能
3:使用最新版STC-ISP程序,可以使用“收到用户命令后复位到ISP监控程序区”功能
4:工程中还可以添加LIB库
5: stc.h头文件中通过stc32g.h定义了很多sfr,不需要我们手工定义了,还减少了错误
6:函数位置在调用者后的时候,需要在前面进行1行的声明
7:USB-HID和USB-CDC都可以实现不停电下载,在程序改变时直接下载
8:EA表示总中断允许控制位,设置为1时表示开放CPU的所有中断
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-22 00:58:27 | 显示全部楼层
【自学】【第四集:建立工程点亮第一颗LED下】
USB HID和USB CDC的区别:
USB包含多种设备类型,比如常用的U盘是USB Mass Storage,键盘和鼠标是USB HID。
USB HID表示人机交换接口设备,又分为两大类,一类是标准的HID,比如USB键盘、鼠标、游戏杆等,
另一类是用户自定义HID,OS侧同样不需要对应的驱动,由应用程序与USB HID设备进行通讯。
STC32G系列单片机模拟成的USB HID设备,可能就是模拟成了自定义HID设备。
而USB-CDC表示通信设备,比如USB转RS232等,而其中又有一类CDC-ACM允许通过USB与对端设备进行串行通信,
STC32G系列单片机模拟成的USB CDC设备,可能就是模拟成了这种类型,因此STC ISP可以通过它与MCU进行数据交互。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-22 00:59:13 | 显示全部楼层
【自学】【第四集:建立工程点亮第一颗LED下】
通过STC ISP控制单片机复位到烧写代码的实现原理:
单片机通过USB与上位机连接后,上位机可以通过USB向单片机发出任何数据,
通常的想法是,STC ISP向单片机发出类似RESET_TO_LOADER指令,单片机收到上述指令,则复位到烧写代码中。
但在实现上却有一点复杂,如果希望单片机内置这个功能,也就是单片机只要通电,无论当前在运行什么代码都能实现通过USB复位,
则需要在单片机中加入另一套专用单片机去完成对USB的监视和动作响应,这虽然可能可以做到,但复杂度和成本都脱离了当前的定位。
因此STC32G的设计是,由单片机中的CPU实现对上位机通过USB发过来的指令的监视和相应,
由于这个CPU正在运行用户程序,因此需要对用户程序进行一些修改,通过异步方式实现上述的监视,
而代码中加入的sys_init()、usb_init()以及EA=1就是为了初始化这段对USB的异步监视功能。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-02 00:02:31

2

主题

66

回帖

2322

积分

金牌会员

积分
2322
发表于 2023-6-23 00:54:01 | 显示全部楼层
【打卡】【第五集:C语言运算符和进制数入门上】
1:在STC32G单片机上,同样可以使用printf函数进行信息输出
2:但区别是普通C语言可以直接使用printf函数,但单片机上需要在主循环中加入对应的代码
    if (DeviceState != DEVSTATE_CONFIGURED)
        continue; // 检测USB是否连接成功
    if (bUsbOutReady) {
        usb_OUT_done();
        printf("Hello World\n");
    }
3: printf与标准C语言相通,支持各种进制和长度的输出
4:文本对应的ASCII码,可以通过ASCII码表查到或反查
5:任何数字可以用任何进制表示,计算机编程中常用的是10,16,2,8进制,
   但其他进制也存在,比如3进制,只不过极少使用。
6:计算进制,可以用计算器、Excel,也可以用偏门的方法,比如编个STC上的程序。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:47 , Processed in 0.240821 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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