51单片机数码管串行显示板制作
材料准备:共阴极SEG6个(小编做了4个)、SN74HC595N6个(小编用了4个)、插针、导线若干
SEG数码管显示
数码管串行显示原理图
74hc595管脚说明:单片机通过少量的端口串行控制多位数码管显示。
符号 | 引脚 | 描述 |
Q0--Q7 | 第15脚,第1-7脚 | 8位并行数据输出, |
GND | 第8脚 | 地 |
Q7’ | 第9脚 | 串行数据输出 |
MR | 第10脚 | 主复位(低电平) |
SHCP | 第11脚 | 数据输入时钟线 |
STCP | 第12脚 | 输出存储器锁存时钟线 |
OE | 第13脚 | 输出有效(低电平) |
DS | 第14脚 | 串行数据输入 |
VCC | 第16脚 | 电源 |
595结构图
595程序在单片机中的调用程序:
/****************595时序及显示函数************************/
void display(void) //显示6位数据www.dgzj.com
{
uchar i,dat;
char j; //p=Date;
for(j=5;j>-1;j--) //6位数据依次循环
{
dat=table[Date[j]];
if(j==0){dat=0;}
if(j==1){dat=0;}
if(j==2){dat=0;}
if(j==3){dat=0;} //6位数据分别赋值
for(i=0;i
{
if(dat&0x80)Data=1; //判断是1还是0
else Data=0;
dat
sck=0; //上升沿有效
sck=1;
}
}
rck=1; //打开锁存将6位数据发出数码管
rck=0; //关闭锁存等待下次输出显示
}
/*******************结束*****************************/
void calculate(unsigned long int a)
{
Date[0]=a/100000;
Date[1]=(a/10000)%10;
Date[2]=(a/1000)%10;
Date[3]=(a/100)%10;
Date[4]=(a/10)%10;
Date[5]=a%10;
}