`
yunchow
  • 浏览: 318396 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

单片机的数码管的倥制

阅读更多
   今天总算是看到了一点单片机实在的东西了,经过今天的学习,我知道了单片机数码管的简单控制,总体说来,还是挺简单的,只是不知道的时候觉得难,真正的去学习的时候,又变得简单起来。
   单片机数码管的原理大概是这样的,分别对一个字节进行编码,暂且将其叫a,b,c,d,e,f,g,h,当她们取不同的值时,将会得到不同的显示,那为什么是八位呢,因为在计算机里8位刚好是一个字节,这样就使其变的合理起来,可以把一个字节的数据送到某个寄存器里面,然后再送给数码管,得到相应的显示。编码如下:
----------------------------------------------------
0x3f  , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
  0 1 2      3      4      5
0x7d , 0x07 , 0x7f  , 0x6f , 0x77 , 0x7c ,
6      7      8       9      A      B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
  C     D      E       F     无显示
------------------------------------------------------
   为了节约资源,又引入了2个锁存器(74HC573),这样就可以使用少的单片机引脚达到完全控制数码管的目的。为什么会选择锁存器呢,,其实,我模电学的太菜了,里面的原理还不明白,以后有空的话,会去看看补充一下。
   再说说锁存器的功能,就是锁存器有一个控制位,当她的高位电位不同,会有不同的效果,当是高电平的时候,导通,当是低电平的时候,就断开了,并且保持右边的电位状态。所以利用这一功能,就可以达到控制数码管的目的。
   因此,可以如下示例程序:效果是点亮2个数码管,显示0
#include<reg52.h>
sbit wela=P2^7;
sbit dula=P2^6;
void main()
{
   wela=0;
   P0=0xc0;
   wela=1;

   dula=0;
   P0=0x06;
   dula=1;
}
分享到:
评论
1 楼 cheney_love 2009-11-07  
小弟最近在研究通过电脑控制继电器(大约有五六十个吧),应该要用到单片机做下位机吧,可否给个思路,这个应该怎么实现

相关推荐

Global site tag (gtag.js) - Google Analytics