找回密码
 立即注册
查看: 8099|回复: 40

【实验箱已送】看冲哥32位8051视频学STC32单片机,赢STC32实验箱

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-6 11:32:07 | 显示全部楼层 |阅读模式
本帖最后由 STC爱好者 于 2023-8-16 11:33 编辑

收到赠送的开天斧 STC8H8K64U开发板后,跟着布丁橘长老师的《屠龙刀-STC32位8051-视频教程》学习,现已学到82集,看完每集都进行实验,收获颇丰。非常感谢布丁橘长老师!先感觉STC32试验箱的功能要强大一些,用于开发可以少购一些外设器件,从今天开始认真学《冲哥32位8051视频》准备赢STC32试验箱。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-04-27 10:40:24

11

主题

425

回帖

1971

积分

版主

积分
1971
发表于 2023-6-6 11:42:59 | 显示全部楼层
楼主学习精神可嘉,加油,争取早日送你实验箱
QQ:2269694595     微信:18106296594
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-6 14:53:31 | 显示全部楼层
STC爱好者 发表于 2023-6-6 11:42
楼主学习精神可嘉,加油,争取早日送你实验箱

感谢老师的鼓励,我一定会努力拿下。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-6 16:37:47 | 显示全部楼层
第一课
  什么是单片机?
  他能做什么?
  新手常见问题解答
    30 岁还能学单片机吗?    新手学 STC 的 51 单片机还是 STM 32 那些?51 单片机淘汰了嘛?
    怎么入门单片机?
    怎么才算入门单片机了呀?小学生可不可以学单片机?
    做一个普通项目的话单片机都需要掌握什么才能不会感觉有压力?汇编有没有必要?
    单片机用库函数好还是寄存器好?STC 单片机到底好不好?
    以前从来没学过单片机,目前还在上班,还能学吗?
  学习建议
    1 一定要静得下心,沉得住气;
   2.多跟着我动手,千万别一看就会,一写就废;
   3.举一反三,发散思维,时常思考为什么;
   4.多看看官网,多看看手册,有问题多交流;
   5.逛逛论坛,吸收一些别人好的东西;
   6.尝试着自己做一些项目,竞赛题。
作为一个10年前就接触过STC89C52的学生,看了老师对这些问题的回答,尤其是6条学习建议,非常受益。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-6 16:48:17 | 显示全部楼层
本帖最后由 sdwflzg 于 2023-6-6 16:49 编辑

第二集
1.png

这个实验箱功能还是比较全的,对学习STC32有很大的帮助,比我的开天斧 STC8H8K64U复杂多了。
2.png

我现在用STC8H8K64U与郭天祥老师的板子配合使用
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-7 16:26:45 | 显示全部楼层
第三集
开发环境的搭建
1、STC-ISP
      STC-ISP功能非常强大,开发必备工具。它不仅仅是一个烧录软件,还集成了虚拟显示功能、范例程序、STC头文件的安装、驱动安装、I/O口配置、波特率计算、定时器设置参数计算、软件延时参数计算、线生成器等工具,极大的方便了开发人员。
1.png



STC调试接口
       可以直接用虚拟设备进行调试,在没有相应的硬件设备的情况下也能进行学习和开发。
2.png

2、资料下载
       可以利用STC-ISP直接下载用户手册、演示程序、库函数等非常方便。
       说到手册,有必要说的是STC官方手册编写得相当详细,值得称赞!对学习开发STC单片机以及做更高级的研究都是必不可少的资料,必须掌握手册的使用。
        STC提供的演示程序,里面的说明非常详细,对程序的功能、注意事项都作了说明,关键语句也都作了说明,对初学者非常有益。
3、编译软件
        STC8H8K64U开发编译工具是kile C51,而STC32需要用keil C251。如果已安装过Kile C51,可以将C251安装在原C51的安装目录下,如Keil_v5,它会自动安装在子目录C251下,不会覆盖原来的文件。
3.png

       安装完后需要打开STC-ISP,选Keil仿真设置,按下图添加STC芯片型号和头文件到Keil中。
4.png

4、程序下载
       USB驱动程序WIN10以后的系统不需要安装,可以自动识别。
5.png

       往开发板下载程序前,需要选择“输入用户程序运行时的IRC频率”,该值应与程序里设置的运行时钟频率一致。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-8 17:24:03 | 显示全部楼层
本帖最后由 sdwflzg 于 2023-6-8 17:25 编辑

