8051单片机串行口扩展LED显示器接口与应用

 在8051应用系统中,可以利用串行接口来扩展并行I/O口(假定串行口工作在移位寄存器、方式0的状态下)。串行移位输出接输出移位寄存器74LS164可扩展一个8位并行输出口,用以连接一个LED数码管作静态显示。
     如图所示。由6个共阳极LED数码管,编程使其显示200304。

 C51软件设计:
     # include <stdio.h> //预处理
     # include <reg51.h>
     unsigned char code ledcode[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88}; //字型编码
     unsigned char code buf[6]={0x2,0x00,0x00,0x03,0x00,0x04}; //200304
     void main(void) //主函数
     {
     unsigned char idata i,k;
     SCON=0x00; //串行口初始化
     ES=0;
     EA=0; //关闭中断
     for(i=0;i<6;i++)
     {
     TI=0;
     k=buf[i];
     k=ledcode[k];
     SBUF=k;
     while(TI==0);
     }
     while(1);
     }
, 在8051应用系统中,可以利用串行接口来扩展并行I/O口(假定串行口工作在移位寄存器、方式0的状态下)。串行移位输出接输出移位寄存器74LS164可扩展一个8位并行输出口,用以连接一个LED数码管作静态显示。
     如图所示。由6个共阳极LED数码管,编程使其显示200304。

 C51软件设计:
     # include <stdio.h> //预处理
     # include <reg51.h>
     unsigned char code ledcode[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88}; //字型编码
     unsigned char code buf[6]={0x2,0x00,0x00,0x03,0x00,0x04}; //200304
     void main(void) //主函数
     {
     unsigned char idata i,k;
     SCON=0x00; //串行口初始化
     ES=0;
     EA=0; //关闭中断
     for(i=0;i<6;i++)
     {
     TI=0;
     k=buf[i];
     k=ledcode[k];
     SBUF=k;
     while(TI==0);
     }
     while(1);
     }

8051单片机串行口扩展LED显示器接口与应用

相关文章:

你感兴趣的文章:

标签云: