新闻  |   论坛  |   博客  |   在线研讨会
第十课 LED数码管之一 显示原理
mayer | 2009-05-22 18:37:39    阅读:1676   发布文章

第十课 LED数码管之一 显示原理

 

第十课 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口,那么就应该先传位码,再传段码。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客