📄 main.c.bak
字号:
#include <reg52.h>
#include <stdio.h>
#define UCHAR unsigned char
#define UINT unsinged int
sbit IN0 = P3^2;
sbit IN1 = P3^3;
sbit PWM = P3^4;
UCHAR PWMRegH, PWMRegL;
void Delay(UCHAR i);
UCHAR keyscan(void);
void ld_int0 (void) interrupt 0 using 1
{
EX0 = 0;
Delay(10);
PWM = 0;
TR1 = 1;
printf("enable");
while(IN0 == 0)Delay(10);
EX0 = 1;
}
void Tim0_int(void) interrupt 1 using 1
{
PWM = 0;
TR0 = 0;
}
void ld_int1 (void) interrupt 2 using 1
{
EX1 = 0;
Delay(10);
PWM = 1;
TR1 = 0;
printf("disable");
while(IN1 == 0)Delay(10);
EX1 = 1;
}
void Tim1_int(void) interrupt 3 using 1
{
PWM = 1;
TH0 -= PWMRegH;
TL0 -= PWMRegL;
TR0 = 1;
TH1 -= 1200/256;
TL1 -= 1200%256;
}
main()
{
UCHAR key, i = 1;
SCON = 0x50;
TMOD |= 0x11;
TH1 -= 1200/256;
TL1 -= 1200%256;
TH0 -= PWMRegH;
TL0 -= PWMRegL;
TR1 = 0;
TR0 = 0;
TI = 1;
IE = 0x8F;
RCAP2H = 0xFF;
RCAP2L = 0xDB;
T2CON = 0x34;
PWMRegH = 2;
PWMRegL = 0;
printf("start");
for(;;)
{
key = keyscan();
if(key == 0x11)
{
if(i <= 8)
{
i++;
PWMRegH = (1200 - 125 * (8 - i))/256;
PWMRegL = (1200 - 125 * (8 - i))%256;
P1 = ~(0x01 << (i-1));
}
key = 0;
}
if(key == 0x21)
{
if(i > 0)
{
i--;
PWMRegH = (1200 - 125 * (8 - i))/256;
PWMRegL = (1200 - 125 * (8 - i))%256;
P1 = ~(0x01 << (i-1));
}
key = 0;
}
}
}
void Delay(UCHAR i)
{
UCHAR j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}
UCHAR keyscan(void)
{
UCHAR sccode,recode;
P2 = 0xF0;
if((P2 & 0xF0) != 0xF0)
{
Delay(3);
if((P2 & 0xF0) != 0xF0)
{
sccode = 0xFE;
while((sccode & 0x10) != 0)
{
P2 = sccode;
if((P2 & 0xF0) != 0xF0)
{
recode = (P2 & 0xF0) | 0x0F;
while((P2 & 0xF0) != 0xF0)Delay(3);
return((~sccode) + (~recode));
}
else
sccode = (sccode << 1) | 0x01;
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -