###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

目录
相关文章
|
11月前
|
算法 物联网 芯片
基于STM32和51单片机的8位全彩流水灯程序模板
基于STM32和51单片机的8位全彩流水灯程序模板
1002 97
|
存储 自然语言处理 编译器
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
1270 1
|
C语言
51单片机汇编语言流水灯代码
51单片机汇编语言流水灯代码
681 1
51单片机的延时函数快速生成技巧
51单片机的延时函数快速生成技巧
1055 1
|
C语言
【总结】单片机重点知识总结记录之C语言条件编译(五)
【总结】单片机重点知识总结记录之C语言条件编译(五)
304 0
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
537 0
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
587 4
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
【单片机】简单的自定义延时程序设计(代码演示)
【单片机】简单的自定义延时程序设计(代码演示)