鱼C论坛

 找回密码
 立即注册
查看: 2938|回复: 3

[学习笔记] 单片机作业:流水灯1.0

[复制链接]
发表于 2022-4-7 00:27:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 划句顾 于 2022-4-11 16:23 编辑

本次的实验,我没有考虑很多问题,我唯一的目的就只是把它搞出来,然后明天实验课可以早一点出来哈哈哈哈哈。
【写了两天了,就这个运行出来了,它的几个兄弟姐妹都流产了,泪目了

8号做了流水灯2.0,有兴趣可以看一下流水灯2.0

test_5.rar (62.35 KB, 下载次数: 1)
  1. /*
  2. *Time:2022/4/06
  3. *Author:LaoGu
  4. *Purpose:参考教材的第1和2项目,实现一种自定义的智能流水灯控制系统设计,
  5.                  利用按键在线修改流水灯的花样。请提前做好实验准备。
  6. 提示:如利用4个按键操作,其中有两个按键用于实现花样模式的切换,
  7.                       另外两个按键用于调节花样变化的速度。
  8. */
  9. #include "reg51.h"

  10. //设置按键
  11. sbit K0=P1^0; //改变流水方向
  12. sbit K1=P1^1; //增加时间
  13. sbit K2=P1^2; //减少时间
  14. sbit K3=P1^3; //改变流水灯花样

  15. //设置花样数组
  16. char hy1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  17. char hy2[]={0x3f,0xcf,0xf3,0xfc,0x60,0x30,0x0c,0x06};
  18. char hy3[]={0x0f,0xf0,0xcc,0x33,0xAA,0x55,0x99,0x66};
  19. char hy4[]={0xe0,0x70,0x38,0x1c,0x0e,0x07,0xa8,0x54};

  20. //延迟函数【时间可以自定义】
  21. void Delay(int n)
  22. {
  23.          int i,j;
  24.        
  25.          for(i=0;i<n;i++)
  26.            for(j=0;j<1000;j++);
  27. }

  28. //消除按键抖动函数
  29. void Delay10ms()
  30. {
  31.          int i,j;
  32.          for(i=0;i<100;i++)
  33.            for(j=0;j<10;j++);
  34. }

  35. //主函数
  36. void main()
  37. {
  38.         char i=0;
  39.         bit  dir=0,key_mark=0;       
  40.         int n=5,j=1;
  41.        
  42.         while(1)
  43.         {
  44.                  if((!K0 || !K1 || !K2 || !K3) && !key_mark)
  45.                  {
  46.                          Delay10ms();
  47.                          if(!K0 || !K1 || !K2||!K3)
  48.                    {
  49.                                  if(!K0)
  50.                                    dir=!dir;
  51.                                  else if(!K1)
  52.                                     n+=10;
  53.                                     else if(!K2)
  54.                                     n-=10;
  55.                                  else
  56.                                  {
  57.                                     j+=1;
  58.                                     if(j>4)     //之前我写的是j>=5 这个条件是错的,我老师说它的条件不可能大于等于5
  59.                                         j=1;
  60.                                  }
  61.                                  key_mark=1;
  62.                          }         
  63.                  }
  64.                  else if(K0)
  65.                          key_mark=0;
  66.                
  67.                 switch(j)
  68.         {       
  69.                 case 1:P3=hy1[i];break;
  70.                    case 2:P3=hy2[i];break;
  71.                  case 3:P3=hy3[i];break;
  72.                 case 4:P3=hy4[i];break;
  73.         }
  74.        
  75.          Delay(n);
  76.          if(dir==0)
  77.      {                         
  78.        if(++i>7)
  79.          i=0;
  80.      }
  81.      else
  82.      {                         
  83.        if(--i<0)
  84.          i=7;
  85.      }                  
  86.         }               
  87. }
复制代码



                               
登录/注册后可看大图


电路图:
电路图.png

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
小伤口 + 5 + 5 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-7 13:59:39 | 显示全部楼层
厉害支持
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 15:02:09 | 显示全部楼层
厉害支持
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 19:01:46 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-14 17:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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