###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯

简介: ###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯

一.  延时函数的生成

 

1.通过延时计算器得到延时函数

image.png 步骤:

 

1.打开STC-ISP找到软件延时计算器

 

2.先了解所用51单片机的频率(这里的51单片机频率为11.0592),选择你需要定时的长度,然后注意这里51单片机为AT89C52属于89系列,所以8051指令集选择STC-Y1。

 

3.点击生成C代码再复制代码

 

源码如下:

image.png

2.可赋值改变的延时函数

  这里我们可以在原有的延时函数的基础上,进行变量定义并运用while语句生成可赋值改变的延时函数。

源码:

image.png

二.  LED模块编写原理

 

1.LED模块图  

1.单片机多个接口图,LED模块接在P2口

image.png

2. LED模块图,这里我们需要注意LED的走向便于理解编写原理

image.png

3. LED与单片机连接部分

4. image.png

 

 

2.编写原理

(1)编写原理

 从上面LED的原理图中,我们对于LED知道LED具有单向导电的特征,而反向则电阻很大,所以我们需要使LED单向导电,这里我们规定0为低电平而1为高电平,根据电流的流向,判断当P2口接0即低电平时LED点亮,当P2口接1即高电平时LED不亮。

 

(2)快捷编程

1. 在编写时我们需要加上一个定义了P2口的头文件如下:

image.png

该头文件定义了所有的接口,一般编写都需要,我们可以在开始时鼠标右键空白处找到并添加。

2.由于该头文件定义了确切的接口如图:

点击打开

image.png


查看接口

image.png

这里直接定义了接口转为十六进制所以只需要对接口赋值0或1,即加高电平还是低电平。

例如:

1.定义第一个LED点亮

image.png

2. 定义第一个LED熄灭

image.png

(3)十六进制编程

 十六进制编程与上述类似即对于接口没有转换为十六进制需要自己通过原理来设计编写,即对于每个LED的状态进行规定,然后写成一个二进制代码再转为十六进制。(之前的博客有具体的转换过程)。

例如:

image.png

  这里定义D1接0,其余接1,则表示只让D1亮,这里写成二进制串需要从下往上写成1111 1110,接着由二进制转十六进制为FE,部分二进制转十六进制如图:

image.png

例如:这里在FE前面需要加上0x用于表明为十六进制,

image.png

对比:对于快捷编写来说即让人容易明白且编写方便,而对于十六进制编写则过于麻烦,但是该编写方式可以让人更加清楚的熟悉编写原理,从而更加灵活的编写同时有利于后续的编写。

三.  具体编写程序

1.通过生成没有改写的延时函数

这里在程序中我们还要引入另一个头文件,由于自动生成的延时函数中有一个语句需要被调用,为了完善程序,我们需要调用该头文件。

需要被调用的语句:

image.png

需要被调用的头文件:

image.png

打开可看到(打开方式同另一个头文件)

image.png

下面就是一个具体的程序(C语言编写的):

image.png

image.png image.png

这里主要可以多试试通过十六进制定义LED的亮灭。

2.可赋值延时函数编写

这里由于改写后没有上面的那个语句,所以也不需要添加那个头文件。

源码:

image.png

image.png

目录
相关文章
|
1月前
|
存储 编译器 C语言
初识C语言——详细入门(系统性学习day4)
初识C语言——详细入门(系统性学习day4)
|
1月前
|
编译器 程序员 开发工具
c语言从入门到实战——在系统学习C语言之前所需要了解的知识
C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归等功能,其设计提供了低级别的存取权限,并且要求程序员管理所有的内存细节。C语言的基本构成包括数据类型(如整型、浮点型、字符型等)、运算符(如算术运算符、关系运算符、逻辑运算符等)、控制结构(如顺序结构、选择结构、循环结构等)以及函数等。此外,C语言还提供了指针的概念,这是其他许多编程语言所不具备的。指针是一个变量,其值为另一个变量的地址,通过指针可以间接访问和操作内存中的数据。C语言也支持数组、结构体、联合体等复合数据类型,以及文件操作、动态内存分配等高级功能。
51 0
|
1月前
|
存储 C语言
通俗易懂的学习C语言中输入一组数并找出其最大值
通俗易懂的学习C语言中输入一组数并找出其最大值
|
9天前
|
C语言
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
|
1月前
51单片机实现led灯亮度变化!
51单片机实现led灯亮度变化!
12 0
|
1月前
|
机器学习/深度学习 人工智能 Java
学习Python语言好还是C语言好
学习Python语言好还是C语言好
21 0
|
1月前
|
传感器 物联网 C语言
单片机在智能家居中的应用:以LED灯控制为例
单片机在智能家居中的应用:以LED灯控制为例
55 0
单片机在智能家居中的应用:以LED灯控制为例
|
4月前
|
物联网
STC51单片机-实验开发装置仿真-物联网应用系统设计
STC51单片机-实验开发装置仿真-物联网应用系统设计
53 0
|
4月前
|
物联网
STC51单片机-控制LED闪亮的仿真-物联网应用系统设计
STC51单片机-控制LED闪亮的仿真-物联网应用系统设计
42 0
|
4月前
|
物联网 人机交互 开发工具
STC51单片机-阵列LED显示-物联网应用系统设计项目开发
STC51单片机-阵列LED显示-物联网应用系统设计项目开发
78 0