在学习51单片机之前,环境搭建是必不可少的一步,本文主要介绍Keil软件和STC-ISP软件的安装
本人只是一个普通的嵌入式低级(初级)玩家,文章主要针对新手,所以大佬要是发现文中有何不妥之处,还请口下留情,若能指出,我一定虚心改正
文章目录
Keil软件安装下载Keil安装KeilKeil工程的创建注册Keil C51(PoJie)
STC-ISP软件安装下载STC-ISP安装USB to UART驱动使用STC-ISP烧录固件使用PZ-SP烧录固件
Keil软件安装
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。——百度百科
Keil软件用来编写和编译代码,最后可以生成二进制(.bin)或十六进制(.hex)的可执行文件(借助ISP软件可以将这些可执行文件烧录到单片机中),同时,它还提供了仿真调试功能。
下载Keil
我们先到Keil官网 https://www.keil.com/ 下载最新版的Keil (C51版本) . ![在这里插入图片描述](https://img-blog.csdnimg.cn/8ac82b1c0d6349858906dd2485d2819b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/78a961e28ae44f72871e8337d186dbb2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
如果弹出信息提交页面,按实际情况填写即可(地区一定要选,勾选框可以不选)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d50c5711ab3b4334860b043624c23526.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
最后点击最新版本的MDK进行下载即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/db4fb912ca5a440f9632329f88d6e16d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
下载完成后,即可看到这个安装包。
![在这里插入图片描述](https://img-blog.csdnimg.cn/75d1fbc89be94cc7b47cdb193804cd70.png#pic_left#pic_center)
安装Keil
打开刚才下载的安装包, . ![在这里插入图片描述](https://img-blog.csdnimg.cn/9a9166fb21b44866b3ed30deb04651d9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
安装路径最好不要选择C盘
![在这里插入图片描述](https://img-blog.csdnimg.cn/a11611876b7e44d58fd17556b5e2be74.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
这一步,需要填写个人信息(没错,我的信息全是x😂)
![在这里插入图片描述](https://img-blog.csdnimg.cn/a50b9ea33b9f44eb925f0864afd32888.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
接下来开始正式的安装,过程大约1至2分钟。
![在这里插入图片描述](https://img-blog.csdnimg.cn/9be16f8fb9454d409d3c95870e454147.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
OK,安装完成!
![在这里插入图片描述](https://img-blog.csdnimg.cn/93ecd6470f9643ada3f3623fdf225241.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
Keil工程的创建
Keil安装完成后,桌面会生成Keil软件的图标,如下图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/161454dc670d4a22b1665b505a4726a6.png#pic_center)
打开该软件,选择 Project -> New uVision Project 新建一个工程
![在这里插入图片描述](https://img-blog.csdnimg.cn/da11547b2dd1467e8ffe3a695c35423a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
选择工程路径,输入工程名,【注意】不要用中文,最好路径也不含中文,不然可能会出现未知错误!
![在这里插入图片描述](https://img-blog.csdnimg.cn/3a487b89593c4cadbde0b6a5c4aa7384.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
工程新建后,会弹出一个窗口,让你选择设备信息,由于我们要用的51单片机STC89C52和AT89C52引脚完全兼容,硬件连接基本一样,所以我们可以搜索AT89C52。
![在这里插入图片描述](https://img-blog.csdnimg.cn/8cbeefb03e914a5bbaaffde7dd65f11d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
接下来,Keil软件会询问你是否添加STARTUP.A51到当前工程,这个一个用汇编代码写的文件,又叫启动文件,作用是可以让单片机从初始状态进入你的C代码程序。(其实你选否也不会有什么影响,如果选了否,则Keil亦会通过库中的启动代码实现标准化的启动流程。如果需要对startup添加自定义的代码,那么必须在项目中添加startup.a51代码)【如果你看不懂,选“是”就对了】
![在这里插入图片描述](https://img-blog.csdnimg.cn/77b0a4a80b34458f9c81ed7692104ea6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_17,color_FFFFFF,t_70,g_se,x_16#pic_center)
这时,工程已经创建好了,接下来我们写一个简单的main函数,首先选择New,新建一个空白文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/c8591365e8ea4acfa5bfee4c2752ed71.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center)
新创建的文件可以直接保存到工程所在的文件夹(也可以自己创建一个子文件夹),命名后保存,注意加上.c的后缀。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7c3c875aaa5b4bd19907a12199347424.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
编写一个简单的主程序(无任何功能)reg52.h是51单片机的头文件,定义了一些寄存器和引脚(暂不作介绍)。
![在这里插入图片描述](https://img-blog.csdnimg.cn/77188ef987394158aa3b9599fa326b2d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_16,color_FFFFFF,t_70,g_se,x_16#pic_center)
此时,我们刚刚创建的.c文件只是存在于工程目录之下,但并没有加入到工程中(如果不理解,照做就行了)
![在这里插入图片描述](https://img-blog.csdnimg.cn/b71f6f935dde4051af17a983d9771b1c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
双击文件或点击Add进行添加,添加完后点击OK退出工程文件的管理。
![在这里插入图片描述](https://img-blog.csdnimg.cn/1a1a838cdf314e0689fa14f06c5b2f96.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
这时再看工程窗口,可以看到分组1中多了一个main.c文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/38aed665e88f41bca052b6a726df2498.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center)
在编译代码之前,我们还要开启生成hex文件的选项,该文件就是我们用来烧录的文件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/4a607b6596cc46fb8da0ffda575db07d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
接下来就是编译代码,点击Build按纽即可完成编译(从左边数,第一个是预编译,第三个重新编译,第四个是链接,最后一个是停止编译),保险起见,新手在编译时,可以把前三个全部点一遍(重新编译是个好东西)。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d57347dfa0064e28b80fab7a4c10865a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_18,color_FFFFFF,t_70,g_se,x_16#pic_center)
编译结果可以在Build Output窗口查看,这里显示的内容主要包括各个空间的大小(data——片内ram,xdata——片外ram ,code——程序存储区rom)及错误和警告的数量(如果存在,则显示它们所在位置和详情)。下面特别标识的信息表示成功创建hex文件(十六进制可执行文件),一般情况下,出现这行信息,说明程序编译通过(有些时候Error为0,但没生成hex文件,也算编译失败)。
![在这里插入图片描述](https://img-blog.csdnimg.cn/b80d617452454907ac82c2952fede7f6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_15,color_FFFFFF,t_70,g_se,x_16#pic_center)
最后,打开hex文件所在目录,看看hex文件是否生成了,如果有,恭喜你完成工程的创建和编译。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7ef17aa35b044ebca988c3f6f6cfe6b5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
注册Keil C51(PoJie)
和其他的一些国外软件不同,Keil安装过程异常顺利,没有弹出任何让我们注册的提示(除了信息填写),是不是Keil是一个免费软件呢?当然不是!
如果Keil C51没有注册,那我们能够编译的代码就不能超过0x800字节(2048字节),下图我把代码量写到234行时,就出现了报错(告诉我超过了2048字节的限制,超过了最大限制的1%)。
如果是新手学习,200多行的代码限制应该是能够接受的,但如果我们想编译大一点的项目,那就不得不进行注册(pojie)了。
我们先看看百度上正版价格(我对这些不太了解,不一定真实,但肯定不便宜)
![在这里插入图片描述](https://img-blog.csdnimg.cn/68444bdb737641a8bde5552a8d82dbc0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
但是作为穷学生或打工仔,怎么可能舍得拿这么多钱去买正版授权呢,我这里给出一个注册机软件(有效期2032年) 下载链接——链接:https://pan.baidu.com/s/1SwuVl9BWumzaFhyzXjSP7Q 提取码:xh66 特别声明:仅限用于个人学习,如果用于商业活动,后果概不负责 【提示】:如果解压后文件被删除,请先把杀毒软件暂时关闭。另外,如果是晚上使用,记得把电脑音量调低。。因为它的声音和长相一样吓人。
![在这里插入图片描述](https://img-blog.csdnimg.cn/cab942b640a143b1949bf73463a77dba.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_14,color_FFFFFF,t_70,g_se,x_16#pic_center)
有了注册机软件,接下来我们就来注册Keil C51,首先以管理员身份打开Keil软件(如果不用管理员身份,可能会出现注册报错的现象)
![在这里插入图片描述](https://img-blog.csdnimg.cn/cc8783a0be3043ca943903e22745e46c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_13,color_FFFFFF,t_70,g_se,x_16#pic_center)
复制产品ID号(CID)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2de000dbcfa540738a9f57a6b3cf3bfa.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
将产品CID粘贴到注册机CID栏,确认平台为C51,点击Generate生成注册码(由30个数字或字母组成),最后复制注册码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/58950c1ec6de431d9916f5c11acb40fb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_14,color_FFFFFF,t_70,g_se,x_16#pic_center)
将注册码粘贴到 License Management的LIC编辑框内,点击AddLIC,即可注册成功(如果弹出一个带乱码的窗口,先确认是否使用了管理员权限打开Keil),可以看到过期时间是2032年,足够我们用了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/206181879c414c7c90ef33186b4e20c4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
再次编译之前失败的代码(这里要用到重新编译,不然会一直报之前那个错误),成功了!
![在这里插入图片描述](https://img-blog.csdnimg.cn/7f4b9165e08c43498ea0c1595f684eb8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
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提供的工具倒挺全的:
![在这里插入图片描述](https://img-blog.csdnimg.cn/8f8e1242f0dd43ad85b33f472314ff07.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
由于我当前使用的硬件平台是普中科技的一款开发板(A2),上面自带USB转TTL(串口)模块,该模块的芯片为CH340,所以我需要安装CH340对应的驱动——ch341ser.exe(路径:“USB to UART Driver\CH340_CH341\CH341SER.EXE”) 打开该驱动文件,选择安装按钮即可完成安装。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c018e8aeb21e4aa4a7e158b20149cc37.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_15,color_FFFFFF,t_70,g_se,x_16#pic_center)
安装完驱动后,我们将51单片机(带USB转TTL)接入到电脑,查看设备管理器,如果可以看到USB-SERIAL CH340的端口设备,说明驱动安装成功,此时电脑就能够和单片机互相通信了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/0cba34f9c6cc42f5a292c9d33c44ad35.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
使用STC-ISP烧录固件
STC-ISP使用起来就3步,但先点下载再上电这个操作我是第一次见。下图选择的程序文件就是上一章所生成的first.hex。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d9502111b73447789f78b5044c66abfb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
使用PZ-SP烧录固件
普中科技也自己有一款烧录软件——PZ-ISP.exe,普中开发板的配套资料里带有这个软件,也顺便简单介绍一下。
![在这里插入图片描述](https://img-blog.csdnimg.cn/791a3ea381484fb29e887ff5ec4fa324.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_12,color_FFFFFF,t_70,g_se,x_16#pic_center)
主界面如下图所示,毕竟只支持一种(或几种)型号的单片机,所以功能比STC-ISP少很多,但是操作起来也简单了许多。
![在这里插入图片描述](https://img-blog.csdnimg.cn/07ba94c5e40044629aacbad1efbfad9c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6L6JX1N1cGVy,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
烧录步骤:选择hex文件->点击程序下载,如果下载失败,调低波特率再试(我调到9600以上就会烧录失败。。。)。
|