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--);
}

实现单片机流水灯操作。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • android之SQLite数据库insert操作

    原型:long android.database.sqlite.SQLiteDatabase.insert(String table, String nullColumnHack, ContentValues values) 参数介绍:table: 要插入数据的表的名称nullColumnHack:当values参数为空或者里面没有内容的时候,我们insert是会失败的(底

  • ie浏览器activexobject_ie8 object.defineproperty

    ie浏览器activexobject_ie8 object.defineproperty切记:ActiveX是微软的东西,故而这玩意儿只有IE才支持!JavaScript中ActiveXObject对象是启用并返回Automation对象的引用,javaScript中利用ActiveXObject来创建FileSystemObject操作文件。一、功能实现核心:FileSystemObject对象要在javascript中实现文件操作功能,主要就是依

    2022年10月11日
  • 数据库迁移常见的四种方法

    数据的迁移就像搬家,基本每个用过手机的人都做过数据迁移,将旧智能手机中的电话号码、照片、微信聊天记录导入到另一台新的智能手机。因此数据迁移并不神秘。在上云的过程中,因数据的量更大、数据重要性更大、专业性更强,因此在公有云上诞生了“云迁移”这项目服务,在公有云市场也有上百个云服务商专业做“云迁移”服务。今天我们来讲三种常用的云数据库迁移方法。一、为什么做云迁…

  • ORAN专题系列-21:主要的玩家(设备商)以及他们各自的态度、擅长领域

    爱立信:是O-RAN重要的成员,也是标准化起草单位之一,他们支持的是O-RAN的智能化和自动化,但他们公开表示抵制O-RAN的开放化,并公开批评过O-RAN政策联盟,抵制中兴和华为的行为。他们虽然反对对前传接口的开放。但处于商业的目的或处于迫于运营商的压力,他们还是使用爱立信的O-DU与富士通的FR1O-RAN为DoCoMo提供了互联互通,他们使用爱立信的O-DU与三星的FR2O-RAN为AT&T提供了互联互通。他们对O-RAN对O-RAN的整体的价格、性能、维护管理、O…

  • JavaScript 基本知识

    JavaScript 基本知识bilibiliJS视频链接:https://www.bilibili.com/video/BV1W54y1J7Ed?p=2&spm_id_from=pageDrivervscode配置html:https://blog.csdn.net/caohongxing/article/details/108632859目录JS来源JavaScript核心由三部分组成书写位置:行内式,内嵌式,外链式变量:var准备一个容器,变量名有规格且区分大小写JS中的数据:基本数据类型和引用数据类型.

    2022年10月20日
  • crontab 定时同步时间_linux的crontab用法

    crontab 定时同步时间_linux的crontab用法1.首先需了解linux内一任务计划工具crontabcrontab可以定时去执行你要做的动作直接用crontab命令编辑 crontab -u//设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab-l//列出某个用户cron服务的详细内容 crontab-r//删除某个用户的cron服务 crontab-e//编辑某个用户的cr…

发表回复

您的电子邮箱地址不会被公开。

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