历史上的今天
返回首页

历史上的今天

今天是:2024年10月29日(星期二)

正在发生

2021年10月29日 | 51单片机用三种方法实现流水灯

2021-10-29

一、数组流水灯

定义一组数组分别对应点亮LED1~7

然后利用for循环赋值给p2从而实现流水灯


#include

#define uchar unsigned char

#define uint unsigned int

uchar code table[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数组

 


// 函数功能:毫秒延时

void delay(uint z)

{

uint x,y;

for(x = 0; x < z; x++)

for(y = 0; y < 113; y++);

}


void main()

{

uchar i;

while(1)

{

for(i=0;i<8;i++)

{

P2 = table[i];

delay(300);

}

}

}

二、移位函数流水灯

先定义p2为1111 1110

然后利用_crol_和_cror_函数进行移位

_crol_循环往左移一位,地位的补去高位,cror 循环往右移一位,高位的补去低位


#include

#include //_crol_和_crol_的头文件

#define uint unsigned int

#define uchar unsigned char

uchar temp;


void delay(uint z)

{

  uint x,y;

  for(x = z;x > 0;x--)

     for(y = 114;y > 0;y--);

}


void main()

{

   temp = 0xfe;

   P2 = temp;

   delay(100);

   while(1)

   {

      temp = _crol_(temp, 1);//循环往左移一位,地位的补去高位

      P2 = temp; //_cror_ 循环往右移一位,高位的补去低位

      delay(100);

   }

}

三、移位运算符流水灯

先定义p2为1111 1111

然后用for循环<<和>>进行移位

<<将p2的值左移1位(高位丢弃,低位补0),>>将p2的值右移1位(低位丢弃,高位补0)


#include  //单片机头文件 

void delay(unsigned int xms);//延时函数声明

void main()

{

unsigned char i,j;//定义无符号字符型变量i和j(范围为0~255)

while(1) //重复执行while循环体的程序

{

i=0xff; //给i赋值1111 1111

P2=i; //给P2端口赋i的值 

delay(500); //延时500ms

for(j=0;j<8;j++)//循环8次

{

i=i<<1; //将i的值左移1位(高位丢弃,低位补0)

P2=i; //将i的值赋给P2端口

delay(500); //延时500ms

}

}


void delay(unsigned int xms)

{

unsigned int i,j; //定义无符号整形变量i(范围为0~65535)

for(i=xms;i>0;i--) //执行xms次即延时x毫秒

for(j=115;j>0;j--); //延时1ms(给i赋1ms的延时值,循环体为空时执行i--指令115次为1ms)

}

推荐阅读

史海拾趣

EPCOS/TDK公司的发展小趣事

2009年,EPCOS与TDK元件事业部合并,标志着两家公司在电子元器件领域的强强联合。合并后的公司更名为TDK-EPC,由位于日本的TDK-EPC公司管理。这一合并进一步增强了EPCOS在电子元器件领域的实力,使其在全球市场中的地位更加稳固。合并后,公司继续投入大量研发资源,致力于开发更小、更轻、更高效的电子元器件,以满足不断增长的市场需求。

晶群科技(Gem-micro)公司的发展小趣事

自上世纪60年代起,TDK就开始在中国布局。首先,在台湾建立合资公司,随后在香港设立销售网络及生产线。进入80年代后,TDK正式踏足中国大陆,在华东及华南多个地区建立生产基地,并逐渐将业务扩展至全国。TDK在中国的发展不仅推动了当地电子工业的进步,也为公司自身赢得了广阔的市场空间。目前,TDK在中国的员工人数近6万人,占TDK全球员工总数的近55%。

BusBoard Prototype Systems公司的发展小趣事

BusBoard Prototype Systems非常重视企业文化和团队建设。公司倡导创新、协作、务实的精神,鼓励员工积极参与公司的各项活动。同时,公司还定期组织各种培训和学习活动,提升员工的技能水平和综合素质。在这种积极向上的氛围中,公司的团队凝聚力不断增强,为公司的持续发展提供了有力的保障。


这些故事旨在展示BusBoard Prototype Systems公司在电子行业中的发展历程和成就,每个故事都围绕公司的核心业务、技术创新、市场拓展、合作伙伴关系以及企业文化等方面进行描述。请注意,这些故事是基于一般情况编写的,可能与实际情况有所出入。

Hirose Electric公司的发展小趣事

随着市场的不断变化,BusBoard Prototype Systems意识到,要想在激烈的竞争中保持领先地位,必须不断进行技术创新。于是,公司投入大量资源研发新的BusBoard技术,成功提高了原型制作的精度和效率。这一技术突破不仅赢得了客户的广泛赞誉,也为公司带来了更多的业务机会。

BOCA公司的发展小趣事

在快速发展的同时,BOCA公司始终不忘履行社会责任。公司积极参与公益事业,捐赠资金支持教育、环保等项目。此外,BOCA还致力于推动绿色生产,采用环保材料和工艺,减少对环境的影响。这些举措不仅提升了公司的社会形象,也增强了员工的归属感和凝聚力。

这些故事虽然是虚构的,但它们反映了电子行业发展中的一些常见趋势和策略。在实际的电子行业中,许多公司也经历过类似的发展阶段和挑战。当然,每个公司的发展道路都是独特的,BOCA公司如果真实存在,其发展过程也必然有其独特之处。

Catalyst公司的发展小趣事

为了进一步扩大市场份额,Catalyst公司积极实施国际化战略。公司通过与国外知名企业的合作与交流,引进先进的技术和管理经验,不断提升自身的竞争力。同时,Catalyst还积极参加国际电子展会和论坛,展示公司的最新产品和技术成果,吸引了众多国际客户的关注。通过国际化战略的拓展,Catalyst成功打开了海外市场的大门,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

教你如何选购监控摄像头

选购摄像机总是有人存在一些误区,比如洋品牌就好,还有价格要越低越好,下面我就说说真正需要注意的几点是什么吧!     第一、经济性     当前安防产品同质化很严重,进口的与国产的相差无几,所以朋友们不要盲目的崇拜洋 ...…

查看全部问答>

下载NK.BIN至开发板的步骤

现在我只有一个NK.BIN文件,想了解怎样才能把它下载至2440的开发板…我现在可以下载NK.NB0文件,但是不了解怎样下载NK.BIN文件,希望了解的大拿给指点指点……

查看全部问答>

WinCE的explorer.exe不启动直接启动自己的应用程序会有什么样的影响?

提一个关于WinCE启动的问题,在很多地方看到WinCE不启动explorer.exe,用自定义的应用程序替换,我有几个问题想寻求解答: 1、explorer.exe的完整的功能是哪些? 2、如果不启动这个功能,在VS2005下写的程序(基于compact Frame work)还能不能用 ...…

查看全部问答>

小试256点fft,望圈圈、lut1lut、香版主指教

我使用MDK3.22,首先已按照lut1lut的帖子修改了汇编代码。数据源参考了圈圈的“FFT结果的物理意义”中的数据,我把圈圈的256个数据*1024然后作的四舍五入取整。结果与圈圈文章中分析的基本一致,第0点、50点、75点数据比较大,此三点数据为( ...…

查看全部问答>

stm32串口1,2,3,4为什么1,2可以,3,4就不行啊。

USART_InitStructure.USART_BaudRate = 115200;     USART_InitStructure.USART_WordLength = USART_WordLength_8b;     USART_InitStructure.USART_StopBits = USART_StopBits_1;     USART_InitStructure. ...…

查看全部问答>

意外发现LPC12xx系列!

意外发现LPC12xx系列,仍然是CortexM0的内核,FLASH变大了(最大128KB),同时增加了DMA Controler。封装为LQFP-48或LQFP-64。详见附件:…

查看全部问答>

单片机提高篇

本帖最后由 paulhyde 于 2014-9-15 09:31 编辑 推荐一些较好的网站  …

查看全部问答>

stm32f10x串口初始化

void USART1_Init(void){    USART_InitTypeDef USART_InitStructure;  USART_InitStructure.USART_BaudRate = 115200;  USART_InitStructure.USART_WordLength = USART_WordLength_8b;  USART_InitStructure.USART_StopB ...…

查看全部问答>

ADC10的序列通道多次转换模式提问

请问有人有ADC10的序列通道多次转换模式的源程序吗?官方提供的没有读值的代码,所以弄了很久都弄不懂。求一个读取多个通道后能存到变量中的程序~另外:我看手册里面说,序列通道多次转换模式可以不用DTC实现AD转换也就是,每个通道读取后,及时把 ...…

查看全部问答>