首页 > 其他分享 >流水灯实现

流水灯实现

时间:2024-03-19 18:44:47浏览次数:8  
标签:u8 实现 void unsigned -- 流水 define u16

实现1:位移+取反实现

点击查看代码
#include <stc89c5xrc.h>
#define u16 unsigned int
#define u8 unsigned char
void delay(u16 c)
{
	u16 a,b;
	for(a=c;a>0;a--)
		for(b=115;b>0;b--);
}
void main()
{
	u8 i=0;
	while(1)
	{
		 for(i=0;i<8;i++)
		 {
			P1=~(0X01<<i);
			delay(100);
		 }
	}
}

实现2:调用库函数_crol_和_cror_

点击查看代码
#include <stc89c5xrc.h>
#include <intrins.h>
#define u16 unsigned int
#define u8 unsigned char
void delay(u16 c)
{
	u16 a,b;
	for(a=c;a>0;a--)
		for(b=115;b>0;b--);
}
void main()
{
	u8 i=0;
	P1=0XFE;
	while(1)
	{
		 for(i=0;i<7;i++)
		 {
			P1=_crol_(P1,1);//left move one bit
			delay(300);
		 }
		 
		 for(i=0;i<7;i++)
		 {
			P1=_cror_(P1,1);//right move one bit
			delay(300);
		 }
	}
}

实现3:通过数组实现

点击查看代码
#include <stc89c5xrc.h>
#include <intrins.h>
#define u16 unsigned int
#define u8 unsigned char
u8 code led[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(u16 c)
{
	u16 a,b;
	for(a=c;a>0;a--)
		for(b=115;b>0;b--);
}
void main()
{
	u8 i=0;
	P1=0XFE;
	while(1)
	{
		 for(i=0;i<8;i++)
		 {
			 P1=led[i];
			 delay(300);
		 }
		 
	}
}

标签:u8,实现,void,unsigned,--,流水,define,u16
From: https://www.cnblogs.com/caoruipeng/p/18083649

相关文章

  • linux-实现日志分析--python
    linux-实现日志分析--python涉及到的主要python包和系统命令:1.datetime#用于处理时间2.subprocess#用于调用命令行工具3.tail-flogFile#获取logFile新增内容废话不多说,下面说一下场景需求和具体解决方案。1.[场景需求]一个区块链项目,在项目测试过程中,通过日志发......
  • Java自定义注解实现参数校验
    1、定义注解内    自定义如下,本例子以校验手机号码为例需要校验手机号码标上此注解即可。其中Mobilelidator类则是实现自定义校验ConstraintValidator类的接口实现类2、ConstraintValidator 定义接口实现  ConstraintValidator 自定义接口实现如下图......
  • 探索发布-订阅模式的深度奥秘-实现高效、解耦的系统通信
    ​......
  • 鸿鹄电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业
    随着企业的快速发展,招采管理逐渐成为企业运营中的重要环节。为了满足公司对内部招采管理提升的要求,建立一个公平、公开、公正的采购环境至关重要。在这个背景下,我们开发了一款电子招标采购软件,以最大限度地控制采购成本,提高招投标工作的公开性和透明性,并确保符合国家电子招投标......
  • 探索发布-订阅模式的深度奥秘-实现高效、解耦的系统通信
    ​......
  • Locust 集合点的实现?
    一、什么是集合点?集合点用以同步虚拟用户,以便恰好在同一时刻执行任务。在[测试计划]中,可能会要求系统能够承受1000人同时提交数据,可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,就检查同时有多少用户运行到集合点,如果不到1000人,已经到集合点的......
  • C语言进阶篇之字符函数和字符串函数(含模拟实现库函数)
    本篇主要整理了C语言字符函数和字符串函数的介绍,使用,以及库函数的模拟,持续更新中。老铁们,整理不易,创作不易,先赞后看养成习惯,你的支持是对我更新最大的鼓励!函数介绍与模拟实现1.1strlen求字符串长度size_tstrlen(constchar*str);注:1.字符串已经'\0'作为结束标......
  • QT中实现接收拖拽文件
    Qt中实现接收拖拽文件的功能主要涉及到QDragEnterEvent、QDropEvent和QMimeData等类的使用。1.启用拖拽支持:  在Qt窗口或控件启用拖拽支持,通过设置窗口或控件的acceptDrops属性为true来实现。2.重写dragEnterEvent:  重写dragEnterEvent函数,以便在拖拽操作进......
  • Mybatis使用JDBC实现数据库批量添加
    1、spring注入数据源@Resource(name="dataSource")privateDataSourcedataSource;2、连接数据库批量添加publicvoidinsertJdbc(List<StatisticStatus>statusList)throwsSQLException{Connectionconnection=null;PreparedStatem......
  • 利用Scala与Apache HttpClient实现网络音频流的抓取
    概述在当今数字化时代,网络数据的抓取和处理已成为许多应用程序和服务的重要组成部分。本文将介绍如何利用Scala编程语言结合ApacheHttpClient工具库实现网络音频流的抓取。通过本文,读者将学习如何利用强大的Scala语言和ApacheHttpClient库来抓取网络上的音频数据,以及如......