第四集      
这一课实现的功能比较简单,但这是基础中的基础,就好像学任何高级编程语言都要首先编写一个“Hello word”程序一样,通过这个程序可以了验证整个编译环境配置是否正确、编译软件的使用、下载软件的使用,了解编写调试程序的基本方法和步骤,初学者必须掌握好该节课的内容。
其他老师在讲第一个程序时就加入#include <STC32G.H>语句,引入STC32头文件,而冲哥不是,直接讲寄存器名与地址的对应定义。这样不会给初学者带来一头雾水,从开始就知道寄存器怎样操作。
        GPIO(general purpose intput output) (通常称I/O)通用输入输出端口的简称,可以通过软件来读取其输入电平,或者控制他输出高低电平。
       P0(Pn) 是一组GPIO口,P0.0(Pn.x) 是一个GPIO口。
      Keil中菜单“Edit"中选"Configuration"打开Configuration对话框
1.png

2.png

      其中Encoding选项初学者一定要注意,该选项一定要选正确,一般选择Chinese GB2312(Simplified),如果选择不正确将无法正确显示汉字。如果打开示例程序发现中文显示乱码,改变该选项的内容,就能正确显示。常用项还有Encode UTF-8 ......。
新建和增加已有的C语言文件可以按以下操作:
3.png

      在Source Group 1上按鼠标右键调出对话框,新建文件选“Add New Item to Group..”,添加已有的文件选“Add Existing Files to Group...”。
4.png

      如新建文件选“Add New Item to Group..”后弹出对话框,选择文件类型,填写文件名后点击“Add”按钮完成新建文件。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-13 10:24:39 | 显示全部楼层
本帖最后由 sdwflzg 于 2023-6-13 10:34 编辑

第四集(下)

一、实现自动下载工程
不停电下载的使用方法。
1、USB_HID
1.png

首先在工程中添加stc_usb_hid_32g.LIB文件
在程序中需要添加
#include "stc.h"
#include "usb.h"

void sys_init();    //函数声明

//USB调试及复位所需定义
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";                      //设置自动复位到ISP区的用户接口命令

void main()
{
    sys_init();
    usb_init();  //USB初始化
    EA = 1;
......
}

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

     P3M0=0x00;
     P3M1=0x00;

     P3M0 &=~0x03;
     P3M1 |=0x03;

    //设置USB使用的时钟源
    IRC48MCR = 0x80;    //使能内部48M高速IRC
    while (!(IRC48MCR & 0x01));  //等待时钟稳定
}
将STC-ISP设置为
2.png

程序编译后首次下载先不选“每次下载前都先发送自定义命令”,使用断电下载法。然后勾选该项,并勾选“当前目标文件变化时自动装载并发送下载命令”,再次编译后程序就会自动下载。

2、USB_CDC
3.png    

首先在工程中添加stc_usb_cdc_32g.LIB文件
将sys_init()修改为(黑体为改动部分)
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 &=~0x03;
     P3M1 |=0x03;

    //设置USB使用的时钟源
    IRC48MCR = 0x80;    //使能内部48M高速IRC
    while (!(IRC48MCR & 0x01));  //等待时钟稳定
    USBCLK = 0x00;
    USBCON = 0x90;
}
将STC-ISP设置为
4.png

二、使用Keil编程几点提醒:
1、函数名称大小写敏感,编译时出现警告或出错信息。
2、添加/取消注释标记,先选择相应的区域再点击相应按钮。
5.png

3、自定义函数如果放在主函数main()之后定义,需要在main()之前进行声明。放在主函数main()前定义,不需要声明。
如:
void sys_init(); //函数声明
void main()
{
......
}
void sys_init()  //函数定义
{
......
}
4、务必牢记几个端口寄存器PxM0,PxM1,Px
      务必牢记sbit的作用,牢记#include的作用


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-14 15:40:32 | 显示全部楼层
第五集(上)
一、C语言的printf函数实现
主函数中添加
if(DeviceState !=DEVSTATE_CONFIGURED) //判断USB是否连接成功
continue;
if(bUsbOutReady)
{
usb_OUT_done(); //接收应答(固定格式)
printf("室内温度:%.2f\r\n",11.2);
}
1.png

这个功能可以用在程序调试时输出观察的变量数值
二、数的进制
初学着必须掌握2进制以及在芯片中的作用,熟练掌握2进制、16进制、10进制之间的相互转换。
10进制x转n进制的方法为:
x/n取余得b商a,n进制的各位数为b,再将a重复此步骤。
如19进制431转16进制
2.png

结果16进制数为1AF
在明白转换算法原理后,可利用计算器的programmer(程序设计员)模式进行转换。并学会求模、求余的计算。



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-09-17 17:37:18

4

主题

94

回帖

511

积分

高级会员

积分
511
发表于 2023-6-14 16:29:59 | 显示全部楼层
第五集(下)
三、C 语言常用运算符
(一)算术运算符
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.png

熟记以下数据类型及取值范围
         unsigned char  0 - 255
  unsigned int     0 - 65535
  char                  -128  - +127      
  int                     -32768 - +32767   


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 04:11 , Processed in 0.168882 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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