51单片机独立按键怎么控制3个独立程序(有独立头文件的程序) 程序我写好了 不知道怎么串接

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-05
单片机独立按键三个独立按键跳变触发控制三个不同程序c语言

/*简单方案 按一次按键后切换工作状态,松开不会返回*/
#include "xxx.h"

#define SKEY1 1
#define SKEY2 2
#define SKEY1 3
#define NONEKEY 0
unsigned char current_mode = SKEY1;

unsigned char getkey(void)
{
//获取按键后返回 SKEY1、SKEY2、SKEY3
return NONE;
}


void key1(void)
{
//全亮
}

void key2(void)
{
//流水
}

void key3(void)
{
//60S
}

void main(void)
{
//初始化
uchar tmpkey = 0;
while(1)
{
if(SKEY1 == current_mode)key1();
if(SKEY2 == current_mode)key2();
if(SKEY3 == current_mode)key3();
if(tmpkey = getkey)
current_mode = tmpkey;//有按键则更新当前任务
}
}

#includeunsigned char ID;sbit k1 = P3 ^ 7; // 定义按键端口void delay(){TMOD = 0x10; // 定时器的工作方式TH1=0xd8;TL1=0xf0;TR1=1;while(!TF1); // 这里错了,是定时器1TF1=0;}void main(){while(1){if(k1==0){delay(); //去抖动if(k1==0) //检测按键确实按下,进行按键处理{ID++;if(ID==0){ID=0;}while(!k1); //这里错了,多余的加了==0}}switch(ID){case 0:P1=0x3f;break;case 1:P1=0x06;break;case 2:P1=0x5b;break;case 3:P1=0x4f;break;case 4:P1=0x66;break;case 5:P1=0x6d;break;case 6:P1=0x7d;break;case 7:P1=0x07;break;case 8:P1=0x7f;break;case 9:P1=0x6f;break;default:break;}}}

把三个独立的程序,写成3个子程序,都放在一个程序中,在主程序中,判断3个按键,当按下3个按键后,分别执行相应的子程序就行了。

  • 51单片机独立按键怎么控制3个独立程序(有独立头文件的程序) 程序我写...
    答:把三个独立的程序,写成3个子程序,都放在一个程序中,在主程序中,判断3个按键,当按下3个按键后,分别执行相应的子程序就行了。
  • C51单片机把两个独立按键控制流水灯的程序变成三个按键控制怎么改?
    答:想要第三个按键控制数码管,让数码管60s倒计时 --- 需要楼主提供:《数码管60s倒计时》的程序。增加一个控制按键,不难。难的是,符合你的显示电路的显示程序。你不提供这段程序,按键,加在何处?
  • 求助:51单片机一个独立按键实现三个功能思路
    答:按键一端共地,按键的另一端输入到一个三输入与门上,同时并联值51的三个IO脚上,与门的输出接51的外部中断上 任意一个按键按下,触发外部中断,在外部中断函数中判断IO脚,确认是哪个按键被按下 网页链接
  • 51单片机怎样实现不同独立按键按下出现不同情况
    答:实现该功能的操作步骤参考如下:1、先将每个独立按键连接到51单片机的不同输入引脚上,并通过下拉电阻将其拉低。2、在程序中,使用循环或定时器中断的方式不断读取每个按键的引脚状态。当某个按键被按下时,其对应的引脚电平会变为高电平。3、根据读取到的按键引脚状态,执行相应的操作。例如,如果按键A...
  • c51单片机编程:如下图通过三个独立按钮控制灯的亮灭
    答:使用外部中断,如果是51单片机,使用外部中断,这三个键都接到中断上,外部中断引脚是P3.2,按键按下时低电平传入外部中断,这三个按键再分别接三个引脚,比方说P2.0,P2.1,P2.2,按键消抖会吧。在中断内部判断P2.0/P2.1/P2.2是否是低电平,低电平就把预设值取反,就形成了按一下亮,再...
  • 51单片机,1602动态显示时钟,有独立按键(3个k1,k2,k3)分别控制选择,加1...
    答:你好,我这又一个参考程序,是用郭天祥的TX-1C开发板写的,有3个按键,调节光标,时间加,时间减。引脚方便可以根据自己的开发板更改,其他程序内容不变。希望我的回答能帮助到你。
  • c51单片机独立按键控制三种流水灯
    答:include<reg51.h>#include<intrins.h>#define uchar unsigned charuchar keyval,led,led1;sbit key=P3^2;void ext0() interrupt 0{while(key==0);keyval++;keyval%=3;}void delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){led=0xfe;led1=0x55;while(1) { ...
  • 51单片机三个按钮控制三个小灯的方法
    答:这么技术性的东西居然悬赏分也不给。不过还是跟你说一下我的想法吧。我觉得要实现你的功能智能通过定时器中断的方法来,因为3个按钮相互独立的。所以要3个定时器,而51只有两个定时器,所以你得用52才能实现,52有3个定时器。把一次定时设为5ms,中断200次时把控制灯的电平反转,就行了。
  • 求51单片机PWM程序(一个定时器产生三路PWM 可独立运作) 简单来说就...
    答:unsigned char counter = 0;//--用于计数的 void ISR_Timer0(void) interrupt 1 //---我们就用定时器0来做,不用PWM硬件 { //---3.3333ms中断一次 counter++;if(counter >= 10) counter = 0;if(counter >= Set_PWM0) P1_0 = 0; else P1_0 = 1;if(counter >= Set_PWM1) ...
  • ...我想请问一下51单片机用C语言编写用一个独立按键能够切换定时,档位...
    答:用一个变量,当做计数器。按键,令其加一。0、1、2,循环变化。用来切换这三种模式。