这是整个函数,请2楼的大虾看一下是不是您说的问题,小弟谢过了!
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit s2=P3^4;
sbit s3=P3^5;
//sbit s4=P3^6;
sbit s5=P3^7;
sbit jdqflag=P1^0;
sbit csda=P3^2;
sbit wr=P3^6;
uchar code table2[]={
0x7f,0x7b,0x7d,0x7e,
0x5f,0x6f,0x77};
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar s5flag,i;
uint t;
int t1,t2;
void delay(uchar z);
void display(uint a);
void anjian1();
void anjian2();
void jidianqi();
void DA();
void main()
{
t=0;
s5flag=0;
jdqflag=0;
while(1)
{
if(s5flag==0)//按键加
anjian1();
if(s5flag==1)//按键减,输入t 值范围0到999
anjian2();
if(s5flag==3)//根据t值大小控制继电器开关
{
jidianqi();
display(t);
}
if(s5flag==4)//将t值转换为0到256区间,用DA0832转换输出对应电流
{
DA();
}
}
}
void DA()//DA转换程序,
{
// display(t);
t1=(byte)((word)(t)*255/1000);
csda=0;
wr=0;
P0=t1;
}
void jidianqi()//继电器控制程序
{
if(t>100)//继电器开
jdqflag=1;
delay(10);
if(t<101)//继电器关
jdqflag=0;
delay(10);
s5flag++;
}
void anjian1()
{
while(1)
{
if(s2==0)//按键加100
{
delay(10);
while(!s2)
display(t);
t+=100;
if(t>1000)
t=0;
}
if(s3==0)//按键加10
{
delay(10);
while(!s3)
display(t);
t+=10;
if(t>1000)
t=0;
}
/* if(s4==0)
{
delay(10);
while(!s4)
display(t);
t+=1;
if(t>1000)
t=0;
}*/
if(s5==0)//跳到下一个if语句
{
delay(10);
while(!s5)
display(t);
s5flag=1;
break;
}
display(t);
}
}
void anjian2()
{
while(1)
{
if(s2==0)//按键减100
{
delay(10);
while(!s2)
display(t);
t-=100;
if(t<0)
t=0;
}
if(s3==0)//按键减10
{
delay(10);
while(!s3)
display(t);
t-=10;
if(t<0)
t=0;
}
/* if(s4==0)
{
delay(10);
while(!s4)
display(t);
t-=1;
if(t<0)
t=0;
}*/
if(s5==0)//跳到下一个if语句
{
delay(10);
while(!s5)
display(t);
s5flag=3;
break;
}
display(t);
}
}
void delay(uchar z)//延迟函数
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uint a)//显示函数
{
P0=0;
dula=1;
P0=table[a/1000];
dula=0;
P0=0xff;
wela=1;
P0=table2[3];
wela=0;
delay(5);
P0=0;
dula=1;
P0=table[a%1000/100];
dula=0;
P0=0xff;
wela=1;
P0=table2[4];
wela=0;
delay(5);
P0=0;
dula=1;
P0=table[a/10%10];
dula=0;
P0=0xff;
wela=1;
P0=table2[5];
wela=0;
delay(5);
P0=0;
dula=1;
P0=table[a%10];
dula=0;
P0=0xff;
wela=1;
P0=table2[6];
wela=0;
delay(5);
} |