找回密码
 立即注册

QQ登录

只需一步,快速开始

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

花样流水灯的设计, 含源码加原理图

[复制链接]
跳转到指定楼层
楼主
ID:122489 发表于 2016-5-22 01:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在单片机的P2口上接8只LED组成流水灯。使用一个按键开关来控制流水灯的变化。开关断开是,流水灯是左右循环闪烁,当开关按下时,流水灯进行交替闪烁。开关断开恢复左右循环闪烁。很简单的一个程序,适合刚开始学习单片机做流水灯的新手学习。
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. void delay(int z) //延时程序
  4. {
  5. int x,y;
  6. for(x=0;x<=z;x++)
  7. for(y=0;y<=255;y++);
  8. }
  9. void init_tx()        //中断初始化函数
  10. {
  11. EA=1;           //开中断
  12. EX1=1;           //允许外部中断1中断请求
  13. IT1=0;           //外部中断1触发方式为跳沿触发方式
  14. IP=0X00;  //设置中断优先级
  15. }
  16. void main()
  17. {
  18. unsigned char LED;
  19. init_tx();
  20. LED=0x00; //初始化LED灯
  21. P2=LED;
  22. while(1)
  23. {
  24.   unsigned char i,j;
  25.   LED=0x80;
  26.   P2= LED;                        //点亮一个LED灯
  27.   delay(100);
  28.   for(i=0;i<=6;i++)          //右移流水灯模块
  29.   {
  30.    LED=_cror_(LED,1);
  31.    P2=LED;
  32.    delay(100);
  33.   }
  34.   LED=0X01;
  35.   P2= LED;         //点亮最后一个灯
  36.   delay(100);
  37.   for(j=0;j<=6;j++)                 //左移流水灯模块
  38.   {
  39.    LED=_crol_(LED,1);
  40.    P2= LED;
  41.    delay(100);
  42.   }       
  43. }
  44. }
  45. void tx1() interrupt 2          //外部中断1处理程序
  46. {  
  47.   unsigned char temp;
  48.   temp=P2;                                  //保护现场
  49.   P2=0xaa;                                  //点亮4个LED灯
  50.   delay(200);
  51.   P2=0x55;                                  //点亮另外4个LED灯
  52.   delay(200);
  53.   P2=temp;                                  //返回现场
  54. }                 

复制代码


花样流水灯.rar

28.05 KB, 下载次数: 18, 下载积分: 黑币 -5

评分

参与人数 2黑币 +51 收起 理由
admin + 50 共享资料的黑币奖励!
小调调 + 1 赞一个!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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