当前位置: 首页 > wzjs >正文

悉知网站建设温州网站建设钱

悉知网站建设,温州网站建设钱,自己做游戏网站,官方网站管理办法提示: 按键S7和S6为选择键,确定控制键控制那组LED指示灯。按键S5和S4为控制键,按键该键点亮指定的LED指示灯,松开后熄灭。按下S7点亮L1指示灯,L1点亮后,S6不响应操作,S5控制L3,S4控…

提示:

按键S7和S6为选择键,确定控制键控制那组LED指示灯。按键S5和S4为控制键,按键该键点亮指定的LED指示灯,松开后熄灭。按下S7点亮L1指示灯,L1点亮后,S6不响应操作,S5控制L3,S4控制L4,再次按下S7,L1指示灯熄灭,S6可可响应操作。按下S6点亮L2指示灯,L2点亮后,S7不响应操作,S5控制L5,S4控制L6,再次按下S6,L2指示灯熄灭,S7可可响应操作。S7和S6未按下时,即L1或L2未点亮时S5和S4不响应操作也就是未作区域选择时,控制键不能操作。

这个代码只需要在我们上个作品中独立按键的基础应用上扩展一下就足矣。

 //访问按键和LED的 I/O 端口

sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;

sbit L1=P0^0;
sbit L2=P0^1;
sbit L3=P0^2;
sbit L4=P0^3;
sbit L5=P0^4;
sbit L6=P0^5;
sbit L7=P0^6;
sbit L8=P0^7;

//通过译码器来实现相应功能的通道的选择

void SelectHC138(unsigned char n)
{
    switch(n)
    {
        case 4:
            P2=(P2 & 0x1f) | 0x80;
        break;
        case 5:
            P2=(P2 & 0x1f) | 0xa0;
        break;
        case 6:
            P2=(P2 & 0x1f) | 0xc0;
        break;
        case 7:
            P2=(P2 & 0x1f) | 0xe0;
        break;
        
    }
}

//延时函数

void Delay(unsigned int t)

{

        while(t--);

}

//功能的实现

unsigned char stat = 0;     //扩展功能的选择,初始状态

void Scanf_KeyAlone()

{

if(S7==0)
    {
        Delay(100);
        if(S7==0)
        {
        if(stat==0)  
        {
            L1=0;
            stat=1;  //点亮后变成另一种状态
        }
        else if(stat==1)
        {
            L1=1;  
            stat=0;
        }
        while(S7==0);
    }
}

    
    if(S6==0)
    {
        Delay(100);
        if(S6==0)
        {
        if(stat==0)
        {
            L2=0;
            stat=2;       //再次变成另外一种状态
        }
        else if(stat==2)
        {
            L2=1;
            stat=0;
        }
        while(S6==0);
    }
}

if(S5==0)
{
    Delay(100);
    if(S5==0)
    {
        if(stat==1)      //选择
        {
            L3=0;
            while(S5==0);
            L3=1;
        }
        else if(stat==2)
        {
            L5=0;
            while(S5==0);
            L5=1;
        }
    }
}

if(S4==0)
{
    Delay(100);
    if(S4==0)
    {
        if(stat==1)
        {
            L4=0;
            while(S4==0);
            L4=1;
        }
        else if(stat==2)
         {
            L6=0;
            while(S4==0);
            L6=1;
         }
     }
  }

}

//固定函数

void main()
{
        SelectHC138(4);
    while(1)
    {
   Scanf_KeyAlone();
    }
}

stat 的作用分析

1. stat 的值及其含义
  • stat == 0:初始状态或默认状态。

  • stat == 1:表示某种特定的状态(例如,按下 S7 后进入的状态)。

  • stat == 2:表示另一种特定的状态(例如,按下 S6 后进入的状态)。

2. stat 的控制逻辑
  • 按下 S7 时

    • 如果 stat == 0,则将 L1 置低(L1 = 0),并将 stat 设置为 1

    • 如果 stat == 1,则将 L1 置高(L1 = 1),并将 stat 重置为 0

    • 这里 stat 的作用是切换 L1 的状态(开或关)。

  • 按下 S6 时

    • 如果 stat == 0,则将 L2 置低(L2 = 0),并将 stat 设置为 2

    • 如果 stat == 2,则将 L2 置高(L2 = 1),并将 stat 重置为 0

    • 这里 stat 的作用是切换 L2 的状态(开或关)。

  • 按下 S5 时

    • 如果 stat == 1,则将 L3 置低(L3 = 0),等待按键释放后,再将 L3 置高(L3 = 1)。

    • 如果 stat == 2,则将 L5 置低(L5 = 0),等待按键释放后,再将 L5 置高(L5 = 1)。

    • 这里 stat 的作用是根据当前状态决定控制哪个 LED(L3 或 L5)。

  • 按下 S4 时

    • 如果 stat == 1,则将 L4 置低(L4 = 0),等待按键释放后,再将 L4 置高(L4 = 1)。

    • 如果 stat == 2,则将 L6 置低(L6 = 0),等待按键释放后,再将 L6 置高(L6 = 1)。

    • 这里 stat 的作用是根据当前状态决定控制哪个 LED(L4 或 L6)。


stat 的工作流程

  1. 初始状态

    • stat = 0,表示系统处于默认状态。

  2. 按下 S7

    • 如果 stat == 0,进入状态 1,并点亮 L1

    • 如果 stat == 1,退出状态 1,并熄灭 L1

  3. 按下 S6

    • 如果 stat == 0,进入状态 2,并点亮 L2

    • 如果 stat == 2,退出状态 2,并熄灭 L2

  4. 按下 S5 或 S4

    • 根据当前状态(stat == 1 或 stat == 2),控制不同的 LED(L3/L5 或 L4/L6)。


stat 的作用总结

  • stat 是一个状态标志,用于记录当前系统的运行状态。

  • 它决定了按下不同按键时,程序的行为和 LED 的控制逻辑。

  • 通过 stat,程序可以根据不同的状态执行不同的操作,实现状态机的功能。

总代码:


文章转载自:

http://UChZx8f6.rrcxs.cn
http://mMe2Q8m7.rrcxs.cn
http://JJ2iEDuq.rrcxs.cn
http://kIEQib0W.rrcxs.cn
http://5mjo1Dfi.rrcxs.cn
http://fVDiMIas.rrcxs.cn
http://HDe539fh.rrcxs.cn
http://KfH5xrKw.rrcxs.cn
http://Ylwerdzg.rrcxs.cn
http://s2TU9eZa.rrcxs.cn
http://xeWBKThr.rrcxs.cn
http://vAmDqXV3.rrcxs.cn
http://3S3yTDLZ.rrcxs.cn
http://OOQnhi5Z.rrcxs.cn
http://sbXdkoLs.rrcxs.cn
http://rKuefPHV.rrcxs.cn
http://nup7tLzk.rrcxs.cn
http://7vHhxdYc.rrcxs.cn
http://h6a8SiUg.rrcxs.cn
http://xe3bPJ8K.rrcxs.cn
http://DVw4Zs2Y.rrcxs.cn
http://hiSeaDNX.rrcxs.cn
http://jt3FAkGF.rrcxs.cn
http://KGJgaHRA.rrcxs.cn
http://JjDRi6g7.rrcxs.cn
http://Hr5yd4Mb.rrcxs.cn
http://BLeYS0WN.rrcxs.cn
http://9VBY1pVP.rrcxs.cn
http://ND41DBSR.rrcxs.cn
http://5VlS6k7W.rrcxs.cn
http://www.dtcms.com/wzjs/733046.html

相关文章:

  • WordPress数据库和网站文件wordpress 头像手机旋转
  • .net网站吃内存百度搜索关键词规则
  • 营销型网站建设案例wordpress比较好的主题
  • 网站动态标签做神马网站快速排
  • 鄂州市门户网站好看的博客页面
  • 东莞石排做企业网站贵阳网站建设 网站制作
  • 免费建设门户网站网上制作名片
  • 三亚网站建设介绍wordpress 架构
  • 大学生兼职网站设计论文wordpress论坛模板
  • 怎么做一购物网站学校网站建设
  • 广州市南沙住房和建设局网站做网站要买多少服务器空间
  • 大学生做兼职的网站有哪些河南建设工程信息网查询
  • 太原网站建设电话西安建站免费模板
  • 江门论坛建站模板云网站
  • 社交网站建设平台做网站设计哪里有
  • 手机网站菜单网页怎么做的陕西煤化建设集团网站
  • 深圳做网站 肖先生网站的风格对比信息表
  • 济南建站网站葫芦岛市网站建设
  • 建设网站后如何做后台网站模
  • 湛江企业网站怎么建设平面设计师素材网站
  • 网站cms是什么意思兄弟们给个能用的网站
  • 免费无版权图片网站wordpress视频商店
  • 电子商务网站建设的一般流程是家政公司网站建设
  • jsp网站开发视频网站怎么推广怎么做的
  • 福永响应式网站多少钱官网做得好的公司
  • 各类网站推广软件制作权
  • 做网站公司赚钱吗?惠州网络营销
  • 网站网站模版wordpress后台账号密码忘记
  • 网站设计的经营范围深圳市住房和建设局官网电话
  • 免费做网站可以一直用吗品牌网络营销成功案例