"); //-->
第十课 LED数码管之一 显示原理
程序讲解:
/*---------------------------------------------*/
#include<reg52.h>
#include"74HC595.H" //数码管驱动芯片的驱动函数(如果还是不是很明白可以到上一节课去看看),现在只需要调用这个驱动头文件就可以了!
//共阳数码管段码
/*---------------------------------------------*/
unsigned char code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//0 1 2 3 4 5 6 7 8 9
//八位数码管位码
unsigned char code pos[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//1 2 3 4 5 6 7 8
/*---------------------------------------------*/
//延时10000+1us 函数定义
void delay2ms(void)
{
unsigned char i,j;
for(i=133;i>0;i--)
for(j=6;j>0;j--);
}
/*---------------------------------------------*/
void main(void)
{
unsigned char i;
for(i=0;i<8;i++) //有八位数码管,八位依次扫描,由于数据不需要更新,因此可以略去死循环
{
Ser_IN(pos[i]); //先传位码
Ser_IN(seg[i]); //再传段码
Par_OUT(); //产生上升沿信号,两片595一起锁存输出
delay2ms(); //延迟时间2ms以内
}
}
本节重点:
1、自己编写的头文件调用用" " 而不是< >,具体格式是#include "74HC595.H"
2、先传段码还是位码与数码管的硬件接法有关,在我们的实验板上驱动段码的595的数据输入口接单片机IO口,那么就应该先传位码,再传段码。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。