51单片机入门环境搭建(Keil+ISP)

Posted 小辉_Super

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机入门环境搭建(Keil+ISP)相关的知识,希望对你有一定的参考价值。

在学习51单片机之前,环境搭建是必不可少的一步,本文主要介绍Keil软件和STC-ISP软件的安装

本人只是一个普通的嵌入式低级(初级)玩家,文章主要针对新手,所以大佬要是发现文中有何不妥之处,还请口下留情,若能指出,我一定虚心改正

Keil软件安装

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。——百度百科

Keil软件用来编写和编译代码,最后可以生成二进制(.bin)或十六进制(.hex)的可执行文件(借助ISP软件可以将这些可执行文件烧录到单片机中),同时,它还提供了仿真调试功能。

下载Keil

我们先到Keil官网 https://www.keil.com/ 下载最新版的Keil (C51版本)
.



  • 如果弹出信息提交页面,按实际情况填写即可(地区一定要选,勾选框可以不选


  • 最后点击最新版本的MDK进行下载即可


下载完成后,即可看到这个安装包

安装Keil

打开刚才下载的安装包,
.

  • 安装路径最好不要选择C盘

  • 这一步,需要填写个人信息(没错,我的信息全是x😂)

  • 接下来开始正式的安装,过程大约1至2分钟。

  • OK,安装完成!

Keil工程的创建

Keil安装完成后,桌面会生成Keil软件的图标,如下图:

  • 打开该软件,选择 Project -> New uVision Project 新建一个工程

  • 选择工程路径,输入工程名,【注意】不要用中文,最好路径也不含中文,不然可能会出现未知错误!

  • 工程新建后,会弹出一个窗口,让你选择设备信息,由于我们要用的51单片机STC89C52AT89C52引脚完全兼容,硬件连接基本一样,所以我们可以搜索AT89C52

  • 接下来,Keil软件会询问你是否添加STARTUP.A51到当前工程,这个一个用汇编代码写的文件,又叫启动文件,作用是可以让单片机从初始状态进入你的C代码程序。(其实你选否也不会有什么影响,如果选了否,则Keil亦会通过库中的启动代码实现标准化的启动流程。如果需要对startup添加自定义的代码,那么必须在项目中添加startup.a51代码)【如果你看不懂,选“是”就对了

  • 这时,工程已经创建好了,接下来我们写一个简单的main函数,首先选择New,新建一个空白文件

  • 新创建的文件可以直接保存到工程所在的文件夹(也可以自己创建一个子文件夹),命名后保存,注意加上.c的后缀。

  • 编写一个简单的主程序(无任何功能)reg52.h是51单片机的头文件,定义了一些寄存器和引脚(暂不作介绍)。

  • 此时,我们刚刚创建的.c文件只是存在于工程目录之下,但并没有加入到工程中(如果不理解,照做就行了)

  • 双击文件或点击Add进行添加,添加完后点击OK退出工程文件的管理。

  • 这时再看工程窗口,可以看到分组1中多了一个main.c文件

  • 在编译代码之前,我们还要开启生成hex文件的选项,该文件就是我们用来烧录的文件。

  • 接下来就是编译代码,点击Build按纽即可完成编译(从左边数,第一个是预编译,第三个重新编译,第四个是链接,最后一个是停止编译),保险起见,新手在编译时,可以把前三个全部点一遍(重新编译是个好东西)。

  • 编译结果可以在Build Output窗口查看,这里显示的内容主要包括各个空间的大小(data——片内ram,xdata——片外ram ,code——程序存储区rom)及错误警告的数量(如果存在,则显示它们所在位置和详情)。下面特别标识的信息表示成功创建hex文件(十六进制可执行文件),一般情况下,出现这行信息,说明程序编译通过(有些时候Error为0,但没生成hex文件,也算编译失败)。

  • 最后,打开hex文件所在目录,看看hex文件是否生成了,如果有,恭喜你完成工程的创建和编译。

注册Keil C51(PoJie)

和其他的一些国外软件不同,Keil安装过程异常顺利,没有弹出任何让我们注册的提示(除了信息填写),是不是Keil是一个免费软件呢?当然不是!

  • 如果Keil C51没有注册,那我们能够编译的代码就不能超过0x800字节(2048字节),下图我把代码量写到234行时,就出现了报错(告诉我超过了2048字节的限制,超过了最大限制的1%)。


如果是新手学习,200多行的代码限制应该是能够接受的,但如果我们想编译大一点的项目,那就不得不进行注册(pojie)了。

  • 我们先看看百度上正版价格(我对这些不太了解,不一定真实,但肯定不便宜)

  • 但是作为穷学生或打工仔,怎么可能舍得拿这么多钱去买正版授权呢,我这里给出一个注册机软件(有效期2032年)
    下载链接——链接:https://pan.baidu.com/s/1SwuVl9BWumzaFhyzXjSP7Q 提取码:xh66
    特别声明:仅限用于个人学习,如果用于商业活动,后果概不负责

  • 【提示】:如果解压后文件被删除,请先把杀毒软件暂时关闭。另外,如果是晚上使用,记得把电脑音量调低。。因为它的声音和长相一样吓人。

  • 有了注册机软件,接下来我们就来注册Keil C51,首先以管理员身份打开Keil软件(如果不用管理员身份,可能会出现注册报错的现象)

  • 复制产品ID号(CID)

  • 将产品CID粘贴到注册机CID栏,确认平台为C51,点击Generate生成注册码(由30个数字或字母组成),最后复制注册码。

  • 将注册码粘贴到 License Management的LIC编辑框内,点击AddLIC,即可注册成功(如果弹出一个带乱码的窗口,先确认是否使用了管理员权限打开Keil),可以看到过期时间是2032年,足够我们用了。

  • 再次编译之前失败的代码(这里要用到重新编译,不然会一直报之前那个错误),成功了!

STC-ISP软件安装

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

下载STC-ISP

下载路径:STC的官网: http://www.stcmcu.com

由于宏晶(STC)的官网布局有点拥挤,我直接使用Ctrl + F进行搜索,找到STC-ISP软件的下载位置在网页右侧。点击下载即可。
.

.

安装USB to UART驱动

  • STC提供的工具倒挺全的:

  • 由于我当前使用的硬件平台是普中科技的一款开发板(A2),上面自带USB转TTL(串口)模块,该模块的芯片为CH340,所以我需要安装CH340对应的驱动——ch341ser.exe(路径:“USB to UART Driver\\CH340_CH341\\CH341SER.EXE”)
  • 打开该驱动文件,选择安装按钮即可完成安装。

  • 安装完驱动后,我们将51单片机(带USB转TTL)接入到电脑,查看设备管理器,如果可以看到USB-SERIAL CH340的端口设备,说明驱动安装成功,此时电脑就能够和单片机互相通信了。

使用STC-ISP烧录固件

  • STC-ISP使用起来就3步,但先点下载再上电这个操作我是第一次见。下图选择的程序文件就是上一章所生成的first.hex

使用PZ-SP烧录固件

  • 普中科技也自己有一款烧录软件——PZ-ISP.exe,普中开发板的配套资料里带有这个软件,也顺便简单介绍一下。

  • 主界面如下图所示,毕竟只支持一种(或几种)型号的单片机,所以功能比STC-ISP少很多,但是操作起来也简单了许多。

烧录步骤:选择hex文件->点击程序下载,如果下载失败,调低波特率再试(我调到9600以上就会烧录失败。。。)。

以上是关于51单片机入门环境搭建(Keil+ISP)的主要内容,如果未能解决你的问题,请参考以下文章

无线红外探测器03-环境搭建及程序详解

ubuntu 51单片机环境搭建方法

第二章 搭建51单片机开发环境

51单片机入门 - SDCC / Keil_C51 会让没有调用的函数参与编译吗?

433M射频遥控灯震动感应灯WIFI避障小车

keil软件中怎样添加STC系列单片机