Ⅰ 怎樣用一個單片機控制8個數碼管
動態掃描,如下例,P0送段碼,P2送位碼,共陽極。
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=200;i>0;i--);
}
}
void main()
{
uchar i,k=0x80;
while(1)
{
for(i=8;i>0;i--)
{
P2=0xff;
k=_crol_(k,1);
P0=DSY_CODE[8-i];
P2=k;
DelayMS(3);
}
}
}
Ⅱ 51單片機加74hc595驅動多個數碼管靜態顯示的程序設計
1、首先數碼管分為1位,4位,8位,4位和8位的又分為共陰和共陽數碼管。
Ⅲ 單片機需要幾個埠控制8個單獨的數碼管
這個要分情況的,靜態數碼管也有4位,7位,對4位的BCD數碼管,32個IO口就可以了,對7位的則需要56個IO口才行。
Ⅳ 單片機怎麼和數碼管相連
數碼管分共陰和共陽兩種,公共端接電源或者地,其他ABCDEFGH接單片機的IO,數碼管的斷怎麼分配看數碼管的引腳圖,之後通過單片機的IO可以驅動數碼管,多個數碼管的話要採用動態掃描方式,可以詳細看看相關的教程,這個不難。
Ⅳ 51系列單片機驅動多個數碼管
用六片 595,即可靜態顯示時、分、秒。
但是,這時分秒的公共端,還要用一位介面來控制。
類似於動態顯示的位選。
當換另一個位時,再讓這六片 595,顯示年、月、日。
當換另一個位時,再讓這六片 595,顯示星期、溫度、濕度。
當換另一個位時,再讓這六片 595,顯示某某節日的倒計時,或農歷。
595 用單片機的三條引線,位選,用四條。共七個引腳,即可驅動 24 位數碼管。
並且,僅僅是四位的動態顯示,因此,毫無閃爍的現象。
單片機,使用僅有 15 個 IO 引腳的 AT89C2051,即可夠用。
Ⅵ 要實現數碼管的動態顯示,數碼管的公共端和各段選線應該怎麼和單片機連接
位選,就是選擇想要點亮哪個數碼管;
段選,就是選擇想要點亮哪個數碼管的哪個一段。
如果有幾個數碼管,為了節省介面,將每個數碼管的對應段連在一起,需要那隻數碼管亮,控制的就是「位選」。
段選就是讓數碼管里的八段里的哪一段亮,位選就是讓一些數碼管里的哪一個數碼管亮,你程序應該是四個數碼管的。通過位選,段選來達到讓不同的數碼管顯示不同的字元。
Ⅶ 51單片機幾個數碼管都接在一個p0口上是如何現實的分開顯示的
有段選和位選,段是要顯示的數據,位是選擇打開哪只管。所以需要一隻只數碼管輪流打開關閉,一旦每隻管顯示時間達到25HZ以上,因為視覺暫留,看起來就像是都在顯示的效果。