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

📄 led.txt

📁 at89c2051利用74ls164 驱动 共阳极数码管
💻 TXT
字号:
#i nclude<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit DAT=P1^1; //模拟串口数据发送端
sbit CLK=P1^2;//模拟时钟控制端
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};//0-9,-,全灭 (共阳字段表)

void sendbyte(uchar byte)
{    
        uchar num,c; 
        num=tab[byte];
   for(c=0;c<8;c++)
        {
    CLK=0;
  DAT=num&0x80; //(0x80即十进制的128, 二进制的10000000 按位发送)
  CLK=1;
         num<<=1;
         
         
         }

}


void delay_50ms(unsigned int t) //50MS演示程序
{
 unsigned int j;   
 for(;t>0;t--) 
  for(j=6245;j>0;j--) 
{;}
}

main()
{ 

 unsigned char h;
  while(1){
  for(h=0;h<10;h++){
       delay_50ms(1);
       sendbyte(h);
  delay_50ms(10);
  }
  h=0;
    }
}

下面这段是74ls164 驱动共阴数码管的程序源码

#i nclude<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit DAT=P1^1;
sbit CLK=P1^2;
uchar code tab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xff,0xf6};//0-9,-,全灭

void sendbyte(uchar byte)
{    
        uchar num,c; 
        num=tab[byte];
   for(c=0;c<8;c++)
        {
    CLK=0;
  DAT=num&0x01;
  CLK=1;
         num>>=1;
         
         
         }

}


void delay_50ms(unsigned int t)
{
 unsigned int j;   
 for(;t>0;t--) 
  for(j=6245;j>0;j--) 
{;}
}

 main()
{ 


 unsigned char h;
  while(1){
  for(h=0;h<10;h++){
       delay_50ms(1);
       sendbyte(h);
  delay_50ms(10);
  }
  h=0;
    }
    
}

⌨️ 快捷键说明

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