74ls164驱动数码管(共阳)

74ls164驱动数码管(共阳)2008 06 3017 0574ls164 为 8 位移位寄存器 串行输入 并行输出 常用于扩展并行口

大家好,欢迎来到IT知识分享网。

2008-06-30 17:05

74ls164为8 位移位寄存器(串行输入,并行输出),常用于扩展并行口。其原理详见芯片资料。这里简单总结其驱动数码管的用法和相关代码。

(一)非串口方式

proteus仿真图

 

代码:

#include “reg52.h”
#define uint unsigned int
#define uchar unsigned char
sbit DAT=P2^3;
sbit CLK=P2^0;
uchar code tab[]={0x01,0x4f,0x12,0x06,0x4c,0x24,0x20,0x0f,0x00,0x04,0x7f};//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–)
{;}
}

unsigned char h;
   while(1){

   for(h=0;h<11;h++){

        delay_50ms(1);
        sendbyte(h);
   delay_50ms(10);
   }
   h=0;
     }
   
}

(二)串口方式

proteus仿真图:

 

代码:

#include “reg52.h”
#define uint unsigned int
#define uchar unsigned char

uchar code tab[]={0x01,0x4f,0x12,0x06,0x4c,0x24,0x20,0x0f,0x00,0x04,0x7f};//0-9,-,全灭

void delay_50ms(unsigned int t)
{

unsigned int j;  
for(;t>0;t–)
   for(j=6245;j>0;j–)
{;}
}

main()
{

unsigned char h;
TMOD=0x20;    //T1方式1
SCON=0x00;    //串口方式0输出,输出的内容送RXD脚输出,移位脉冲由TXD引脚输出
EA=1;
TR1=1;

while(1){

   for(h=0;h<11;){

        
   delay_50ms(5);
        
   if(TI==0)SBUF=tab[h];   //写数据
   else{

     TI=0;
     h++;     //下一个数
   }

    delay_50ms(5);
    }
    h=0;
}
}

(三)74ls164级联

静态显示数字10

电路图:

 

代码:

#include “reg52.h”
#define uint unsigned int
#define uchar unsigned char

uchar code tab[]={0x01,0x4f};//0-1

main()       //显示10
{

unsigned char h;
SCON=0x00;    //串口方式0输出,输出的内容送RXD脚输出,移位脉冲由TXD引脚输出

for(h=0;h<2;){   
   SBUF=tab[h]; //写数据
   while(TI==0);
    TI=0;
    h++;     //下一个数(十位)
   }
while(1);
}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/154219.html

(0)
上一篇 2025-02-27 15:15
下一篇 2025-02-27 15:25

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信