就是有没大佬能教一下单片机多个程序一起写入,简单来说就是一个独立按键执行一个程序
#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天,您在需要使用的时候【私信】联系我,我会为您补发。