电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>51单片机流水灯设计

51单片机流水灯设计

2022-12-28 | zip | 0.38 MB | 次下载 | 免费

资料介绍

方案介绍

       本程序适合单片机初学入门(新手)练习用,程序注解详细,非常容易看明白。资料免费,有需要者可以免费获取单片机Keil4软件工程文件及仿真文件。

单片机源程序:
#include    //包含单片机寄存器的头文件
#define uchar unsigned char
#define uint unsigned int
sbit k1=P1^1;     //从上到下按键  
sbit k2=P1^2;     //从下到上按键
sbit k3=P1^3;     //加速按键
sbit k4=P1^4;     //减速按键
sbit GND=P1^0;                
uint t;            //定义延时变量
uchar n;        //定义方向标志位 n=1,从上到下;n=0,从下到上      
/* 函数申明 -----------------------------------------------*/
void delay(uint z);    //延时函数   
void key();            //按键处理函数 
/*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
********************************************************************************
*/
void main()
{
    uchar  num;                  //定义变量
    delay(500);                              //延时
    t=300;                                  //初始速度 值大,速度慢,值小,速率快
    n=1;                                  //从上到下
    GND=0;                                  //置按键接地端低电平
    while(1)                              //主循环
    {                              

        if(n==1)                          //从上到下
        {
            num++;                        //循环变量加1
            if(num>=3)                    //判断循环变量大于3时 ,将循环变量置0
            num=0;                        //将循环变量置0
            if(num==0)                    //判断循环变量等于0时.点亮1,4,7
            P0=0x6D;                    //点亮1,4,7 即01101101 
            else
            if(num==1)                    //判断循环变量等于1时.点亮2,5,8
            P0=0xB6;                    //点亮2,5,8 即10110110 
            else
            if(num==2)                    //判断循环变量等于1时.点亮3,6
            P0=0xDB;                    //点亮3,6 即11011011
            delay(t);                   //延时
            key();                           //调用按键处理子程序
        }
        else                            //从下到上
        { 
            num++;                        //循环变量加1
            if(num>=3)                    //判断循环变量大于3时 ,将循环变量置0
            num=0;                        //将循环变量置0
            if(num==0)                    //判断循环变量等于0时.点亮3,6
            P0=0xDB;                    //点亮3,6 即11011011

            else
            if(num==1)                    //判断循环变量等于1时.点亮2,5,8
            P0=0xB6;                    //点亮2,5,8 即10110110 
            else
            if(num==2)                    //判断循环变量等于1时.点亮1,4,7
            P0=0x6D;                    //点亮1,4,7 即01101101     

            delay(t);                   //延时
            key();                           //调用按键处理子程序
        }
    }
}

/*
********************************************************************************
** 函数名称 : delay(uint z)
** 函数功能 : 延时函数
********************************************************************************
*/
void delay(uint z)
{
    uchar j;                         //定义延时变量
    for(z;z>0;z--)                     //延时第一层循环
        for(j=200;j>0;j--);             //延时第二层循环
}

void key()            //按键处理函数 
{
    if(k1==0)                //按键按下
    {
        delay(20);            //延时消除按键抖动
        while(k1==0);        //等待按键松开
        n=1;                //从上到下
    }
    if(k2==0)                //按键按下
    {
        delay(20);            //延时消除按键抖动
        while(k1==0);        //等待按键松开
        n=0;                //从下到上
    }         
    if(k3==0)                //按键按下
    {
        t=t+10;                //延时速度加10
        if(t>600)            //限制延时速度最慢为1000
        t=600;                //限制延时系数1000
    }
    if(k4==0)                //按键按下
    {
        t=t-10;                //延时速度减10
        if(t<200)            //限制延时速度最快为10
        t=200;                //限制延时系数10
    }
}

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费