LED灯随机亮起几个灯

发布者:心灵舞者最新更新时间:2024-08-16 来源: cnblogs关键字:LED灯 手机看文章 扫描二维码
随时随地手机看文章

#include 'reg52.h'

#include 'stdlib.h'


typedef unsigned int u16;

void delay(u16 i)

{

    while(i--)

    {};


}

void main()

{

          srand(0);


          while(1)

          {

            P2=rand()&0xff;

            delay(60000);

          

          }                  


}


rand的结果为什么要和0xff与一下,因为rand的结果可能会超过0xff,而我们P2最大值就是0xff,所以与一下就能拿到随机数的低八位,一个16进制位是4个二进制位。


我刚开始没想清楚,觉得应该是和0xff或一下,一测试发现D1到D8全灭,完全不是我想要的结果。后来才反应过来,任何数和0xff或之后的结果都是0xff


那么对应的二进制就是1111 1111 可不就是8个灯都灭吗。和0xff与才对,哈哈。


关键字:LED灯 引用地址:LED灯随机亮起几个灯

上一篇:sbit和sfr到底是什么?
下一篇:LED闪烁代码 加循环和不加循环有什么区别

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved