原文地址是迷你强的BLOG:http://www.miniqiang.com/?p=58
经过昨天的研究,发现之前的理解还是有误的。串入并处并不是啥进制转换,而是将八位二进制数通过八只脚同时输出,,串行的一个一个输出,然后并行同时输出。 随后研究了用74HC595的8只脚控制四位共阳数码管中得一个管依次显示0-9这几个数,数码管资料如下:
[/url]
因为目前只涉及一个芯片,针脚有限,所以此实验只点亮一个数码。我们将12号针脚加220Ω保护电阻接入V5电路,其他各脚依次接入电路。
接线方式如下图:
[url=http://www.miniqiang.com/wp-content/uploads/2011/11/74hc595%E9%A9%B1%E5%8A%A8%E6%95%B0%E7%A0%81%E7%AE%A1_bbc.png]
74hc595引脚资料如下
[url=http://www.miniqiang.com/wp-content/uploads/2011/11/QQ%E6%88%AA%E5%9B%BE20111116095314.png][/url]
四位共阳数码管一共有12只引脚
依据上图的视角引脚编号为:
12,11,10,9,8,7
1,2,3,4,5,6
参照上面的参数图,我们将12号脚接入电源高电平,依次接入各输出脚,然后下面来看程序- int latchPin = 8;
- int clockPin = 12;
- int dataPin = 11; //这里定义了那三个脚
- void setup ()
- {
- pinMode(latchPin,OUTPUT);
- pinMode(clockPin,OUTPUT);
- pinMode(dataPin,OUTPUT); //让三个脚都是输出状态
- }
- void loop()
- {
- int a[10]={
- 3,159,37,13,153,73,65,27,1,9 }; //定义功能数组,数组依次为数码管得定义
- for(int x=9; x>-1 ;x-- ) //倒数功能循环
- {
- digitalWrite(latchPin,LOW);
- shiftOut(dataPin,clockPin,MSBFIRST,a[x]); //显示数组a[x]
- digitalWrite(latchPin,HIGH);
- delay(1000);
- }
- }
复制代码 以上程序用到了数组,数组内部的数字是数码管的8位二进制显示状态的十进制数,通过调用数组循环倒数0-9这几个数,通过输出高电平来熄灭相应的灯管达到显示数字的目的
今天的试验就到这里了。明天应该是加上一个74hc595,用来控制四个阳极,来达到完整控制整个数码管。
|