标题:
为什么按键没反应,跳不出去 附单片机程序
[打印本页]
作者:
HXLYYDS
时间:
2021-12-12 15:45
标题:
为什么按键没反应,跳不出去 附单片机程序
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit K1 = P3^4;
sbit K2 = P3^5;
sbit K3 = P3^6;
sbit K4 = P3^7;
uchar count0=0;
uchar count1=0;
uchar count3=0;
uchar i=0;
uchar m;
uchar code LED0[]={0XAA,0XFF};
uchar code LED1[]={0X55,0XFF};
void Init_Timer0 (void)
{
TH0=0x3c;
TL0=0xb0;
ET0=1;
TR0=1;
P1=LED0[0];
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0x3c;
TL0=0xb0;
count0++;
}
if(count0==20)
{
count0=0;
i++;
i=i%2;
P1=LED0[i];
}
if(K2==0||K3==0||K4==0) break;
}
}
void Init_Timer1 (void)
{
TH1=0x3c;
TL1=0xb0;
ET1=1;
TR1=1;
P1=LED1[0];
while(1)
{
if(TF1==1)
{
TF1=0;
TH1=0x3c;
TL1=0xb0;
count1++;
}
if(count1==20)
{
count1=0;
i++;
i=i%2;
P1=LED1[i];
}
}
}
void Init_Timer3 (void)
{
TH0=0x3c;
TL0=0xb0;
ET0=1;
TR0=1;
P1=0x00;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0x3c;
TL0=0xb0;
count3++;
}
if(count3==20)
{
count3=0;
P1=~P1;
}
}
}
void main(void)
{
EA=1;
TMOD=0x11;
if(K1==0)
{
m=1;
}
if(K2==0)
{
m=2;
}
if(K3==0)
{
m=3;
}
if(K4==0)
{
m=4;
}
switch(m)
{
case 1:Init_Timer0();break;
case 2:Init_Timer1();break;
case 3:Init_Timer3();break;
case 4:P1=0xff;break;
}
}
复制代码
作者:
188610329
时间:
2021-12-12 17:33
你不觉得,你的代码来讲, 你还没按 按键 , 程序就已经结束了么?
当然, 就算改了那里, 也是一次性的按键, 进入到按键的模块后,也就出不来了.
建议,先学编成逻辑, 再开始写代码.
作者:
HXLYYDS
时间:
2021-12-12 17:38
188610329 发表于 2021-12-12 17:33
你不觉得,你的代码来讲, 你还没按 按键 , 程序就已经结束了么?
当然, 就算改了那里, 也是一次性的按 ...
问题已解决了,要把if(K2==0||K3==0||K4==0) break;这一段提到循环的第一行
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1