分享

单片机点燃led灯编程案例

 一天一招 2017-12-07

一.点亮一个led

教学目的:本节主要是keil、proteus使用,以及51单片机的简介和最基本操作 点亮一个led

材料:proteus 7.4、keil3STC89C51 数据手册网盘地址:http://pan.baidu.com/s/1sj0WUyp

步骤:

1.单片机-单芯片微型计算机。大家可以看到单片机上有很多脚(左边是实物图 右边是管脚图)。51单片机是控制类芯片,单片机在工作时就是通过控制每个管脚的电平来操控外部电路的。

 
 
 


2.单片机管脚的电平只有两种状态 高电平(5v) 低电平(0v),我们通过编程可以控制每一个管脚是什么状态。

3.下面我们创建第一个工程 点亮一个led灯。

·  打开keil3,选择project->new project

·  选择保存路径(最好每个工程都保存在一个文件夹)

·  输入工程名字后点保存。

·  

 
 

4. 然后是选定芯片类型,Atmel->AT89C52

确认,然后会弹出一个框问是否添加启动代码,选

 
 

 

 
 

 

5.然后新建一个.c文件。File->New Ctrl+s保存(注意:后缀名必须是.c)。

添加文件到工程:双击Source Group 1 -> 选择刚才新建的.c文件 -> add -> close

 
 

 

 
 

 

6.设置工程生成hex文件。hex文件是下载到单片机 单片机课直接执行的文件。

如图选择 把选项勾上。

 
 

 

7.编写代码:

#include <reg52.h>

sbit led = P1^0;

void main()

{

led = 0;

while(1);

}

 
 

 

8.点击图中红框的按钮编译工程。

下面提示框:0警告 0错误

生成hex文件。

9.最后打开proteus仿真看效果。

双击芯片->Program File,选择刚才建立的keil工程文件夹 选中 .hex 文件 点击打开,ok

 
 

 

 

 
 

 

10.点击左下角的开始仿真按钮,仿真的效果很明显,led灯点亮了。

 
 

 

二.Keil uVision4 51单片机点亮3LED编程

Keil uVision4 51单片机点亮3LED编程

 
 

 

步骤:

1.新建项目,如图所示。

 
 

 

2.设计单片机端口与LED灯相连。

 
 

 

3.创建C语言主函数。

 
 

 

4.点亮三个LED灯。

 
 

 

5.设置一个死循环,程序停留。

 
 

 

6.发布测试。

 
 

 

三.Keil uVision4 51单片机LED闪烁编程

Keil uVision4 51单片机LED闪烁编程。

 
 

 

步骤:

1.新建项目:Keil uVision4 51单片机LED闪烁编程。

 
 

 

2.设计单片机端口与LED灯相连。

 
 

 

3.创建延迟函数

 
 

 

4.创建C语言主函数

 
 

 

5.对输出取反。

 
 

 

6.调用延迟函数。

 
 

 

四.Keil uVision4 51单片机开关LED灯编程

Keil uVision4 51单片机LED多路开关编程,多路开关状态指示。开关LED灯编程

 
 

 

步骤:

1.新建项目,如图所示。

 
 

 

2.添加reg51.h头文件。

#include<reg51.h>

 
 

 

3.sbit s2=P3^0;位定义

 
 

 

4.sbit led1=P1^0;定义灯。

 
 

 

5.创建C主函数

 
 

 

6.创建循环效果。

 
 

 

7.选择效果。

 
 

五.Keil uVision4实例 51单片机控制流水灯效果

Keil uVision4实例 51单片机控制流水灯效果,设计内容:宏定义、自定义函数、位移函数,循环。

 
 

 

步骤:

1.创建项目:51单片机控制流水灯效果。

 
 

 

2.添加包含51头文件。

 
 

 

3.包含移位标准库函数头文件。

 
 

 

4.使用预处理指令,完成宏定义:用“uchar”替换unsigned char

#define uchar unsigned char

 
 

 

5.设置灯的相关变量:

unsigned char  LED;

 
 

 

6.自定义延迟函数:

函数类型 函数名 (形式参数表)

{

局部变量定义

函数体语句

}

 
 

 

7.添加程序主体。

 
 

 

8.给变量赋值:

 LED = 0xf0;

P1 = LED; 1110 0010(0代表点亮四盏灯)

大家可以使用计算器完成,16进制与二进制的转换。

 
 

 

9.循环右移:LED = _cror_(LED , 1);

延迟60毫秒。

 
 

 

注意事项字符型循环左移:_crol_     字符型循环右移:_cror_

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多