久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

第6課 數碼管靜態顯示

作者:huqin   來源:本站原創   點擊數:  更新時間:2013年12月30日   【字體:

 

1、數碼管顯示原理
數碼管是單片機應用系統中常用的一種顯示器件,由于其價格低廉、操作簡單,而被廣泛的應用于各種數字顯示系統中,常見的數碼管如圖1所示。
 
根據外觀的不同,數碼管又為分1位數碼管、2位數碼管、3位數碼管、四位數碼管等種類,如圖2所示。
但不論是幾位一體的數碼管,其顯示原理都是一樣的,都是靠內部發光二極管發光來進行顯示的。下面我們以1位數碼管為例介紹其顯示原理。
    1、數碼管顯示的原理
數碼管內部的電路如圖3所示,
圖3 數碼管內部電路
圖3中,顯示一個完整的8字,需要7個小段,外加一個小數點,共8段,分別稱為a段、b段、c段、d段、e段、f段、g段、dp段,每段內部都集成了一個發光二極管,此時要想讓數碼管顯示數字,我們只需要讓相對應的發光二極管發光就可以,例如要想讓此數碼管顯示數字是1,只需要讓b、c段的數碼管發光,而其它段的數碼管熄滅就可以了。
上圖中,每個發光二極管的陽極全部引出,分別為a、b、c、d、e、f、g、dp,共8個引腳,而把所有發光二極管的陰極全部接到一起引出一個引腳w,此時我們把a、b、c、d、e、f、g、dp引腳稱為數碼管的段選引腳,簡稱段選;而把w稱為位選引腳,簡稱位選。通過單片機讓數碼管顯示數字,就是通過編寫程序讓數碼管內部相應的數碼管發光。
數碼管根據內部接法的不同又可分為共陰極數碼管和共陽極數碼管兩種,上圖中,數碼管所有的發光二極管的陰極接在一起,而陽極單獨引出,我們稱此數碼管為共陰極數碼管,而還有一種接法是把陽極接在一起,而陰單獨引出,這種數碼管則稱之為共陽極數碼管,具體在寫程序時應考慮到的是哪一種數碼管,共陽極數碼管如圖4所示。
圖4 共陽極數碼管
這里需要注意的是,在驅動數碼管進行顯示時,數碼管內部的發光二極管要正常工作大概需要5mA的電流,而單片機的I/O口通常不能提供如些大的電流,此時需要上位電阻或者專用的驅動芯片,如7HHC573等,實驗板上即采用的后者,后面會具體講到。 
因為實驗板上的數碼管相應引腳在和單片機相連時用到了鎖存器,這里介紹一下鎖存器相關的一些知識。
74HC573為一種數字芯片,按其封裝的不同,分為直插和貼片的兩種,如圖6和圖7所示,
               圖6 直插式鎖存器,       圖7 貼片式鎖存器,
下面先介紹下74HC573的各個引腳功能和真值表,如圖8所示,OE為輸出使能端(低電平有效),也就是要使該芯片工作,此腳必須為低電平;1D-8D為數據輸入端;1Q-8Q為數據輸出端;LE為輸出控制端。
  
              圖8 74HC573引腳圖       圖9 74HC573真值表
圖9為74HC573的真值表,真值表可以直觀的表示數字芯片的工作特性,也就是要正確的使用數字芯片,必須學會看真值表。在圖9中,L表示低電平,H表示高電平,X表示任意電平,Z表示高阻態,即,可以為高電平,也可以為低電平,高或低由與它相連的其它電氣狀態決定;Q0表示上一次電平狀態。
由圖9真值表可以看出,當OE為高電平時,無論控制端LE和數據端為什么電平,輸出Q都為高阻態,也就是電平未知,此時鎖存器處于不可控的狀態,而我們使用該芯片肯定是要控制它以完成相應的功能,所以實驗板上兩塊芯片在硬件上均直接接地,相當于直接給低電平。
當OE為低電平時,LE為高時,D和Q同時為H或L;LE為低時,無論D為何種狀態,Q都保持上一次的數據狀態。也就是說LE為高電平時,Q端的數據隨D端數據變化而變化,LE為低電平時,Q端的數據保持為LE端由高電平變為低電平之前Q端的數據狀態。
在使用時,我們一般把LE端接單片機的一個引腳,而把數據輸入端D接單片機的8個引腳,此時我們就可以通過單片機控制LE端電平的高低和數據端的電平狀態來決定鎖存器數據輸出端的輸出狀態。
講到這里,相信大家已經對74HC573基本了解了,鎖存器的作用很多,在實驗板上主要起到兩個作用,一個就是解決驅動問題,這一點前面已經說過,單片機I/O口輸出的電流太小,不足以驅動數碼管,此時就可以利用鎖鎖器來實現;再一個就是節約單片機的I/O口,這一點后面會解釋到。
2數碼管靜態顯示
明白了顯示原理后,我們就可以對數碼管進行操作了,讓我們先看看一下實驗板的原理圖。
 
