|
#include
#define uint unsigned int
#define uchar unsigned char
sbit com1=P3^2;//个位控制端
sbit DAT=P3^5;//74LS164数据
sbit CLK=P3^4;//74LS164时钟
uchar 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 main()
{
com1=1;//关闭个位,为了消影;
sendbyte(1);送数据1;
com1=0;//显示个位;
}
以上程序时一个74ls164驱动一个数码管显示1的简单 程序,但是我就是不理解显示出来的1是怎么计算出来的,也就是void sendbyte(uchar byte)(带红色字体的那个函数不理解,为什么sendbyte(1)发一就显示1,怎么来的?)这个函数我不理解,哪位高人能指点一下嘛,这个问题困惑了我很久。谢谢!
|
|