51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

keil proteus

第一个51程序 :让一个发光二极管闪烁

这是一篇超级详细的C51教程。1

单片机就是一个小型CPU,在电子领域应用广泛,电视、冰箱、洗衣机、空调等产品中都能见到他们的身影。它是一个可编程的mcu,根据代码的不同可实现非常多功能

首先介绍两个软件
1、keil uvision4:这是一个单片机开发软件,用于调试,生成可执行文件HEX文件
2、proteus7.8:电路仿真软件

一、首先,到网上下载一个keil uVision4开发环境(用来编写C语言程序)

二、下载好之后百度keil4的安装教程,开始按百度步骤安装

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

一定要严格按照百度教程安装

安装成功后打开软件,看到如下界面:

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

三、安装软件:Proteus 7.8

这是一个电路仿真软件,非常实用,用来绘制原理图和仿真

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

四、下面开始用Proteus建立硬件环境

把led接在P1.0上,因为我们是初学者,晶振与电源可以先省略,电路一样可以工作。

点击P:

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

然后搜索需要的元器件:AT89C51、RES、LED

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

找到之后双击添加:左边元件栏里可以看到添加的元件

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

继续添加:

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

添加完成后开始布置元器件:

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

接地符号在这里:

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

元件布置完后开始接线:点击两个点就可以连接起来

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

连接完成。。。点击保存。

五、上面两个软件都安装成功后开始我们的第一个工程的建立,参考以下代码 ,代码作用: 让一个led闪烁

#include<regx51.h>void delayms(unsigned int t)//延时函数{ int a,b; for(a=0; a<t; a ) for(b=0; b<120; b );}void main(void){ P1_0 = 0; //让P1.0口输出0 delayms(500); //延时500ms P1_0 = 1; //让P1.0口输出1 delayms(500); //延时500ms}

下面开始建立工程,打开keil,点击新建工程

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

文件名改为“第一个51程序”,点击保存

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

找到ATMEL公司的AT89S51

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

点击OK,然后新建一个文本文件

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

点击保存,文件名后缀为.c,生成一个c文件

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

写下代码

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

添加C语言文件到工程:把刚刚写的c文件添加到工程

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

*代码解读

1、

#include<regx51.h>
包含头文件<regx51.h>,为什么要包含头文件?因为要编写的是51程序,最终代码是要在51单片机里运行,所以要包含一个51头文件,这个文件包含了51所有寄存器的一些定义,怎么查看它呢,编译的时候会出现在你的工程文件中,在keil4的左边工程文件就可以查看了

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

2、

void delayms(unsigned int t)//延时函数
{

int a,b;for(a=0; a<t; a ) for(b=0; b<120; b );123

}
延时函数就是让CPU反复执行一条空指令来消耗时间,这段时间CPU仍然在工作,各寄存器的值保持不变。

3、

void main(void)
这是主函数,程序从这里开始执行

4、

P1_0 = 0; //让P1.0口输出0delayms(500); //延时500msP1_0 = 1; //让P1.0口输出1delayms(500); //延时500ms1234

P1_0是什么?P1_0是在reg51.h头文件定义的,没有头文件写P1_0编译是通不过的。P1_0的本质是一个位寄存器,存储了1bit数据,可以存储0或1,P1_0的值决定了P1_0引脚上输出的电平
P1_0 = 0;就是让P1_0输出0V
delayms(500);寄存器的值不变,P1_0持续500ms低电平
P1_0 = 1; 就是让P1_0输出5V(实际达不到5V),
delayms(500);寄存器的值不变,P1_0持续500ms高电平,循环执行,led就会以1HZ的频率闪烁了
另外,51单片机不用循环语句while,也会循环执行main函数中的内容

完整内容及代码资料可进群免费领取。

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取:扫码进群领资料

51单片机教程 第一个51程序 -点亮一个发光二极管(51单片机发光二极管原理图)

相关新闻

联系我们
联系我们
公众号
公众号
在线咨询
分享本页
返回顶部