今天和大家一起聊聊有关开发工具。

所谓开发工具,就是利用单片机完成一些列功能所必须的工具,这里当然就特指51单片机咯。

对于开发工具来说,从个人理解来讲,还得分为软件工具和硬件工具。

所谓软件工具,主要是指在使用单片机时所需要的软件编译环境及其辅助软件;而硬件工具,则是指我们所需要开发活着准备使用的对象及其辅助硬件结构。

软件工具

单片机软件工具的最直接最直观的理解,就是将我们编程所使用的语言,不管是C语言、汇编语言或者是其它更高级的语言,编译形成单片机所能够识别的命令的一系列工具。要知道,C语言代码其实是由一些关键字和某些特定的代码结构所组成,这些我们的51单片机其实是完全无法识别这类代码。

单片机能够识别啥?必须是0101101这种机器码啊。最底层的寄存器、控制器或者逻辑运算单元便是1010101….这种二进制的信号,有了各种内部总线和指令集的支持后,理论上2的n次方(n在可设计掌控的范围内)进制的文件,单片机都是可以识别并装载执行的。最经典的一个可执行文件类型,便是intel为了统一天下,作为标准推出的一种十六进制HEX格式ASCII文件,用来记载由十六进制数所组成的地址段、机器码和数据常量,同时这种文件亦可存储进51单片机的片上flash,并上电加载使用。

第二步:您的新工程命名且保存在哪,这里直接c:testtest.uvproj

51cto 项目经验(51入门系列教程开发工具)(1)

第三步:选择MCU的数据库,咱们这里要使用STC的单片机 ,所以:

51cto 项目经验(51入门系列教程开发工具)(2)

如果没有这个,(偷个懒)请直接看http://jingyan.baidu.com/article/cbf0e500f2b2512eaa289330.html

第四步:选中这次要玩的片子STC89C52RC

51cto 项目经验(51入门系列教程开发工具)(3)

第五步:新建C文件,并添加至工程

File—New,得到一空白文本文件

51cto 项目经验(51入门系列教程开发工具)(4)

随便写个c的基本框架吧

要包含单片机的头文件哟,打开这个头文件,可以看到很多类似

sfr P0 = 0x80;

sbit EA = 0xAF;

的语句

这些语句描述了一些符号的定义,也就是符号名与地址的对应关系

作为初学者,如果没有认真研究内核结构,特别是地址的分配情况

可以大致了解一下

随便看一个:

sfr P0 = 0x80;

这里定义P0口与地址0x80对应,即指定P0口的物理地址就是0x80

Sfr并非标准C的关键字,不过Keil为了能直接访问SFR提供的一个中间关键字

基本用法大概是:sfr 变量名=地址值。

其实这种过于接近底层的头文件,新手大可不必过于纠结

还是那句话,会用就ok

包含起这个头文件,再写个main

#include <reg52.h>

int main()

{

return 0;

Save一下,记得保存成c文件哟

51cto 项目经验(51入门系列教程开发工具)(5)

然后把这个文件添加进工程

51cto 项目经验(51入门系列教程开发工具)(6)

像这样:

51cto 项目经验(51入门系列教程开发工具)(7)

然后编译一下,吼吼

成功咧

51cto 项目经验(51入门系列教程开发工具)(8)

完事儿了么?总感觉还差点啥,没错

HEX文件在哪?

Keil C51默认是不生成Hex文件的,需要手动设置一下

1234,设置完毕,路径啥的,自行按需修改

51cto 项目经验(51入门系列教程开发工具)(9)

再编译一次瞧瞧

51cto 项目经验(51入门系列教程开发工具)(10)

控制台打印信息多了一行

再看看工程的子目录下,hex文件生成了

Oye,第一个工程就撸好了

当然,这个是最简单的过程

如果需要包含头文件、如果需要使用封装lib、如果需要整理工程文件架构……

嗯,需要实际动手操练的还有很多

但是,IDE只是一个工具

千万不要被它牵着鼻子走,或许多试试其它的IDE

没准会有新的感受

硬件工具

有开发板最好,没有的话,至少也需要有一个最小系统吧

楼主计划使用一块51的最小系统,来完成这次温故之旅

把HEX烧写进51单片机,还需要一个烧写器吧

STC的片子还算亲民,不需要专门的烧写器

直接使用USB2Uart的RX、TX管脚就可以进行HEX文件的烧写

不过需要冷启动,有时USB2Uart的灌电流会引起51单片机掉电不正常

最好能串接合适的电阻

先看看USB2Uart

就是这货:

51cto 项目经验(51入门系列教程开发工具)(11)

注意,是USB转TTL电平哟

不是USB转RS232电平呢

通常来看,DB9接口的往往就是232电平

切记232电平不能接入单片机哟,烧了就自己吃吧

再看看咱们的主角STC89C52RC

51cto 项目经验(51入门系列教程开发工具)(12)

51cto 项目经验(51入门系列教程开发工具)(13)

值得注意的是,刚刚接触的童鞋

往往烧写器和仿真器分不大清楚

虽然两者都需要遵循一定的协议进行数据的交互

但是烧写器只负责把固件烧写进单片机,无法进行在线调试

而仿真器,除了可以烧写进单片机(一些在RAM调试的不在此讨论范围内)

还能够单步执行每条语句、设置断点等等调试功能

区别还是蛮大的

这里的USB2Uart仅作为烧写器存在

今天先到这里吧

最小系统结构、如何烧程序

下次再慢慢聊。

更多内容请关注“云汉电子社区”微信公众号平台,或者登录云汉电子社区官网bbs.ickey.cn 查看

,