数码管公有7个LED灯,加上下面的小数点,共需要8个驱动接口。同时为了节约引脚数量,这个8个数据引脚同时也是数码管公共端的驱动接口。那一个数据到来的时候到底分配给LED还会分配给他的公共端呢?这就需要两个开关,总计10个输出接口。
这10个输出接口分别可称为8个数据口,1个段选控制口(控制哪个段亮起来),一个位选控制口(控制数码管的公共端)。
74HC573的数据有效位是高电平,赋值为1的时候数据可以被接收。
P0接的数据为byte类型,P20为段选,P21为位选
执行程序的流程时,按顺序会出现以下问题:
P0=哪个显示1;
P21=1//位选有效;
P21=0//关闭位选;
//将要显示的LED打开,比如1
P0=显示数据1;
P20=1;//段选有效
P20=0;//关闭段选
//把数据(比如0)写入到要显示的LED中,比如1,此时LED1=0,注意:总线数据此时是0
P0=哪个显示2;
P21=1//位选有效;
P21=0//关闭位选;
//将要显示的LED打开,比如2。因为打开了LED2且总线中存在0的数据,LED2=0;
P0=显示数据2;
P20=1;//段选有效