📄 1.c
字号:
#include <REG52.H>
#include<stdio.h>
#include<intrins.h>
#include<string.h>
#include<IOsetup.h>
extern void ShowNum(unsigned char number);
extern void key(void);
bit keyflag;
bit keyflag1;
uchar keynet;
uchar number;
uint numb;
uchar keynum;
uint time;
uchar ID;
uint num;
uint period;
uchar high;
uchar tcount,second,minute,hour;
char i;
uint idata fueltab[15]={
850, //1HZ
499, //2HZ
331, //3HZ
249, //4HZ
199, //5HZ
164, //6HZ
140, //7HZ
124, //8HZ
108, //9HZ
98, //10HZ
88, //11HZ
81, //12HZ
75, //13HZ
69, //14HZ
65, //15HZ
};
/////////////////////////////////延时程序/////////////////////////////////
void delay(uint t)
{
while(t--)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
////////////////////////////////////////////////////////////////
main()
{
TMOD=0x11;
keynum=10;
TH0=0xfc;
TL0=0x18;
TH1=0x3c;
TL1=0xb0;
high=30;
time=0;
number=0;
numb=0;
fuel=1;
keyflag1=1;
keynet=0;
i=0;
EA=1;
ET0=1;
ET1=1;
///////////////////////////////////////设定工作时间//////////////////////////////////
while(1){
TR0=0;
TR1=0;
ShowNum(keynum);
if(setnum==0&&keyflag==0)
{
keyflag=1;fuel=1;
keynum=keynum+10;
if(keynum>90)keynum=10;
while(1)
{
if(setnum==1){keyflag=0;break;}
}
}
if(SW==0&&keyflag==0)
{
keyflag=1;fuel=1;
while(1)
{
if(SW==1){keyflag=0;break;}
}
TR0=0;
TR1=0;
second=0;
tcount=0;
break;
}
}
////////////////////////////////////////////设定通电时间////////////////////////////////////
while(1){
TR0=0;
ShowNum(high);
if(setnum==0&&keyflag==0)
{
// keyflag=1;fuel=1;
high=high+5;
if(high>50)high=10;
while(1)
{
if(setnum==1){keyflag=0;break;}
}
}
if(SW==0&&keyflag==0)
{
keyflag=1;fuel=1;
while(1)
{
if(SW==1){keyflag=0;break;}
}
TR0=0;
break;
}
}
////////////////////////////////主循环///////////////////////////////////
while(1)
{
key();
if(keyflag1==1) //SW open
{
if(i>14){i=0;}
else
{
TR0=0;
TR0=1;
period=fueltab[i];
TR0=1;
TR0=1;
num=i+1;
}
ShowNum(num);
}
//////////////////////////到达设定运行时间,停止运行/////////////////////////////////
if(keynet==1)
{
ShowNum(num);
if(second>=keynum)
{
fuel=1;
TR0=0;
TR1=0;
ShowNum(keynum);
}
keyflag1=0;
}
////////////////////////////中断程序1///////////////////////////////////////////////////
}
}
void t0(void) interrupt 1 using 1
{
TH0=0xfc;
TL0=0x18; //1ms定时
time++;
if(time>period)
{
time=0;
// numb++;
}
else
{
if(time>high){fuel=1;}
else {fuel=0;}
}
}
/////////////////////中断程序2///////////////////////////////
void t1(void) interrupt 3 using 2
{
tcount++;
if(tcount==20)
{
tcount=0;
second++;
}
TH1=0x3c;
TL1=0xb0;
}
/////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -