上次我们点了个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