📄 countc.c
字号:
/* 小灯闪烁程序,有四种工作模式,
模式一:至右向左循环闪烁
模式二:至左向右循环闪烁
模式三:八个的灯闪烁
模式四;前四后四循环闪烁*/
#include "at89x52.h"
//#include "stdio.h"
#include "math.h"
//#include "intrins.h" 字符库函数
//#include "absacc.h"
typedef unsigned char BYTE;
typedef unsigned int uint;
bit bdata FUN0=0X00;
bit bdata FUN1=0X01;
bit bdata FUN2=0X02;
bit bdata FUN3=0X03;
BYTE code CH0[]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};
BYTE code CH1[]={0X7f,0Xbf,0Xdf,0Xef,0Xf7,0Xfb,0Xfd,0Xfe};
//============================延时10ms程序==============================
void delay_10ms()
{
BYTE i;
for(i=0;i<50;i++)
{;}
}
//===========================初始化程序=================================
void strart_shi(void)
{
P1=0XFF;
P3=0XFF;
FUN0=1;
FUN1=0;
FUN2=0;
FUN3=0;
}
//=============================键盘程序===========================
void keyword(void)
{
if(P3_0==0) //对键p3.1判断
{
delay_10ms(); //消除抖动
if(P3_0==0)
{
FUN0=1; //设置
FUN1=0;
FUN2=0;
FUN3=0;
}
}
else if(P3_1==0)
{
delay_10ms();
if(P3_1==0)
{
FUN0=0;
FUN1=1;
FUN2=0;
FUN3=0;
}
}
else if(P3_2==0)
{
delay_10ms();
if(P3_2==0)
{
FUN0=0;
FUN1=0;
FUN2=1;
FUN3=0;
}
}
else if(P3_3==0)
{
delay_10ms();
if(P3_3==0)
{
FUN0=0;
FUN1=0;
FUN2=0;
FUN3=1;
}
}
}
//==================================主程序===================
void main()
{
strart_shi(); //调用初始化程序
for(;;) //循环执行
{
void FUN(); //声明功能程序
keyword(); //调用键盘程序
FUN(); //调用功能程序
}
}
//=================================延时0.5s的程序=============
void delay()
{
uint i;
BYTE j;
for(i=1000;i>0;i--)
{
for(j=250;j>0;j--)
{;}
}
}
//=================================功能程序===================
void FUN()
{
if(FUN0==1)
{
BYTE i;
for(i=0;i<8;i++)
{
P1=CH0[i];
delay();
}
}
else if(FUN1==1)
{
BYTE i;
for(i=0;i<8;i++)
{
P1=CH1[i];
delay();
}
}
else if(FUN2==1)
{
BYTE i;
for(i=8;i>0;i--)
{
P1=0XFF;
delay();
P1=0X00;
delay();
}
}
else if(FUN3==1)
{
BYTE i;
for(i=8;i>0;i--)
{
P1=0XF0;
delay();
P1=0X0F;
delay();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -