⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 countc.c

📁 为8个数码管有五种模式的闪烁方式 可以通过按键控制的
💻 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 + -