使用Keil写C51程序或汇编程序时,Keil软件存在两个严重问题,一是操作较为繁琐,其实这是所有大型IDE的共同问题,Keil和VS比起来也只能是小巫见大巫;二是Keil软件自带的编辑器委实功能有限,换行处理起来都显得很吃力,每次操作,都有一种又回到二十年前的感觉。
下面我们给出一个手动编译C51程序的方案,目标只有一个,用起来顺手,能给出一些基本的错误提示,过程极为简单,如果要进行调试等复杂操作,还是在Keil环境较为可靠。
一、准备
这里需要做两项准备工作,:
一是安装Keil软件;
二是安装你个人较为顺手的文本编辑器。
二、Keil是如何编译C51程序的
Keil软件是如何编译C51程序的呢,自不待言,编译过程和普通的C程序一样,同样包括编译和链接过程,但是最后不是生成可执行文件;二是由于一般51单片机中没有操作系统,需要生成一种绝对目标文件(.abs),由此生成可被单片机执行的hex文件。
需要得到这样的过程。
首先在某个目录下建立一个Keil工程,工程名为mcc(manual compile c51,手动编译C51的意思),芯片选择Atmel的at89c52,添加三个文件,分别为:main.c,func.h和func.c进行测试。内容如下:
/* main.c */
#include <reg52.h>
#include "func.h"
void main(void)
{
display();
while(1) {
;
}
}
及
/* func.h */
#ifndef FUNC_H
#define FUNC_H
void display();
#endif // FUNC_H
和
/* func.c */
#include <reg52.h>
#include "func.h"
void display()
{
P1 = 0x0f;
}
将其添加到Keil工程,执行,看看有没有错误和警告。
然后打开“Target Options…”对话框,如下图:

在弹出的Options for Target ‘Target 1’对话框中,选Output选项卡,勾选上“Creat HEX File”和“Create Batch File”两个选项,如下图:

然后点击OK,后再次执行,这个时候回到mcc工程目录下,能看到生成了hex文件,同时生成一个Target 1.BAT文件,这是个windows批处理脚本。用文本编辑器将其打开,内容如下:
SET C51INC=e:\Keil\C51\INC\Atmel\;e:\Keil\C51\INC\
SET C51LIB=e:\Keil\C51\LIB
SET CPU_TYPE=AT89C52
SET CPU_VENDOR=Atmel
SET UV2_TARGET=Target 1
SET CPU_XTAL=0x016E360

最低0.47元/天 解锁文章
2804





