|
本帖最后由 单片机1号 于 2020-7-18 09:55 编辑
#include "reg52.h"
sbit L1=P0^0;
sbit key=P3^0;
void delay(unsigned int t)
{
while(t--);
}
void hc138(unsigned char ymq)
{
switch(ymq)
{
case 4:P2=(P2&0x1f)|0x80;break;
case 5:P2=(P2&0x1f)|0xa0;break;
}
}
void fmq() //1رշäÃùÆ÷oíLED
{
hc138(5);
P0=0x00;
hc138(4);
P0=0xff;
}
unsigned char n=0;
unsigned char pwm=0;
void keyan()
{
if(key==0)
{
delay(100);
if(key==0)
{
switch(n)
{
case 0:L1=0;TR0=1;n=1;pwm=10; break;
case 1:pwm=50;n=2;break;
case 2:pwm=90;n=3;break;
case 3:L1=1;TR0=0;n=0;break;
}
while(key==0);
}
}
}
unsigned char i=0;
void iot0()
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
}
void int0() interrupt 1
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
i++;
if(i==pwm)
{
L1=1;
}
if(i==100)
{
L1=0;
i=0;
}
}
void main()
{
iot0();
fmq();
hc138(4);
while(1)
{
keyan();
}
}
|
|