第十课 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); //先传位码
Ser_IN(seg); //再传段码
Par_OUT(); //产生上升沿信号,两片595一起锁存输出
delay2ms(); //延迟时间2ms以内
}
}
本节重点:
1、自己编写的头文件调用用" " 而不是< >,具体格式是#include "74HC595.H"
2、先传段码还是位码与数码管的硬件接法有关,在我们的实验板上驱动段码的595的数据输入口接单片机IO口,那么就应该先传位码,再传段码。
相关链接:
第九课 一个比较重要的驱动函数的讲解(74HC595)
http://group.ednchina.com/2031/25012.aspx
演示视屏:
http://v.youku.com/v_show/id_XOTIzNjMzNjg=.html
相关程序:https://static.assets-stash.eet-china.com/album/old-resources/2009/5/22/927bd1e3-0913-41c3-a948-d987c92c08f0.rar
feng0305010303_803786486 2015-7-24 11:32
用户1516079 2009-6-14 17:05
用户222124 2009-6-2 20:10
用户222124 2009-6-2 20:00