求大佬帮忙关于单片机的设计

就是有没大佬能教一下单片机多个程序一起写入,简单来说就是一个独立按键执行一个程序

#include <reg52.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char
	
sbit led=P1^0;
sbit beep=P2^3;
sbit ke=P3^1;

sbit k1=P3^0;

//////////////////////////////////////////////////////////
//延时n毫秒,参数填1000,就会延时1秒。
void delay_ms(unsigned int n)
{
    unsigned int i=0,j=0;
    for(i=0;i<n;i++)
        for(j=0;j<123;j++);
}



void delay(uint z)
{
	uint x,y;
	for(x = z; x > 0; x--)
		for(y = 114; y > 0 ; y--); 		
} 

//定时器0初始化



void timer0Init()
{
	TR0 = 1;	 //启动定时器
	TMOD = 0X01; //定时器工作模式1,16位定时器计数模式
	TH0 = 0x4b;
	TL0 = 0xfd; //定时50ms
}

void main()//main函数自身会循环
{	//程序1
	while(1)
	{
	if(ke==0)
	{
	uchar m, S;//毫秒和秒储存变量
	S = 0;
	timer0Init();//定时器0初始化
	while(1)
	{
		if(TF0 == 1)//判断是否溢出
		{
			TF0 = 0;//软件清零溢出标志位
			TH0 = 0x4b;
			TL0 = 0xfd; //定时50ms
			m++;//50ms到
			if(m == 20)
			{
				m = 0;
				S++;//1秒时间到
			}	
			
			if(S%2 == 1)
				led = 0;
			if(S%2 == 0)
				led = 1;
			

			if(S == 60)//检查是否到60秒
			{
				TR0 = 0;//时间到关闭定时器0
				//beep = 0; //启动蜂鸣器
				//delay(5000);//持续5s
				//beep = 1; //关闭蜂鸣器
				 //循环
			}		//程序2
		}
	}
}
	{
	
		if(k1==0)
	{
	while(1)
	{
   P1=~P1;
	delay(1000);
		
	}
}
}
	}
}

 

#include <reg52.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char
    
sbit led=P1^0;
sbit beep=P2^3;
sbit ke=P3^1;

sbit k1=P3^0;

//////////////////////////////////////////////////////////
//延时n毫秒,参数填1000,就会延时1秒。
void delay_ms(unsigned int n)
{
    unsigned int i=0,j=0;
    for(i=0;i<n;i++)
        for(j=0;j<123;j++);
}

void delay(uint z)
{
    uint x,y;
    for(x = z; x > 0; x--)
        for(y = 114; y > 0 ; y--);         

//定时器0初始化

void timer0Init()
{
    TR0 = 1;     //启动定时器
    TMOD = 0X01; //定时器工作模式1,16位定时器计数模式
    TH0 = 0x4b;
    TL0 = 0xfd; //定时50ms
}

void main()//main函数自身会循环
{    //程序1
    while(1)
    {
    if(ke==0)
    {
    uchar m, S;//毫秒和秒储存变量
    S = 0;
    timer0Init();//定时器0初始化
    while(1)
    {
        if(TF0 == 1)//判断是否溢出
        {
            TF0 = 0;//软件清零溢出标志位
            TH0 = 0x4b;
            TL0 = 0xfd; //定时50ms
            m++;//50ms到
            if(m == 20)
            {
                m = 0;
                S++;//1秒时间到
            }    
            
            if(S%2 == 1)
                led = 0;
            if(S%2 == 0)
                led = 1;
            

            if(S == 60)//检查是否到60秒
            {
                TR0 = 0;//时间到关闭定时器0
                //beep = 0; //启动蜂鸣器
                //delay(5000);//持续5s
                //beep = 1; //关闭蜂鸣器
                 //循环
            }        //程序2
        }
    }
}
    {
    
        if(k1==0)
    {
    while(1)
    {
   P1=~P1;
    delay(1000);
        
    }
}
}
    }
}
我这个执行完一个后,再按其他键就没反应了

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。