闪烁灯

来源:互联网 发布:vb数值类型 编辑:程序博客网 时间:2024/04/24 09:45
Code:
  1. #include <reg52.h>//   
  2. sbit gate=P2^0;// 定义P2-0口  
  3. void main(void)  
  4. {  
  5. unsigned int i,j;  
  6. while(1)  
  7. {  
  8. for(i=500;i>0;i--)  
  9. for(j=500;j>0;j--);// 双重循环,延时约1秒  
  10. gate=!gate;// 对P-0口取反,控制小灯的亮灭  
  11. }  
  12. }  
Code:
  1. #include <reg52.h>  
  2. #define uint unsigned int  
  3. sbit gate1=P2^0;            // 定义P2-0口  
  4. sbit gate2=P2^1;            // 定义P2-1口  
  5. sbit gate3=P2^2;            // 定义P2-2口  
  6. sbit gate4=P2^3;            // 定义P2-3口  
  7. void main(void)  
  8. {  
  9. uint i,j;  
  10. while(1)  
  11. {  
  12. for(i=250;i>0;i--)  
  13. for(j=250;j>0;j--);         // 双重循环,延时约0.2秒  
  14.     gate1=!gate1;           // 对P-0口取反,控制小灯的亮灭  
  15.     gate2=!gate2;           // 对P-1口取反,控制小灯的亮灭  
  16.     gate3=!gate3;           // 对P-2口取反,控制小灯的亮灭  
  17.     gate4=!gate4;           // 对P-3口取反,控制小灯的亮灭  
  18.   
  19. }  
  20. }  
Code:
  1. #include <reg52.h>  
  2. #include <absacc.h>  
  3. #define unit unsigned int  
  4. #define uchar unsigned char  
  5.   
  6. sbit L0=P2^0;  
  7. sbit L1=P2^1;  
  8. sbit L2=P2^2;  
  9. sbit L3=P2^3;  
  10. uchar data BUFFER[1]={0};   /*定时器计数变量*/  
  11.   
  12. void main(void)  
  13. {  
  14. P2=0x0f;                    // 初始化端口  
  15. EA=1; IT1=1; ET0=1;  
  16. TMOD=0x01;                  /* T0方式1计时0.01秒 */  
  17. TH0=-5000/256;  
  18. TL0=-5000%256;  
  19. TR0=1;                      /* 开中断,启动定时器 */  
  20. for (;;);  
  21. }  
  22. /* 定时计数器0的中断服务子程序 */  
  23. void intserv1(void)  interrupt 1 using 1  
  24. {  
  25. TH0=-5000/256;              // 定时器T0的高四位赋值  
  26. TL0=-5000%256;  
  27. BUFFER[0]=BUFFER[0]+1;      // 定时器T0的低四位赋值  
  28. if (BUFFER[0]==100)         // 百分秒进位  
  29. {  
  30. L3=!L3;  
  31. L2=!L2;  
  32. L1=!L1;  
  33. L0=!L0;  
  34. }  
  35. }  

 

 

原创粉丝点击