流水灯程序

时间:2023-03-13作者:佚名

  我们前边学了点亮LED小灯,然后又学了LED小灯闪烁,下边我们要进一步了解一下如何让8个小灯依次一个一个点亮,流动起来。

流水灯程序

图1 LED小灯电路图

   通过前面的课程,我们可以了解到控制引脚P0.0通过了74HC245控制DB0,P0.1控制DB1......P0.7控制DB7。我们还学到一个字节是8位,我们如果写一个P0,就代表了P0.0到P0.7的共8个位。比如我们写P0 = 0xFE;转换成二进制就是0b11111110,所以点亮LED小灯的程序,实际上我们可以改成另外一种写法,如下所示。

#include

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

void main()

{

ENLED = 0;

ADDR0 = 0;

ADDR1 = 1;

ADDR2 = 1;

ADDR3 = 1; //74HC138开启三极管

P0 = 0xFE;

while(1); //程序停止在这里

}

  通过上边这个程序我们可以看出来,可以通过P0来控制所有的8个LED小灯的亮和灭。我们下边要进行依次亮和灭,怎么办呢?从这里就可以得到方法了,如果想让单片机流水灯流动起来,依次要实现的结果是:0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F。

  在我们的C语言当中,有一个移位操作,其中<<代表的是左移,>>代表的是右移。比如a = 0x01 << 1就是a 的结果等于0x01左移一位。大家注意,移位都是指二进制移位,那么移位完了,本来在第0位的1移动到了第一位上,移动完了低位是补0的。所以a的值最终是等于0x02。

  还要学习另外一个运算符~,这个符号是按位取反的意思,同样,按位取反也是针对二进制而言。比如a = ~(0x01),0x01的二进制是0b00000001,按位取反是0b11111110,那么a的值就是0xFE了。

  学会了这两个符号后,那么我们就可以把流水灯的程序写出来,先把程序贴上。

#include

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

void main()

{

unsigned char j = 0;

unsigned int i = 0;

ENLED = 0;

ADDR0 = 0;

ADDR1 = 1;

ADDR2 = 1;

ADDR3 = 1; //74HC138开启三极管Q16

while(1) //程序死循环

{

P0 = ~(0x01 << j ); //P0等于1左移j位,并且j

for(i=0; i<20000; i ); //延时

if(j == 8) //如果j等于8,重新给j赋值0

{

j = 0;

}

}

}

  这里我只讲两种情况,当j等于0的时候,1左移0位还是1,那么写成二进制后就是0b00000001,对这个数字按位取反就是0b11111110,亮的是最右边的小灯。当j等于7的时候,1左移7位就是0b10000000,按位取反0b01111111,亮的是最左边的小灯。中间  过程大家自己分析一下。

  流水灯结束后,关于小灯的讲解,我们暂时告一段落,后边还有小灯的高级用法,我们到时候再详细讲解。

相关阅读

水电改造注意点这么多,装修前做足功课避免被坑!

装修中最需要注意的环节就是水电环节了,作为一个隐蔽工程,水电做不好,将会非常麻烦,还会花掉很多不必要的钱,为生活带来极大的不便,是需要我们特别注重的环节。 了解注意...
2023-06-11
水电改造注意点这么多,装修前做足功课避免被坑!

基于LM350K的35V可调电源电路图

电子实验室中最需要的仪器之一是可调电源,使您可以为每个测试或构建的电路提供所需的电压和电流。 这里所示的可调电源电路只是一个线性电源、桥式整流器和滤波电容器,其附加...
2023-08-16
基于LM350K的35V可调电源电路图

无缘无故地扣钱,大家怎么看待

电工小白无缘无故被罚500大洋,心里特别郁闷。 本来是一名工厂的维修电工icon,负责维护和修理各种电器设备。突然因为车间的PH电极测量值不准,需要在短时间内完成。然后电工小白...
2023-04-04
无缘无故地扣钱,大家怎么看待

电气工程设计与计算(电容、电感)

电容器容量与电容量之间关系的计算 (1)计算公式 电容器容量符号为Q C ,单位为var或kvar;电容器电容量符号为C ,单位为μF或F等。 电容器容量与电容量之间的关系是 I C =ω CU e ×10...
2023-06-13
电气工程设计与计算(电容、电感)

万用表10条绝对不能碰的操作禁忌,新手老手都要记牢

禁忌1:带电测量时,严禁随意切换量程档位 很多人在测量过程中,发现量程不合适,便直接在表笔仍接触带电电路的情况下拨动档位开关。此时电路中的电压/电流会在档位切换的触点断开...
2026-06-08

热销商品

手术衣一次性防护服打农药防尘实验服参观服加厚透气无纺布隔离衣

手术衣一次性防护服,作为一种重要的医疗防护用品,广泛应用于医院、实验室等场所。它采用加厚透气无纺布制成,具有优良的防尘、防污、防病毒能力,能有效保护医护人员免...
14

欧普照明led灯泡e27/e14大小螺口超亮家用节能灯螺旋暖白光球泡

欧普照明LED灯泡,适用于E27和E14两种常见螺口,是您家用照明的理想选择。这款灯泡采用先进LED技术,亮度超群,瞬间点亮,无需等待,为您提供明亮舒适的光环境。同时,它节能环...
3.59

LED柜内照明灯 AC220V 4W 7W配电箱导轨式 LL10-W 高压柜内照明灯

LED柜内照明灯AC220V 4W/7W配电箱导轨式LL10-W是一款专为高压柜、配电箱等封闭电气设备设计的紧凑型照明产品。采用高效LED光源,功耗低(4W/7W可选),亮度高,寿命长,节能...
7

密封胶条包邮耐磨耐高温耐腐蚀圆柱棒丁晴/氟胶实心硅胶胶条红色

本品采用优质丁腈橡胶(NBR)或氟橡胶(FKM)及实心硅胶材质制成,呈红色圆柱棒状,具备卓越的耐磨、耐高温(-40℃至+200℃以上,氟胶可达250℃)、耐腐蚀性能,适用于酸、碱、油类等...
1

小木锤木锤子实木木榔头圆头木锤实木棰木头锤子木柄锤黄檀手工锤

小木锤采用优质黄檀木精心打造,通体实木结构,质地坚硬、纹理细腻,手感温润舒适。圆头设计兼顾敲击与整形功能,适用于木工、雕刻、家具组装及日常维修等场景。木柄经精...
3.4

网站栏目