单片机 【点亮一个发光二极管】

主要的电路

 

当单片机的端口为低电平时,发光二极管被点燃(共阳极)

 

 1 //检测是否是低电平二极管亮
 2 #include <reg52.h>
 3 
 4 sbit LED = P1^2;   //端口位定义
 5 
 6 int main()
 7 {
 8  while(1)
 9  {
10    LED = 0;       //将端口拉低
11   
12  }
13 
14 
15 }

假如我想把所有的灯全部点亮,那么代码如何修改

 1 /*
 2 作者:王者V领
 3 出处:https://www.cnblogs.com/Crown-V
 4 时间:-- -- --
 5 功能:流水灯
 6 intrins.h头文件包含三个函数:
 7 
 8         _crol_(what,mov_num):
 9              what是想要移位的东西,mov_num为每次调用时移动几位
10         
11         _cror_(what,mow_num):
12                what是想要移位的东西,mov_num为每次调用时移动几位
13         
14         _nop_():
15            空操作,一般用来时间的延迟
16         
17 */
18 
19 #include <reg52.h>
20 #include <intrins.h>   
21 #define uchar unsigned char 
22 #define uint unsigned int   //把新的定义成旧的
23 
24 void delay(uint z)
25 {
26   uchar x;
27   while(z--)
28   {
29     for(x=114;x>0;x--)
30     {
31         ;
32     }
33   }
34 }
35 int main()
36 {
37  
38  P1 = 0x7f;           //01111 1111   1是灭 0是亮
39  while(1)
40  {
41          P1 = _cror_(P1,1);      //    向右移动1位
42       delay(500);
43     
44  }
45 
46 
47 }

 

 

 

/*
作者:王者V领
出处:https://www.cnblogs.com/Crown-V
时间:-- -- --
功能:流水灯
intrins.h头文件包含三个函数:

        _crol_(what,mov_num):
             what是想要移位的东西,mov_num为每次调用时移动几位
        
        _cror_(what,mow_num):
               what是想要移位的东西,mov_num为每次调用时移动几位
        
        _nop_():
           空操作,一般用来时间的延迟
        
*/

#include <reg52.h>
#include <intrins.h>   
#define uchar unsigned char 
#define uint unsigned int   //把新的定义成旧的

void delay(uint z)
{
  uchar x;
  while(z--)
  {
    for(x=114;x>0;x--)
    {
        ;
    }
  }
}
int main()
{
 
 P1 = 0xfe;           //0000 0001   1是灭 0是亮
 while(1)
 {
         P1 = P1<<1;      //    向左移动1位
      delay(500);
    
 }


}

 

posted @ 2019-04-19 21:14  Crown-V  阅读(507)  评论(0)    收藏  举报