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

📄 duozhong cyuyanliushuideng.txt

📁 多种流水灯C语言程序设计
💻 TXT
字号:

多种流水灯C语言程序设计
/**********************************/
/*****************************以下程序均采用12M晶振*****************************************************/
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
 sbit p2=P2^0;
void main()
{
  TMOD=0x01;
  TR0=1;
  ET0=1;
  EA=1;
  while(1)
  {
     ;
   }
}

timer0() interrupt 1
{
   TH0=0x00;
   TL0=0x06;
   p2=!p2;
}



定时流水灯//
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long

bit ldelay=0;

void main()
{
  uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
  uchar leda;
  TMOD=0x00;
  TR0=1;
  ET0=1;
  EA=1;
  while(1)
  {
  if(ldelay)
  {
   ldelay=0;
   P2=led[leda];
   leda++;
   if(leda==9)leda=0;
    
   }
 }
}

timer2() interrupt 1
{
   static uchar t;
   TF0=0;
   t++;
   if(t==10)
   {
   t=0;
   ldelay=1;
   }
} 



变速流水灯//
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long

bit ldelay=0;
uchar speed=100;

void main()
{
  uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
  uchar leda;
  TMOD=0x00;
  TR0=1;
  ET0=1;
  EA=1;
  while(1)
  {
  if(ldelay)
  {
   ldelay=0;
   P2=led[leda];
   leda++;
   if(leda==9)
   {
   leda=0;
   speed-=10;
   if(speed==0)speed=100;
   }
    
   }
 }
}

timer2() interrupt 1
{
   static uchar t;
   TF0=0;
   t++;
   if(t==speed)
   {
   t=0;
   ldelay=1;
   }
} 

//每2两圈改变一次亮度
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long

bit ldelay=0;
uchar speeda=30;
uint k=0;


void main()
{
  uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
  uchar leda;
  uchar speed[10]={5,80,70,60,50,40,30,20,10,5};
  uint i;
  uint k;
  TMOD=0x00;
  TR0=1;
  ET0=1;
  EA=1;
  while(1)
  {
  if(ldelay)
  {
   ldelay=0;
   P2=led[leda];
   leda++;
   if(leda==9)
   {
   leda=0;
   k++;
   if(k==2){
   k=0;
   speeda=speed[i];
   i++;
   if(i==9)i=0;
   }
   }
    
   }
 }
}

timer2() interrupt 1
{
   static uchar t;
   TF0=0;
   t++;
   if(t==speeda)
   {
   t=0;
   ldelay=1;
   }
} 


//在上面基础上调灯的亮度(调占空比)
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long

bit ldelay=0;
uchar speeda=30;
uint k=0;
uchar scale;  


void main()
{
  uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
  uchar leda;
  uchar speed[10]={5,80,70,60,50,40,30,20,10,5};
  uint i;
  uint k;
  TMOD=0x00;
  TR0=1;
  ET0=1;
  EA=1;
  while(1)
  {
  if(ldelay==1)
  {
   ldelay=0;
   P2=led[leda];
   leda++;
   scale++;
   if(scale==10)scale=0;
   if(leda==9)
   {
   leda=0;
   k++;
   if(k==2){
   k=0;
   speeda=speed[i];
   i++;
   if(i==9)i=0;
   }
   }
    
   }
 }
}

timer2() interrupt 1
{  
   static uchar t;
   TH0=0x1c;
   TL0=0xbf;
   TF0=0;
   t++;
   if(t==speeda)
   {
   t=0;
   ldelay=1;
   }
   if(scale==10)P2=0;
   if(scale==0)P2=1;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -