闪烁灯

2019-04-14 15:52发布

Code:
  1. #include//
  2. sbitgate=P2^0;//定义P2-0口
  3. voidmain(void)
  4. {
  5. unsignedinti,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
  2. #defineuintunsignedint
  3. sbitgate1=P2^0;//定义P2-0口
  4. sbitgate2=P2^1;//定义P2-1口
  5. sbitgate3=P2^2;//定义P2-2口
  6. sbitgate4=P2^3;//定义P2-3口
  7. voidmain(void)
  8. {
  9. uinti,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. }
Code:
  1. #include
  2. #include
  3. #defineunitunsignedint
  4. #defineucharunsignedchar
  5. sbitL0=P2^0;
  6. sbitL1=P2^1;
  7. sbitL2=P2^2;
  8. sbitL3=P2^3;
  9. uchardataBUFFER[1]={0};/*定时器计数变量*/
  10. voidmain(void)
  11. {
  12. P2=0x0f;//初始化端口
  13. EA=1;IT1=1;ET0=1;
  14. TMOD=0x01;/*T0方式1计时0.01秒*/
  15. TH0=-5000/256;
  16. TL0=-5000%256;
  17. TR0=1;/*开中断,启动定时器*/
  18. for(;;);
  19. }
  20. /*定时计数器0的中断服务子程序*/
  21. voidintserv1(void)interrupt1using1
  22. {
  23. TH0=-5000/256;//定时器T0的高四位赋值
  24. TL0=-5000%256;
  25. BUFFER[0]=BUFFER[0]+1;//定时器T0的低四位赋值
  26. if(BUFFER[0]==100)//百分秒进位
  27. {
  28. L3=!L3;
  29. L2=!L2;
  30. L1=!L1;
  31. L0=!L0;
  32. }
  33. }