上次我们点了个1,其实只是点个流水灯还是单调的。

这次让我们试试别的

1多个自来水灯的照明

打开一个并关闭原始的c文件

左边的也删除了,因为我不喜欢重新创建项目

按照昨天的方法新建一个C文件添加到项目中

写代码。

# & ltreg52.h>。

sbit led 1 = p1^0;

sbit led 3 = p1^2;

sbit led 5 = p1^4;

sbit led 7 = p1^6;

main

{

LED 1 = 0;

LED 3 = 0;

LED 5 = 0;

LED 7 = 0;

}

以上是代码。

c,就像上次一样,连接usb,烧程序

在这里,因为是在同一个项目中,所以十六进制文件的名称保持不变。

可以看到1,3,5,7流水灯亮着。

不太好,但是在板子上应该能看清楚。

2打开和关闭自来水灯

一直开着灯很无聊。让他们动起来

我们已经知道LED1 = 0;;开始,

LED1 = 1高电平关闭

如何让一盏自来水灯亮一段时间练习,熄灭一段时间?

这可以通过延迟功能来实现。在延迟函数中,什么都不做。

新建一个C文件,注意自己的命名,最好不要出现中文,形成自己的命名规则

写下代码

请解释以下内容:

# uint未定int是一个宏定义,用c语言学过

//是单行注释

/*是多行注释*/

for;

for;

1为什么使用两个for循环?

两个for循环是嵌套的,因为一个for循环的延迟时间不足以让人们注意到。这对人眼是显而易见的

为什么第二个for循环后面直接跟一个分号

直接分号的意思是不执行任何代码,只是简单的延迟。

燃烧程序

观察流水灯

仔细观察流水灯。第一个流水灯会亮一段时间,然后熄灭一段时间,然后再亮,循环开启

应该有一个类似的循环,其中1表示中的语句将一直执行。

这也是很重要的一点。很多程序都有while这样的循环。

这是单片机本身决定的。如果某些单片机程序中没有循环程序,就会从头到尾执行,然后回到开头继续执行。不断重复。但是有些单片机再次执行后会停机。其他的可能执行完就乱序了,只是不知道程序在哪里!所以在编写单片机程序时,最好加while循环,即使你的程序只运行一次,你也要在最后加while;使其始终指向这种说法而不误操作。

还有,这里有不准确的延迟,因为某些原因,这里没有准确的延迟。

3流水灯来回亮

我们点亮了流水灯,但是怎么依次打开呢?

一些学生会想到这个方法

其实这样写也是可以的。你会看到流水灯从1到4依次亮起

这里写着,P1 = 0xff表示当所有四个运行灯都点亮时,整个P1端口8设置为1。

也就是完全熄灭。这样就可以看到流水灯依次打开,全部熄灭,依次打开

其实还有一个办法。

b头文件的功能使用

Intrins是一个包含许多函数的头文件。这里有两个

_ crow _字符向左循环移动

字符循环地向右移动

以_cror_为例

我们都知道P1港控制水上灯P1有八位

默认情况下,P1 = 0xff // 1111 1111

假设您编写了以下代码

首先,如果您想使用_cror_函数,您首先需要头文件内部

该语句是# include

这里定义了一个temp=0x7f // 0111 1111

P1 =温度,所以开始时,第八盏自来水灯亮着

强制循环意味着重复该操作

temp = _cror_;

上面的陈述意味着P1端口向右循环移位一位

所以第七个流水灯亮,其他的都是1。

这里还有一点就是定义了延迟函数,延迟是一个没有返回值的函数

有两种定义方法,和C语言中的一致。

那你就明白了。流水灯先点亮第八盏,然后依次点亮,其他的不灭。

好的,_ crow _的用法是一样的,只是依次点亮,或者可以间隔点亮

temp = _cror_;只需将1改为2

原始链接:

1.《流水灯 51单片机学习之陆 —— 1.3 流水灯的花样玩法》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《流水灯 51单片机学习之陆 —— 1.3 流水灯的花样玩法》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1793361.html