标题: 开关控制LED霓虹灯 单片机程序+原理图 [打印本页]

作者: 唐长老    时间: 2016-12-11 21:36
标题: 开关控制LED霓虹灯 单片机程序+原理图


源程序:
  1. #include<regx51.h>
  2. #include<intrins.h>
  3. void delay(unsigned int i)
  4. {
  5. while(i--);
  6. }
  7. void move_l(unsigned char p)
  8. {
  9. unsigned char i;
  10. P1=p;
  11. for(i=0;i<8;i++)
  12. {
  13.   delay(20000);
  14.   P1=_crol_(P1,1);
  15. }
  16. }
  17. void move_r(unsigned char p)
  18. {
  19.     unsigned char i;
  20. P1=p;
  21. for(i=0;i<8;i++)
  22. {
  23.    delay(20000);
  24.    P1=_cror_(P1,1);
  25. }
  26. }
  27. void move_to_m(unsigned char p)
  28. {
  29. unsigned char i;
  30. for(i=0;i<4;i++)
  31. {
  32.   P1=((p<<i)&0x0F)|(0xF0&(p>>i));
  33.   delay(20000);
  34. }
  35. }
  36. void move_from_m(unsigned char p)
  37. {
  38. unsigned char i;
  39. for(i=0;i<4;i++)
  40. {
  41.   P1=((p&0xF0)<<i)|((p&0x0F)>>i);
  42.   delay(20000);
  43. }
  44. }
  45. void main()
  46. {
  47. unsigned char sw;
  48. while(1)
  49. {
  50.   sw=P0&0x3f;
  51.   switch(sw)
  52.   {
  53.    case 0x3e:move_l(0xfe);break;
  54.    case 0x3d:move_r(0x7f);break;
  55.    case 0x3b:move_l(0xfc);break;
  56.    case 0x37:move_r(0x3f);break;
  57.    case 0x2f:move_to_m(0x7e);break;
  58.    case 0x1f:move_from_m(0xe7);break;
  59.    default:P1=0xff;break;
  60.   }
  61. }
  62. }
复制代码



下载:
开关霓虹灯.zip (49.77 KB, 下载次数: 27)

作者: ken8lee    时间: 2017-3-12 09:46
赞一个




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1