标签:
手把手教你学单片机 入门 51开发板 学习板
数码管电路及实验
今天讲数码管电路,数码管分为共阴极和共阳极,顾名思义大家应该能理解其意思。
对于数码管的驱动,常用的有IO口直接驱动,三极管驱动,芯片驱动,大功率的还要增加驱动能力。
开发板中选择的是常用的2位数码管,这样的可以采取IO口直接驱动,电路如下:

上面的段码SEG[A..H]连到开发板的P1口,位码Dig0和Dig1分别连接到IO口的P04和P05,由于采用的IO直接驱动,选择了共阴极数码管,并且在P1口上拉1K电阻, 增强P1口驱动能力。在1-2位数码管的时候,完全可以采用IO直接驱动,而没有必要增加三极管驱动电路,这个电路已经经过实践验证的,没有问题的。
再看一下三极管驱动电路,

这个电路采用的数码管驱动电路是三极管驱动,共阳极数码管,另外在SEG[A..H]中,要串联个270欧姆左右的限流电阻,具体值可根据实际亮度调整。
再举一种常用的键盘数码芯片ZLG7289,如下图,64个按键,8位数码管,直接和单片机进行SPI通信就可以了。

象数码管的电路还有很多,比如使用74595芯片,74164芯片,还有好几种其它的键盘显示芯片,价格上都相差不是太大,三极管驱动的最为便宜,但程序要动态扫描占用CPU资源多。使用专用键盘显示芯片的要贵一点,但单片机处理起来很简单。
对与第一种图,本博客以前发过其静态,动态的C和汇编语言程序,大家可以在本博客08年的文章中找找,现在只把动态C语言的贴出来:
#include <reg52.h> //调用头文件(单片机内部的寄存器定义)
/******本段为硬件I/O口定义********/
sbit LED0 = P0 ^ 0;
sbit LED1 = P0 ^ 1;
sbit LED2 = P0 ^ 2;
sbit LED3 = P0 ^ 3;
sbit DIG0 = P0 ^ 4; //数码管位0
sbit DIG1 = P0 ^ 5; //数码管位1
sbit BUZZ = P3 ^ 4; //蜂鸣器
//数码管显示0~9,定义到代码段,和程序数据烧在FLASH中
code unsigned char DispBuf[10]= {0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
void disp_selec(unsigned char bit_selec,unsigned char seg);
/**************************************************
** 函数名称: dellay
** 入口参数:h(双字节型)
** 出口参数:无
** 功能描述: 短暂延时,使用11.0592晶体,约0.01MS
****************************************************/
void dellay(unsigned int h)
{
while(h--); //0.01MS
}
/************主程序**************/
main()
{
unsigned char i="0"; //要显示的数
unsigned char temp_a,temp_b; //个位、十位数
while(1)
{unsigned int temp;
temp_b=i/10;
temp_a=i%10;
for(temp=0;temp<100;temp++)
{
disp_selec(0,temp_a); //显示个位数
dellay(100);
disp_selec(1,temp_b); //显示十位数
dellay(100);
} //显示数加1
i++;
if(i>99)
i="0";
}
}
/**************************************************
** 函数名称: disp_selec
** 入口参数:bit_selec,seg
** 出口参数:无
** 功能描述: 选择相应数码管,进行显示
****************************************************/
void disp_selec(unsigned char bit_selec,unsigned char seg)
{
if(bit_selec==0) //数码管位选0
{
DIG0=0;
DIG1=1;
}
if(bit_selec==1) //数码管位选1
{
DIG0=1;
DIG1=0;
}
P1=DispBuf[seg];
}
大家参考参考吧,学习靠实践,看别人的永远学不到真东西,但学习别人的经验可以加快自己的学习速度。
以前写的,请在这里打开链接:
手把手教你学习单片机(2.2)——缝鸣器电路及实验
手把手教你学习单片机(2.1)——单片机控制发光二极管实验
手把手教你学习单片机(第一章)——认识单片机及其如何工作
我的新QQ:464976346
开发板详细介绍!
http://blog.ednchina.com/ahai0306/(我的博客首页)
拍拍网店铺: http://shop.paipai.com/464976346
淘宝网店: http://shop35284066.taobao.com/
百度网店:http://youa.baidu.com/shop/83eabd89bd63f95984248678
AD电子论坛的本51开发板的版块:
http://dianzi.5d6d.com/forum-39-1.html
手机:13626455309 (白天请短信联系)
邮箱: ahai0306@sina.com联系人:张工
系统分类:
单片机 | 用户分类:
单片机入门 | 来源:
原创 | 【推荐给朋友】 | 【添加到收藏夹】
该用户于2009/2/26 10:02:39编辑过该文章