實驗板上的數碼管為兩個3位一體的數碼管,共同組成一個6位8段共陽極數碼管,
相同段的發光二極管陰極全部接在一起,引出8個引腳abcdefgdp,分別接到鎖存器的數據輸出口,而鎖存器74hc573的數據輸入口直接接到單片機P1口的8信引腳,注意此時P0口同時接了10K的上拉電阻;每一位數碼管內部發光二極管陽極接在一起,然后分別引出6個腳w1w2w3w4w5w6,并能過鎖存器74hc573接到了單片機P1口的6個腳。兩個鎖存器的鎖存端分別與單片機的P2^6和P2^7相連。
也就是這六位數碼管“段選”全部連在一起,而“位選”是可以獨立控制的,我們可通過控制位選信號而選擇讓哪幾個數碼管發光,具體顯示的內容可以通過段選信號進行,但由于所有段選是全部連在一起的,送入所在數碼管的段選信號必定相同,所以位選選通的數碼管上顯示的數字始終一樣,數碼管的這種顯示方式稱為靜態顯示。
下面我們就寫一個簡單的程序讓第一個數碼管顯示一個8字。先來分析如下:讓第一個數碼管顯示8字,那么別的數碼管的位選就要關閉,即只打開第一個數碼管的位選。在操作時,我從頭先給U2數碼管的鎖存端一個高電平,然后將數據從單片機的口P0直接送出到鎖存器的U2的數據輸出端,然后再關閉U2鎖存器。由于實驗板上的數碼管為共陽極,所以位選選通時為高電平,位選關閉時為低電平。即只有W1端對應的數據為1,其它的都為0,因此P0口呆輸出的數據0x01;(二進制為0000 0001)。位選確定后,再確定段選,要顯示8,那么只有h段為0,其余段為1,所以用操作U2的方法一樣操作U1,讓U1數據輸出端輸出0x7f(二進制為0111 1111)
程序:單片機顯示8
#include<reg52.h>
 
#define uint unsigned int
#define uchar unsigned char
 
sbit duan=P2^6;
sbit wei=P2^7;
 
void main()//第一個數碼管顯示8
{
       while(1)
       {
              duan=1;
              P0=0x7f;
              duan=0;
      
              wei=1;
              P0=0xfe;
              wei=0;
              while(1);
       }
}
下面先下載到實驗板上看現象。
通過上面的現象我們實現了數碼管靜態顯示的功能,這里大家家可能已經知道,程序中段用了單片機的8個引腳,而位用到了單片機的6個引腳,按理說我們一共需要14個引腳,而因為鎖存器的原因,實際上我們只用到了P1口8個腳就實現了,這就是上面講的鎖存器的第二個作用,使用鎖存器可以達到節約單片機的I/O口的作用。
關閉窗口

相關文章

主站蜘蛛池模板: 色爽av | a级片免费观看 | 九九热视频在线观看 | 日本高清中文字幕 | 国产福利91精品一区二区三区 | 一区二区黄色 | 久艹在线 | 久久精品国产免费 | 国产三级视频在线 | 午夜小视频在线观看 | www.成人网| aaa黄色| 日韩一级欧美一级 | 国产精品黄色 | 国产亚洲视频在线观看 | 国产毛片视频 | 亚洲综合免费 | 日本www色| 少妇综合 | 91成人看片 | 日韩一区二区三区四区 | 欧美一级特黄视频 | 欧美 日韩 国产 成人 在线 | 久久精品视频国产 | 狠狠操天天操 | 欧美一级淫片免费视频魅影视频 | 91精品免费视频 | 国内外成人免费视频 | 在线观看亚洲一区 | 国产日韩欧美在线 | 国产日韩精品一区二区 | 国产精品国产三级国产专区53 | 日本欧美久久久久免费播放网 | 黄色片观看| 中文字幕麻豆 | 午夜在线观看视频 | www.一区| 中文字幕一区二区在线播放 | 一区二区日韩 | 日本精品二区 | 久久久久久久久久国产 |