📄 mcu.c
字号:
#include<reg52.h>
#define uchar unsigned char
sbit beep=P2^3;
sbit dula=P2^6;
sbit wela=P2^7;
sbit s2=P3^4;
sbit s3=P3^5;
sbit s4=P3^6;
sbit s5=P3^7;
sfr WDTRST = 0xA6;
//定义数码管显示的字符(0~9,dot,a~f)
uchar code zhi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90,0x7f,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20};//定义数码管(1~6)
uchar code led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义流水灯
/*display(uchar i,uchar j) //数码管显示函数
{
P0=zhi[j];
dula=1;dula=0;
P0=wei[i-1];
wela=1;wela=0;
}*/
delay(unsigned char i) //延时函数
{
uchar m,k; /*j;*/
for(m=i;m>0;m--)
for(k=250;k>0;k--)
//for(j=10;j>0;j--)
;
}
beep_on(uchar j) //蜂鸣器函数
{ uchar i;
for(i=1;i<=j;i++)
{
beep=0;
delay(1);
beep=1;
delay(1);
}
}
/*lamp(uchar l) //LED发光函数
{
P1=led[l-1];
}*/
uchar m,n;
main()
{
while(1)
{
P1=0x00;
if(0==s2)
{
delay(10);
if(0==s2)
{
while(1)
{
if(0==s3)
{delay(1);
if(0==s3)
break;}
P0=0x89;
dula=1;dula=0;
P0=wei[0];
wela=1;wela=0;
P1=0x00;
if(0==s3)
{delay(1);
if(0==s3)
break;}
beep_on(50);
beep=1;
if(0==s3)
{delay(1);
if(0==s3)
break;}
delay(1500);
if(0==s3)
{delay(1);
if(0==s3)
break;}
delay(1500);
if(0==s3)
{delay(1);
if(0==s3)
break;}
delay(1500);
P1=0xff;
if(0==s3)
{delay(1);
if(0==s3)
break;}
beep=1;
delay(1500);
if(0==s3)
{delay(1);
if(0==s3)
break;}
delay(1500);
if(0==s3)
{delay(1);
if(0==s3)
break;}
delay(1500);
if(0==s3)
{delay(1);
if(0==s3)
break;}
}
}
}
if(0==s3)
{
delay(10);
if(0==s3)
{
while(1)
{if(0==s2)
{
delay(10);
if(0==s2)
break;}
P0=0xc7;
dula=1;dula=0;
P0=wei[1];
wela=1;wela=0;
P1=0x00;
if(0==s2)
{
delay(10);
if(0==s2)
break;}
beep_on(50);
beep=1;
delay(1500);
if(0==s2)
{
delay(10);
if(0==s2)
break;}
delay(1500);
if(0==s2)
{
delay(10);
if(0==s2)
break;}
delay(1500);
if(0==s2)
{
delay(10);
if(0==s2)
break;}
delay(1500);
if(0==s2)
{
delay(10);
if(0==s2)
break;}
delay(1500);
P1=0xff;
if(0==s2)
{
delay(10);
if(0==s2)
break;}
beep=1;
delay(1500);
if(0==s2)
{
delay(10);
if(0==s2)
break;}
delay(1500);
if(0==s2)
{
delay(10);
if(0==s2)
break;}
delay(1500);
if(0==s2)
{
delay(10);
if(0==s2)
break;}
delay(1500);
if(0==s2)
{
delay(10);
if(0==s2)
break;}
delay(1500);
}
}
}
//WDTRST=0x1E;
//WDTRST=0xE1;//喂狗指令
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -