找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4512|回复: 1
打印 上一主题 下一主题
收起左侧

开关控制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)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:125593 发表于 2017-3-12 09:46 | 只看该作者
赞一个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表