51单片机STC8G系列开发环境配置并编写第一个hello world程序

本文只要介绍如何搭建51单片机的开发环境和编写第一个51程序「hello world」

资料准备

STC 新官网(新手推荐):
https://www.stcai.com/

STC 旧官网(此官网的软件下载地址失效):
http://www.stcmcudata.com/


芯片手册下载页面:
https://www.stcai.com/cp_stc8gxl

芯片手册STC8G系列直接下载地址:
https://www.stcai.com/filedownload/625773

软件准备

操作系统

WINDOWS 系列操作系统

STC-ISP 软件

STC-ISP 是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC8G系列、STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便。

STC 软件下载页面:
https://www.stcai.com/gjrj

烧写器stc-isp-15xx-v6.90U-完整版直接下载地址:
https://www.stcai.com/filedownload/625753
(新手建议使用完整版本,包含Keil所用到头文件,配置对话框等多个主要功能)

下载并安装 keil

https://www.keil.com/download/product/

选择C51版本进行下载

此时,需要填写一些信息,填写好点击「Submit」就可以进入下载页面
WX20221111-0830532x_xn

打开keil安装程序,不断的按「Next」,遇到信息填写时再填一遍,直到「Finnish」即可。

安装完成,在桌面可以看到keil的快捷图标

硬件准备

STC8G1K08A 开发板

STC8G系列和以往的STC单片机比较好的地方是,更加简单易用。

优先选项:建议购买开发板

这么做省事,省心。

其次选项:手动制作使用STC8G最小系统

若果没有购买开发板的话,其实芯片自身就可以是最小系统,可以参考芯片手册上的最小系统(加2个电容即可)搭建测试环境。凌顺实验室(lingshunlab.com)也试过直接使用芯片,也是可行的,但不建议这么做,时间久了可能会烧坏芯片。

下载器/编程器/烧录器

「STC单片机程序自动下载器/编程器/烧录器 免手动冷启的USB-TTL」
一般在8-13元之间,请自行购买。(PS:价格参考于2022年11月)

开发软件Keil 配置STC

STC-ISP 和 Keil 都安装完成后,就需要添加STC芯片的型号和头文件到Keil中。

1,关闭Keil程序(如果已经打开了的话)

2,打开STC-ISP

  • 1,选择「Keil仿真设置」对话框
  • 2,单片机型号选择所使用的,例如本文使用的是「STC8G1K08A-8PIN」
  • 3,点击「添加型号和头文件到Keil中」

3,此时,会弹出一个路径选择的对话框,选择Keil安装路径的「UV4」文件夹(根据安装Keil不同版本可能是UV2/UV3),点击「确定」。

4,会有提示框弹出,提示「STC MCU型号添加成功!」。

这就已经把STC的芯片在Keil配置好了。

编写「hello world」51程序

1,打开Keil

2,菜单栏选择「Project」--> 「New uVision Project」
WX20221111-0906202x_xn

3,选择project的存放位置

4,选择正确的芯片型号,「STC8G1K08」
WX20221111-0906202x_xn

5,在项目中新建2个文件,mian.c(程序文件) 和 STC8G.h (头文件)
WX20221111-0921352x_xn

6,在STC-SPI的头文件配置复制到项目中的「STC8G.h」文件中
WX20221111-0925032x_xn

7,复制以下程序到「main.c」文件,演示效果是单片机上电后在串口输出“hello”:

#include "stc8g.h"
#include "intrins.h"
#include "stdio.h"

void UartInit(void)     //115200bps@12.000MHz
{
    SCON = 0x50;        //8位数据,可变波特率
    AUXR |= 0x40;       //定时器时钟1T模式
    AUXR &= 0xFE;       //串口1选择定时器1为波特率发生器
    TMOD &= 0x0F;       //设置定时器模式
    TL1 = 0xE6;     //设置定时初始值
    TH1 = 0xFF;     //设置定时初始值
    ET1 = 0;        //禁止定时器%d中断
    TR1 = 1;        //定时器1开始计时
    TI = 1; // enable printf
}

void main() {
    UartInit();
    printf("hello\r\n");
    while(1){
    }
}

8,配置输出HEX文件,用于上传。
点击「Options for Target......」,选择「output」选项,把「Creade HEX File」勾选,即可。
WX20221111-0929042x_xn

9,点击「Build」或者「Rebuild」都会进行编译,生成HEX文件。
该HEX文件保存在项目目录的"Objects"文件夹里面
WX20221111-0934242x_xn

上传程序到STC8G1K08A开发板

串口查看输出