标题: C51多开关控制LED霓虹流水形式 程序+仿真原理图 [打印本页]

作者: 唐长老    时间: 2016-12-11 20:50
标题: C51多开关控制LED霓虹流水形式 程序+仿真原理图
用AT89C51实现各开关对应流水形式,按下一个开关实现一种,当同时按下两个开关时停止工作。
Protues原理图
新人初次发帖,各位坛友多多关照


源程序:
  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. }
复制代码


多开关控制LED霓虹流水形式仿真工程文件及源程序下载:
开关霓虹灯.zip (49.77 KB, 下载次数: 16)


作者: admin    时间: 2017-1-7 14:57
好资料,51黑有你更精彩!!!




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