『壹』 如何利用單片機讓4位數碼管顯示
程序如下(用的是STC89C52晶元):
#include<reg52.h>//52系列單片機頭文件
#defineucharunsignedchar
#defineuintunsignedint
uintx,y;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共陰極數碼管編碼
voiddisplay(uchar,uchar,uchar,uchar);//聲明子函數
voiddelay(int);//聲明子函數
voidmain()
{
while(1)
{
display(1,2,3,4);//主程序始終調用數碼管顯示子程序
}
}
voiddisplay(uchara,ucharb,ucharc,uchard)
{
P2=0xef;
P0=table[a];//給第一個數碼管送"a"
delay(1);//延時1ms
P2=0xdf;
P0=table[b];//給第二個數碼管送"b"
delay(1);//延時1ms
P2=0xbf;
P0=table[c];//給第三個數碼管送"c"
delay(1);//延時1ms
P2=0x7f;
P0=table[d];//給第三個數碼管送"d"
delay(1);//延時1ms
}
voiddelay(uintz)//延時子函數
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(1)單片機接三個四段數碼管擴展閱讀
led數碼管是由多個發光二極體封裝在一起組成「8」字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。led數碼管常用段數一般為7段有的另加一個小數點,還有一種是類似於3位「+1」型。
位數有半位,1,2,3,4,5,6,8,10位等等,led數碼管根據LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬體電路有差異外,編程方法也是不同的。
『貳』 單片機中LED顯示電路用三極體驅動電路怎麼連接啊四個數碼管。
//單片機中LED顯示電路用三極體驅動電路四個數碼管。可以參考一下
#include<reg52.h>
sbit led0=P3^2;
sbit led1=P3^3;
sbit led2=P3^4;
sbit led3=P3^5;
sbit ledd=P3^7;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char g,s,b,d,a;
unsigned int num;
void delay(unsigned char x)
{
unsigned char i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void display()
{
P1=table[d];
led3=0;
delay(5);
led3=1;
P1=table[b];
led2=0;
delay(5);
led2=1;
P1=table[s];
led1=0;
delay(5);
led1=1;
P1=table[g];
led0=0;
delay(5);
led0=1;
}
void ont()
{
num=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
ont();
while(1)
{
if(a==20)
{
a=0;
ledd=~ledd;
num++;
d=num/1000;
b=num%1000/100;
s=num%100/10;
g=num%10;
}
display();
if(num==10000)
{
num=0;
}
} }
void time_0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
『叄』 AT89C51單片機怎麼用匯編語言讓4個數碼管同時顯示1234
1、首先我們先打開keil。
『肆』 求四位共陽數碼管接法,接在單片機上。。。
不知道您使用的是什麼單片機,告訴你使用89C51的接法。
用200歐姆的電阻串聯在數碼管的筆畫引腳上然後直接接在P0引腳就可以了,共陽極引腳直接接5V,對P0寫0就可以點亮了,而且電流不至於燒毀數碼管。
動態顯示 需要在共陽極上接PNP三極體,三極體基極串聯1K電阻接單片機口,低電平有效。
希望我的回答對您有幫助。
『伍』 c51單片機如何連接4個數碼管 來進行計數 要求用T0中斷來編程 求大蝦們支招
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,miao,fen,shi;
sbit m=P3^0;
sbit n=P3^1;
uchar code table[]={ //數碼管編碼表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
void display(uchar miao,uchar fen,uchar shi);
void delay(uint z);
void init();
void main()
{
init();//初始化子程序
miao=0;
shi=0;
fen=0;
while(1)
{
display(miao,fen,shi);
}
}void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}void display(uchar miao,uchar fen,uchar shi) // 顯示子函數
{
P0=0x00;
P0=table[miao%10];
P2=0x7f;
delay(1);
P0=0x00;
P0=table[miao/10];
P2=0xbf;
delay(1); P0=0x00;
P0=table[fen%10];
P2=0xdf;
delay(1);
P0=0x00;
P0=table[fen/10];
P2=0xef;
delay(1);
P0=0x00;
P0=table[shi%10];
P2=0xf7;
delay(1); P0=0x00;
P0=table[shi/10];
P2=0xfb;
delay(1);
}void init() // 初始化子函數
{
temp=0;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256; //定時器初值,定時50ms(12M晶振),由於考慮MCU指令處理時間,此處賦初值位45872
EA=1;
ET0=1;
TR0=1;
}void timer0() interrupt 1 //定時計數器中斷
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256; 、
aa++;
if(aa==20) //中斷2次位1S,秒加1
{
miao++;
aa=0;
if(miao==60)
{
fen++; // 滿60S, 分加1,秒清0
miao=0;
if(fen==60)
{
shi++; // 小時加1
fen=0;
if(shi==24) shi=0; //小時滿
}
}
}
if(m==0) // 調分
{
delay(2);
if(m==0) fen++;
if(fen==60) fen=0;
delay(2);
while(!m);
}
if(n==0) // 調小時
{
delay(2);
if(n==0) shi++;
if(shi==24) shi=0;
delay(2);
while(!n);
}
}
『陸』 4位或3位數碼管顯示,用單片機如何實現
4位或3位數碼管顯示,用單片機如何實現?這是單片機最基本的最典型的應用了,不論模擬還是實物,都離不開數碼管顯示呀,別說3,4位,再多也沒問題,太簡單太容易了。
下圖是4位數碼管顯示電路。
『柒』 單片機與數碼管的連接
如果22位數碼管共用7段來驅動,顯示效果很差,太暗!而且單片機直接驅動運行起來也費力。你可以計算一下就知道了:如果想顯示沒有閃爍感,顯示刷新周期就要超過50HZ,也就是每20mS這22位數碼管都要顯示一次,那麼每個數碼管每次只能顯示20mS÷22=0.91mS,而且單片機在這么短的時間內就沒有太多的時間處理其它的任務了。
要解決這個問題,你必須用專用的LED顯示驅動IC,而且要保證每個數碼管顯示的占空比要超過1/8才會有足夠的亮度,如果是室外使用最好是1/4或1/3。
如果占空比選用1/6,那麼你要在同一時間每次點亮22/6(4)個數碼管,你可以看看TM1629A、B、C、D顯示驅動IC,可以用2塊驅動IC,每個IC同時點亮2個數碼管,每個IC驅動11個數碼管。
用這種IC比用74系列的晶元的好處是:只有在需要改變顯示內容時,單片機才發送數據到驅動IC,平時不必發送數據,這樣MCU就可以把時間用於處理其它任務了。
具體的電路你看IC資料就行了。
『捌』 四位數碼管連接如何連接單片機
1、最開始,先打開keil。
『玖』 用單片機的IO口接四位數碼管,需要多大的排阻。
用單片機的IO口接四位數碼管,需要多大的排阻。
這看似簡單的問題,還真需要啰嗦幾句才行。
1、LED數碼管有普通亮度和高亮度之分,簡單說就是發光效率不同。
2、出於成本和實用性考慮,單片機驅動LED數碼管沒有採用恆流驅動。
3、單片機驅動LED數碼管有靜態和動態之分。
4、電源電壓不同,同樣的排阻阻值,LED數碼管亮度不同。
上面這四種情況一組合,一句半句說不清。
如果不介意亮度問題,你這個問題好回答,用470歐姆到1K排阻都行。
稍微較點真兒,最好計算一下,每個段的平均電流3-5毫安。
數碼管常用型號基本是0.56英寸的(用量大就便宜)。單片機IO如果推挽輸出能力,共陰極還是共陽極都一樣,沒有推挽輸出用共陽極有利於簡化電路設計。
型號各廠家規定不一樣,買數碼管基本都淘寶吧,上面減少很清楚。
『拾』 4位數碼管怎麼與單片機連接
數碼管封裝很多,引腳排列
都不一樣,沒法告訴你接線,你只要找出段和位就可以了,七個段碼和小數點可以通過74hc595直接連接到單片機口上,或者還有cd4511等的bcd解碼晶元,共陰或共陽都是可以通過萬用表測出來的