标题:
求助大神们 再次按下s2键为什么不反向运行单片机程序?
[打印本页]
作者:
东方舵手发
时间:
2017-8-10 22:49
标题:
求助大神们 再次按下s2键为什么不反向运行单片机程序?
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
unsigned int table[]={0xff,0Xfe,0xfd,0xfb,0xf7};
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbit s5=P2^4;
sbit a=P0^0;
sbit b=P0^1;
sbit jd=P0^2;
sbit fn=P2^3;
bit q;
bit e;
bit u;
bit x;
bit z;
uint w;
uint num,num1,num10;
void delay(uint z) //延时程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=27;y>0;y--);
}
void fengning()
{
fn=0;
delay(100);
fn=1;
}
void inte()
{
EA = 1;
ET0 = 1;
ET1=1;
TMOD = 0X11;
TH0 = 0X4C;
TL0 = 0x00;
TH1 = 0X4C;
TL1 = 0x00;
fengning();
delay(200);
fengning();
}
void main()
{
inte();
while(1)
{
if(s1==0)
{
jd=0;
if(q==0)
{
TR1=1;
a=1;
b=1;
P1=table[1];
}
fengning();
q=1;
}
while(q)
{
if(s2==0)
{
if(u==0)
P1=table[0];
TR0=1;
}
if(num1>=1)
{
u=1;
TR0=0;
P1=table[3];
}
if(s3==0)
{
num1=0;
P1=table[0];
w=1;
}
if(w==1)
{
if(s1==0)
{
e=1;
q=0;
w=0;
P1=table[2];
fengning();
}
}
}
while(e)
{
if(s4==0)
{
if(z==0)
P1=table[0];
TR0=1;
}
if(num1>=1)
{
z=1;
TR0=0;
P1=table[4];
}
if(s5==0)
{
num1=0;
P1=table[0];
e=0;
TR1=0;
a=1;
b=1;
jd=1;
z=0;
u=0;
}
}
}
}
void dingshi() interrupt 1
{
TH0 = 0x4C;
TL0 = 0x00;
TF0=0;
num++;
if(num==10)
{
num=0;
num1++;
}
}
void dingshi2() interrupt 3
{
TH0 = 0x4C;
TL0 = 0x00;
TF0=0;
num10++;
if(num10==20)
{
num10=0;
a=~a;
b=~b;
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1