在熟悉了《51单片机编程学习笔记——LED原理图》一文后,我们可以根据学到的知识编写一段程序,让LED每隔一段时间闪烁一次。
不同于《51单片机编程学习笔记——编译代码点亮LED》中直接借用了教程中的工程项目,本例我们将创建一个全新的工程来完成需求。
创建工程
新建工程
打开Keil,在“Project”下找到“New uVision Project”。
定位到适合的目录下。然后在“文件名”输入框中填入项目名称(本例项目叫“twinkles”)。
选择CPU
查看我们51单片机上的文字,可以看到89C52RC。
这样我们在创建Project的过程中,选择Atmel的C89C52。
由于我们并不需要项目启动代码,所以直接选择“否”。
创建文件
我们通过“File”下的New按键,打开一个空白记事本
我们在记事本中填入下面的代码
/**************************************************************************************
深圳市普中科技有限公司(PRECHIN 普中)
技术支持:www.prechin.net
PRECHIN
普中
实验名称:LED闪烁实验
接线说明:
实验现象:下载程序后“LED模块”的D1指示灯闪烁
注意事项:
***************************************************************************************/
#include "reg52.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
sbit LED1=P2^0; //将P2.0管脚定义为LED1
/*******************************************************************************
* 函 数 名 : delay_10us
* 函数功能 : 延时函数,ten_us=1时,大约延时10us
* 输 入 : ten_us
* 输 出 : 无
*******************************************************************************/
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
while(1)
{
LED1=0; //点亮
delay_10us(50000); //大约延时450ms
LED1=1; //熄灭
delay_10us(50000);
}
}
然后保存为main.c
文件。
最后我们需要将main.c
文件添加到项目中。具体做法是在“Source Group 1”上右击,找到“Add Files to Group’Source Group1’”。
并选择刚创建的main.c
。
这样我们的代码就放置到工程中了。
配置工程
此时Build工程并不会生成hex文件。我们需要手工配置下。
右击Target
,找到其选项修改按钮。
在“Output”页面,勾选“Create HEX File”。
然后我们按照《51单片机编程学习笔记——编译代码点亮LED》中介绍的方法编译并下载到开发板上,就可以看到D1灯持续闪烁。