📄 jinazaguan.c
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint DTJ=5000;//倒通脚的倒通的时间 5ms< t <9.5ms
uint add_j,dec_j; //加减变量
uchar start;
sbit P20=P2^0;//灯亮,灯灭
sbit add=P1^0;
sbit dec=P1^1;
void key(void)
{
if((add==0)&&(DTJ<9500)){add_j++;
if(add_j==10) DTJ=DTJ+100;
if(add_j>500){DTJ=DTJ+100;add_j=450;}
}
else add_j=0;
if((dec==0)&&(DTJ>500)){dec_j++;
if(dec_j==10) DTJ=DTJ-100;
if(dec_j>500){DTJ=DTJ-100;dec_j=450;}
}
else dec_j=0;
}
void delay1ms(uint k)//延时1MS
{
k=k*125;
while(k--);
}
void main(void)
{
P1=0xff;
P2=0xff;
P3=0xff;
TMOD=0x01; //定时器工作方式0
EA=1;
EX0=1;
IT0=1; //允许外部中断,下降沿中断
ET0=1; //允许定时器0中断
while(1)
{
key();
delay1ms(2);
}
}
void int0(void) interrupt 0
{
P20=1;//灯灭
TH0=(65536-300)/256; //开始定时0.3ms
TL0=(65536-300)%256;
TR0=1;
start=0;
}
void time0(void) interrupt 1
{
if(start==0){
P20=1; //灯灭
TH0=(65536-DTJ)/256;
TL0=(65536-DTJ)%256;
start=1;
}
else {
P20=0;
TR0=0;
start=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -