找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

我这个思路对吗?单片机一键切换多功能系统设计

查看数: 2794 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-10-4 11:30

正文摘要:

完成一键切换多功能系统设计1 个按键 K,由 P3.0 控制,8 个 LED发光二极管,由 P1 口控制。(1)系统上电时 8 个 LED 全灭(2)第一次按下开关 K 的时候,8 个LED 全亮;第二次按下开关 K 的时候,高四位 LED亮;第 ...

回复

ID:967988 发表于 2021-10-11 16:21
整体思路是对的,这程序有点乱,还是要规范下。
ID:836515 发表于 2021-10-11 16:14
一giao我里giao 发表于 2021-10-11 16:11
给你一个按键按一次加1的程序,然后你自己去想吧。
if(k1==0)//按键按下
while(1)

你错了,是这样
if(k1==0)//按键按下
{
while(1)
  {
  xianshi();//把正常显示的程序写在这里
  if(k1==1)
   {
   _++;//判断按键的数值加1
   break;
   }
  }
}
ID:831736 发表于 2021-10-11 16:11
给你一个按键按一次加1的程序,然后你自己去想吧。
if(k1==0)//按键按下
while(1)
  {
  xianshi();//把正常显示的程序写在这里
  if(k1==1)
   {
   _++;//判断按键的数值加1
   break;
   }
  }
这样就可以按一次加一次了
ID:743654 发表于 2021-10-9 08:51
四种情况分别设置标志位,通过标志位判断是哪种情况,你的按键定义和判断在哪,没看到,P3.0为串口接收端,最好不要用来接按键
ID:130230 发表于 2021-10-8 15:11
用状态机来写这种多状态的程序很适合。
ID:123289 发表于 2021-10-6 11:33
1、做两个计数器X和Y,每按一次X+1。
2、显示程序:当X<>Y时,对LED进行显示切换,显示的原则:根据X/4的余数(0、1、2、3)进行,你想法中的4种显示。显示切换后,让Y=X。
完了,就这么简单。
ID:624769 发表于 2021-10-5 19:10

最后,在补充一下, 你的 if 判断语句, 判断是否相等,应该是双等号,==  而不是单等号。
ID:624769 发表于 2021-10-5 17:24

你要么,在 while(1)  里面增加一个 判断 按键  赋值 Key_count 的代码。

要么,做一个中断程序,用来根据按键修改Key_count
ID:883031 发表于 2021-10-5 16:49
加个按键计数器是对的,但是你程序中没有相应的计数程序,
ID:969664 发表于 2021-10-5 10:51
188610329 发表于 2021-10-4 18:10
while(1)
                {
                        if(key_count=0)lsd1();

那应该怎么改呀
ID:624769 发表于 2021-10-4 18:10
              while(1)
                {
                        if(key_count=0)lsd1();
                                if(key_count=1)lsd2();
                                if(key_count=2)lsd3();
                                if(key_count=3)0x0f;
                                if(key_count=4)0xf0;
                        }

这是,你这个程序的核心部分, 虽然,你里面很多 if, 看似这个程序会有变化,但是你这个程序没有任何中断。所以,key_count 永远不会发生改变, 在进入while(1) 的时候,就决定了,这个程序会永远在某一个分支里面无休止的循环。

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

Powered by 单片机教程网

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