今天和大家一起聊聊有关开发工具。
所谓开发工具,就是利用单片机完成一些列功能所必须的工具,这里当然就特指51单片机咯。
对于开发工具来说,从个人理解来讲,还得分为软件工具和硬件工具。
所谓软件工具,主要是指在使用单片机时所需要的软件编译环境及其辅助软件;而硬件工具,则是指我们所需要开发活着准备使用的对象及其辅助硬件结构。
软件工具
单片机软件工具的最直接最直观的理解,就是将我们编程所使用的语言,不管是C语言、汇编语言或者是其它更高级的语言,编译形成单片机所能够识别的命令的一系列工具。要知道,C语言代码其实是由一些关键字和某些特定的代码结构所组成,这些我们的51单片机其实是完全无法识别这类代码。
单片机能够识别啥?必须是0101101这种机器码啊。最底层的寄存器、控制器或者逻辑运算单元便是1010101….这种二进制的信号,有了各种内部总线和指令集的支持后,理论上2的n次方(n在可设计掌控的范围内)进制的文件,单片机都是可以识别并装载执行的。最经典的一个可执行文件类型,便是intel为了统一天下,作为标准推出的一种十六进制HEX格式ASCII文件,用来记载由十六进制数所组成的地址段、机器码和数据常量,同时这种文件亦可存储进51单片机的片上flash,并上电加载使用。
第二步:您的新工程命名且保存在哪,这里直接c:testtest.uvproj
第三步:选择MCU的数据库,咱们这里要使用STC的单片机 ,所以:
如果没有这个,(偷个懒)请直接看http://jingyan.baidu.com/article/cbf0e500f2b2512eaa289330.html
第四步:选中这次要玩的片子STC89C52RC
第五步:新建C文件,并添加至工程
File—New,得到一空白文本文件
随便写个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文件哟
然后把这个文件添加进工程
像这样:
然后编译一下,吼吼
成功咧
完事儿了么?总感觉还差点啥,没错
HEX文件在哪?
Keil C51默认是不生成Hex文件的,需要手动设置一下
1234,设置完毕,路径啥的,自行按需修改
再编译一次瞧瞧
控制台打印信息多了一行
再看看工程的子目录下,hex文件生成了
Oye,第一个工程就撸好了
当然,这个是最简单的过程
如果需要包含头文件、如果需要使用封装lib、如果需要整理工程文件架构……
嗯,需要实际动手操练的还有很多
但是,IDE只是一个工具
千万不要被它牵着鼻子走,或许多试试其它的IDE
没准会有新的感受
硬件工具
有开发板最好,没有的话,至少也需要有一个最小系统吧
楼主计划使用一块51的最小系统,来完成这次温故之旅
把HEX烧写进51单片机,还需要一个烧写器吧
STC的片子还算亲民,不需要专门的烧写器
直接使用USB2Uart的RX、TX管脚就可以进行HEX文件的烧写
不过需要冷启动,有时USB2Uart的灌电流会引起51单片机掉电不正常
最好能串接合适的电阻
先看看USB2Uart
就是这货:
注意,是USB转TTL电平哟
不是USB转RS232电平呢
通常来看,DB9接口的往往就是232电平
切记232电平不能接入单片机哟,烧了就自己吃吧
再看看咱们的主角STC89C52RC
值得注意的是,刚刚接触的童鞋
往往烧写器和仿真器分不大清楚
虽然两者都需要遵循一定的协议进行数据的交互
但是烧写器只负责把固件烧写进单片机,无法进行在线调试
而仿真器,除了可以烧写进单片机(一些在RAM调试的不在此讨论范围内)
还能够单步执行每条语句、设置断点等等调试功能
区别还是蛮大的
这里的USB2Uart仅作为烧写器存在
今天先到这里吧
最小系统结构、如何烧程序
下次再慢慢聊。
更多内容请关注“云汉电子社区”微信公众号平台,或者登录云汉电子社区官网bbs.ickey.cn 查看
,