利用Proteus和Keil5实现流水灯
问题描述:用P1口控制八个LED灯轮流亮灭
一.用Proteus绘制原理图
- 打开软件,选择新建工程
- 更改工程名称及存储位置
- 一直选择默认,直至完成。
- 点击P添加元件
- 可在关键字中搜索需要的元件:单片机AT89C51,电阻10WATT100R,电容06031A330JAT2A、CAP-ELEC,晶振CRYSTAL,LED灯LED-YELLOW。
- 如图所示连接电路(这里使用的是连线法,若元件较多建议使用网络标号法)
- 保存工程
二.利用Keil编写代码
- 打开软件,新建一个文档
- 保存文档,文件名以C为后缀
- 点击New μVision Project,新建一个项目
- 更改文件名后保存
- 点击Source Group 1,选择Add Existing Files to Group ‘Source Group 1’
- 选择流水灯的C语言文件
- 成功后可看见Source Group 1下有流水灯的C语言文件,输入如图所示代码
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char //必要变量定义
uchar temp;
void delay(uint k) //延时子程序
{
uint i,j;
for(i=7;i<k;i++)
for(j=0;j<124;j++);
}
void main() //主程序
{
temp=0xfe;
P1=temp;
while(1) //死循环
{
temp=_crol_(temp,1);
delay(500);
P1=temp;
}
}
-
编译C语言文件,可以看到没有报错。
-
右键Target 1,点击Options for Target 1
-
勾选Create HEX File,注意文件存放位置,以免后面找不到
-
点击编译,下方显示文件生成成功
三.流水灯运行
- 双击AT89C51单片机,出现如下显示框,选择生成好的流水灯hex文件
- 点击运行即可