鱼C论坛

 找回密码
 立即注册
查看: 2337|回复: 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)
/*
*Time:2022/4/06
*Author:LaoGu
*Purpose:参考教材的第1和2项目,实现一种自定义的智能流水灯控制系统设计,
                 利用按键在线修改流水灯的花样。请提前做好实验准备。
提示:如利用4个按键操作,其中有两个按键用于实现花样模式的切换,
                      另外两个按键用于调节花样变化的速度。
*/
#include "reg51.h"

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

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

//延迟函数【时间可以自定义】
void Delay(int n)
{
         int i,j;
        
         for(i=0;i<n;i++)
           for(j=0;j<1000;j++);
}

//消除按键抖动函数
void Delay10ms()
{
         int i,j;
         for(i=0;i<100;i++)
           for(j=0;j<10;j++);
}

//主函数
void main()
{
        char i=0;
        bit  dir=0,key_mark=0;        
        int n=5,j=1;
        
        while(1)
        {
                 if((!K0 || !K1 || !K2 || !K3) && !key_mark)
                 { 
                         Delay10ms();
                         if(!K0 || !K1 || !K2||!K3)
                   {
                                 if(!K0)
                                   dir=!dir;
                                 else if(!K1)
                                    n+=10;
                                    else if(!K2)
                                    n-=10;
                                 else
                                 {
                                    j+=1;
                                    if(j>4)     //之前我写的是j>=5 这个条件是错的,我老师说它的条件不可能大于等于5
                                        j=1;
                                 }
                                 key_mark=1;
                         }         
                 }
                 else if(K0)
                         key_mark=0;
                
                switch(j)
        {        
                case 1:P3=hy1[i];break;
                   case 2:P3=hy2[i];break;
                 case 3:P3=hy3[i];break;
                case 4:P3=hy4[i];break;
        }
        
         Delay(n);
         if(dir==0)
     {                         
       if(++i>7)
         i=0;
     }
     else
     {                         
       if(--i<0)
         i=7;
     }                  
        }                
}


                               
登录/注册后可看大图


电路图:
电路图.png

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-7 13:59:39 | 显示全部楼层
厉害支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 15:02:09 | 显示全部楼层
厉害支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 19:01:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 22:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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