51单片机实现流水灯

51单片机实现流水灯文章目录51单片机实现流水灯一、点亮第一个LED灯二、流水灯1.总线型控制2.延时函数3._crol_函数使用4.实现流水灯51单片机实现流水灯以下是本篇文章正文内容,下面案例可供参考一、点亮第一个LED灯#include<reg52.h>#defineuintunsignedint//简化定义#defineucharunsignedchar//同上sbitD1=P2^1;voidmain(){ D1=0;}代码中D1代表着位定义,相.

大家好,又见面了,我是你们的朋友全栈君。


51单片机实现流水灯

以下是本篇文章正文内容,下面案例可供参考

一、点亮第一个LED灯

#include <reg52.h>
#define uint unsigned int //简化定义
#define uchar unsigned char//同上
sbit D1=P2^1;
void main(){ 
   
		D1=0;
}

代码中D1代表着位定义,相当于将LED灯对应管脚的位置起一个名字。单片机初始状态管脚默认为高电平,即对应值为1。所以如果想要点亮LED灯,只需要让他的管脚电平为低即可。

二、流水灯

1.总线型控制

设计一个流水灯,如果使用位操作,需要一个个去定义。这无疑是十分繁琐的。所以这里我们采用总线型操作。

总线型这种总线制方法可以统一控制十位数相同的管脚。
例如如果想要控制P1.0-p1.7的电平情况,具体编程方法是根据所需要的结果,标出每个管脚对应的01值,从前到后排列,然后转化为十六进制,直接令P1=0x+对应十六进制数。这样只用一行代码实现多个管脚控制。

#include <reg52.h>
void main()
		P1=0x80;//对应十进制数字10000001,对应P1的首个管脚与最后一个管脚高电平。
}

2.延时函数

代码如下(示例):

void delay(uint i){ 
   
while(i--);
}//此函数可以用来控制特定时长的延时,具体时间由单片机晶振频率决定。

3._ crol _函数使用

_crol_函数功能:将 c 进行b位左位移,并将值以unsigned char类型返回;

#include <intrins.h>//_crol_函数在intrins.h函数库中。
unsigned int temp;
temp=0xfe;
P1=temp;
temp=_crol_(temp,1);//第一个变量用来控制位,第二个用来控制每次移动的位数。

4. 实现流水灯

#include <reg52.h>
#include <intrins.h>
#define uint unsigned int 
#define uchar unsigned char
void delay(uint i);
void main(){ 
   
	uint temp=0xfe;
	while(1){ 
   
		P2=temp;
		temp=_crol_(temp,1);
		delay(10000);
	}
}
void delay(uint i){ 
   
while(i--);
}

实现单片机流水灯操作。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141951.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BN层理解_理解六层次总结

    BN层理解_理解六层次总结bn层计算的均值和方差是channel的输入数据是nchw,求得的均值和方差均是长度为c的向量mini-batch指的是一个batch的所有样本对应通道组合成一个minibatch,1个nchw的数据有c个mini-batch一个mini-batch在一起进行求均值和方差HW的归一化,求出NC个均值与方差,然后N个均值与方差求出一个均值与方差的Vector,size为C,即相同通道的一个mini_batch的样本求出一个mean和variance每次迭代时采用的是滑动平均方式更新,.

    2022年10月14日
    2
  • C语言3×3二维数组_什么是二维数组

    C语言3×3二维数组_什么是二维数组C语言目录C/C++学习资源(百度云盘链接)计算机二级资料(过级专用)C语言学习路线(从入门到实战)编写C语言程序的7个步骤和编程机制C语言基础-第一个C程序C语言基础-简单程序分析VS2019编写简单的C程序示例简单示例,VS2019调试C语言程序C语言基础-基本算法C语言基础-数据类型C语言中的输入输出函数C语言流程控制语句C语言数组——一维数组二维数组前面介绍了…

    2022年7月27日
    4
  • MySQL主从复制常见故障及解决方法

    MySQL主从复制常见故障及解决方法

    2022年3月12日
    54
  • vdbench数据校验翻译

    vdbench数据校验翻译本文翻译自vdbench的使用手册中的数据校验章节,如有纰漏,还请不吝赐教。vdbench源码下载地址:https://www.oracle.com/downloads/server-storage/vdbench-source-downloads.html数据校验在性能测试的时候不应该被使用,处理器开销可能影响性能测试的结果。在我开始之前,我想问一个想了很多次的问题:“为什么我使用vdbench去检查数据冲突?我也可以写一个大文件,计算校验和,然后重新读这个文件并比较校验和。”当然,你可.

    2022年5月12日
    51
  • Qt中使用Json

    Qt中使用Json

    2021年11月19日
    61
  • Java英文简历(java工程师求职简历)

    java工程师英文简历范文要仔细检查已成文的`个人简历,绝对不能出现错别字、语法和标点符号方面的低级错误。最好让文笔好的朋友帮你审查一遍,因为别人比你自己更容易检查出错误。java工程师英文简历范文篇一yjbysMale,20,ThecantoneseEducation:collegeWorkinglives:freshgraduatesExpectedsalary:3000-5…

    2022年4月16日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号