LED灯的任意操纵

来源:互联网 发布:win7上安装ubuntu系统 编辑:程序博客网 时间:2024/04/29 14:54

掌握好单片机LED灯的随意操纵。此程序目的,令Led灯由中间向两边分开,
此处疑问:为何单片机闪烁到中间二个或者边上两个延迟时间大概是其他灯亮的二倍。而若设置当中间二个或者边上的延迟时间稍短时(如下程序),则会出现正常的延迟时间。

#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar temp1,temp2,temp; void delay(uint n);void main(){    temp1=0xef;     temp2=0xf7;    temp=temp1&temp2;    P1=temp;    delay(1000);    while(1)    {        temp1=_cror_(temp1,1);        temp2=_crol_(temp2,1);        temp=temp1&temp2;        P1=temp;        if(temp1==0xfe||temp2==0x7f)            delay(500);        else if(temp1==0xef||temp2==0xf7)            delay(500);        else             delay(1000);    }}void delay(uint n){    uint i,j;    for(i=0; i<n; i++)        for(j=0; j<110; j++)            ;}
0 0