📄 main.c
字号:
#include <reg51.h>
#define uchar unsigned char
sbit key_cycleless=P3^3;
sbit key_start=P3^4;
sbit key_reset=P3^2;
sbit key_set=P1^5;//定义键盘
sbit key_add=P1^6;
sbit key_esc=P1^7;
sbit key_pause=P3^5;
extern bit dir_flag;
extern bit Glint_enable_flag;
extern uchar Dis_bit_p;
extern uchar Counter;
extern void time_set();
extern void run();
extern void step_motor();
uchar Time[5]={0,0,0,0,0,};//秒百位,秒十位,秒个位,循环十位,循环个位
bit Second_flag;
bit Run_mode;
bit volatile Glint_time_flag;
bit Time_set_mode;
bit Pause_flag;
bit reset_flag;
bit reset_mode;
/***********延时程序约10MS****************/
void delay()
{
unsigned char i,j;
for(i=0;i<50;i++)
for(j=0;j<100;j++);
}
/*========================T0中断=============================*/
void timer0() interrupt 1 using 1
{
unsigned int time;
unsigned int sndacc; /*秒累加器*/
sndacc=sndacc+1;
if(sndacc==4000)
{
Second_flag=1;
if(Second_flag==1)//一秒时间到
{
time=Time[0]*100+Time[1]*10+Time[2];
time--;
Time[0]=time/100;
Time[1]=(time-(time/100)*100)/10;
Time[2]=(time-(time/100)*100)%10;
/*
Time[2]--;
if(Time[2]==0)
{
if(Time[1]!=0)
{
Time[1]--;
Time[2]=9;
}
else
if(Time[0]!=0)
{
Time[0]--;
Time[1]=9;
Time[2]=9;
}
else
Time[2]=0;
}
*/
Second_flag=0;
}
sndacc=0;
}
}
void reset()//////////////////////////////////////////////////
{
while(key_reset==0)
key_reset=1;
reset_mode=1;
reset_flag=1;
dir_flag=1;
TR0=0;
Second_flag=0;
Time_set_mode=0;
Run_mode=0;
Pause_flag=0;
Glint_time_flag=0;
Counter=0;
Glint_enable_flag=0;
Dis_bit_p=0;
Time[0]=10;
Time[1]=10;
Time[2]=10;
Time[3]=10;
Time[4]=10;//显示"--"
key_cycleless=1;
key_start=1;
key_reset=1;
key_set=1;
key_add=1;
key_esc=1;
}
void interrupt_int0 () interrupt 0 using 3
{
reset();
}
void pause()
{
Pause_flag=1;
Glint_enable_flag=1;
while(Pause_flag==1)
{
TR0=0;
if(key_start==0)
{
delay();
if(key_start==0)
{
while(key_start==0)
key_start=1;
TR0=1;
Pause_flag=0;
Glint_enable_flag=0;
}
}
}
}
main()
{
key_cycleless=1;
key_start=1;
key_reset=1;
key_set=1;
key_add=1;
key_esc=1;
if(key_cycleless==0)//如果是无限循环,则显示"--"
{
Time[4]=10;
Time[3]=10;
}
TMOD&=0xf0;
TMOD|=0x02;
TH0=0x1a;//250us
TL0=0x1a;
ET0=1;
TMOD&=0x0f;
TMOD|=0x10;//T1工作方式1
TH1=0xf8;
TL1=0xcd;
ET1=1;
TR1=1;
EA=1;
IT0=1;
EX0=1;
//@@@@reset();
while(1)
{
if(key_set==0)
{
delay();
if(key_set==0)
{
while(key_set==0)
key_set=1;
Counter=1;//@@@@@@@@@@@@@@@@@@@@@@@@@
//while(key_set==0)
// key_set=1;
time_set();
}
}
if(reset_mode==0)
{ if(key_start==0)
{
delay();
if(key_start==0)
{
while(key_start==0)
key_start=1;
TR0=1;
run();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -