码迷,mamicode.com
首页 > 其他好文 > 详细

51单片机的初了解(8)

时间:2018-06-11 02:05:44      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:char   移位运算符   语句   delay   延时   ++   family   执行   语言   

C语言循环语句学习

1、while循环(条件初始化)

while(条件)

{

        //循环体,若干条代码

      //循环体中包含条件增量

}

 

2、for循环

for(循环初始化;循环条件;循环增量)

{

           //循环体

}

for(i=100;i>0;i--)

{

         for(j=100;j>0;j--)

    {

      ;

    }

}

 

3、do while循环

 

流水灯效果实现

流水灯本质:不同的亮的状态相互间隔一定时间。

0x80(10000000)

0x40(01000000)

0x20(00100000)

0x10(00010000)

0x08(00001000)

0x04(00000100)

0x02(00000010)

0x01(00000001)

延时时间越长流水灯流的越慢,越短就流水越快;

8个状态执行一次,完成后从头开始,即循环。

 

编程实现流水灯

while(1)               //1永远为真,死循环

{

}

缺陷:功能实现,写的太笨

改进思路:通过变量运算来得到合适的端口输出值

1)定义变量unsigned char a,初值等于0x80(10000000)

2)8个状态,即a依次右移0-7位

 

C语言移位运算

C语言移位运算符,>>可以右移,<<可以左移。(无符号数移位,空出的位用0补)

例:12345678

>>1     01234567                      <<1      23456780

>>2     00123456                      <<2      34567800

 

void main(void)

{

      unsigned   char  i=0;

   unsigned   char  d=0x80;

   while(1)

   {

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

      {

                  P0=(d>>i);              //d在正在操作中一直不变

         delay();

             }

      }

}

void main(void)

{

      unsigned   char  i=0;

   while(1)

   {

            unsigned   char  d=0x80;

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

      {

          d=d>>1;             //在每次循环时d会变化

                  P0=d;

         delay();

             }

       }

}

51单片机的初了解(8)

标签:char   移位运算符   语句   delay   延时   ++   family   执行   语言   

原文地址:https://www.cnblogs.com/zzz2333/p/9165119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!