目录
1、创建工程
(1)创建proteus工程
打开proteus软件
点击新建程序
设置文件名与保存路径
勾选DEFAULT原理图
勾选模板
一直下一步,直到选择AT89C51
最后点完成即可
(2)创建keil工程
打开keil软件,新建工程
1-选择提前下载好的Legacy库
2-输入AT89C51
然后点ok
点击魔术棒
勾选生成HEX文件
点击ok就建立完成了
2、点灯
打开提前建立好的proteus文件,打开原理图,点击左侧原件
添加LED灯(led)与电阻(res)
然后将原理图设计成下图状,地线的选择在下图左侧
点击运行,如果led灯亮了就表示成功
3、流水灯
(1)51汇编语言实现流水灯
按照proteus创建工程步骤再创建并打开一个工程
打开源码文件
把红框区域替换成下属代码
org 0100h
Start:
LJMP MAIN ;跳转到MAIN
MAIN:
MOV A,#80H ;将数80H移动到寄存器A中
LOOP:
MOV P2,A ;将寄存器A的值移动到P2端口//循环中的意义是刷新P2中的位置
LCALL DELAY ;调用DELAY函数
RR A ;将寄存器A中的内容向右循环移位
LJMP LOOP ;跳转到LOOP
DELAY: ;通过循环次数的控制来实现一定的演示效果
MOV R2,#255
D1:MOV R3,#250
D2:DJNZ R3,D2 ;寄存器减1,不为0 则转移
DJNZ R2,D1
RET
再将原理图设计成下图样式
提示:总线连接后得将应连接得两端命名相同的网络标号
点击运行,若流水灯显示正常即为成功。
(2)c语言实现流水灯
打开先前创建的keil工程,创建新文件
将下属代码复制到文件中
#include <reg51.h>
#include <intrins.h>
//延迟函数
void delay_ms(int a)
{
int i,j;
for(i=0;i<a;i++)//利用多次循环来实现延迟
{
for(j=0;j<1000;j++) _nop_();
}
}
void main(void)
{
while(1)
{
P2=0x01;
delay_ms(50);
P2=0x02;
delay_ms(50);
P2=0x04;
delay_ms(50);
P2=0x08;
delay_ms(50);
P2=0x10;
delay_ms(50);
P2=0x20;
delay_ms(50);
P2=0x40;
delay_ms(50);
P2=0x80;
delay_ms(50);
}
}
点击保存
保存文件并命名为led.c
右键文件夹,添加已有文件
选择刚刚保存的文件添加
点击编译
没显示错误则编译成功
再打开标题3-(1)的proteus文件,右键51单片机,编辑属性
改变源码地址
找到keil工程生成的hex文件并选择
如果实现了流水灯则表示成功
4、小提示
如果想重新改回使用汇编语言则只需要源码处点一下构建工程即可