LED數(shù)碼管的顯示和驅(qū)動(dòng)原理是電子工程師必需熟練撐握的,對(duì)于單個(gè)數(shù)碼管來(lái)說(shuō),點(diǎn)亮不同的LED段,就能形成相對(duì)應(yīng)的數(shù)字,比如下圖中,點(diǎn)亮BC兩個(gè)段就是顯示的數(shù)字1,點(diǎn)亮abdeg這幾個(gè)段就是顯示數(shù)字2,這個(gè)很容易理解。
7段數(shù)碼管
而對(duì)于兩位一體的數(shù)碼管有共陰和共陽(yáng)之分,共陽(yáng)的內(nèi)部電路結(jié)構(gòu)如下圖所示,這種就需要控制器對(duì)這兩個(gè)數(shù)碼管進(jìn)行不同時(shí)間段的輪流顯示,而輪流顯示的頻率要大于人眼能感覺(jué)到的閃爍頻率。
這種兩位一體的數(shù)碼管我在專欄“數(shù)字電子技術(shù)”的第66節(jié)視頻進(jìn)行了詳細(xì)講解,并用proteus軟件進(jìn)行了仿真,之后還在真實(shí)電路上運(yùn)行了程序進(jìn)行測(cè)試。
下圖是proteus的電路原理圖
下面是C語(yǔ)言程序源代碼
//用AT89C52實(shí)現(xiàn)的兩位共陽(yáng)數(shù)碼管顯示程序
#include 《reg52.h》
#include 《type_def.h》
#include 《intrins.h》
extern void Delay10ms(void);
extern void display(UINT8 number);
sbit SW = P1^7;
sbit LED_GREEN = P2^3;
sbit BUZZER = P2^4;
sbit WEI_SHI = P2^5;
sbit WEI_GE = P2^6;
int tcount = 0;//記錄經(jīng)過(guò)的10ms區(qū)間段個(gè)數(shù)
UINT8 add_cnt = 0;
UINT8 num = 0;
UINT8 code num_table[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void T0_INT() interrupt 1 //timer0中斷, 每10ms觸發(fā)一次
{
TR0 = 0;//關(guān)閉timer0
TH0 = 0xD8;
TL0 = 0xF0;//65536 - 10000 = 55536
if(tcount 》 0)
{
tcount ++;
}
if(tcount 》 11) //10ms * 10 = 100ms
{
tcount = 0;
BUZZER = 1;
LED_GREEN = 1;
}
display(num);
TR0 = 1;//重新開(kāi)啟timer0
}
void display(UINT8 num)
{
if (!add_cnt)
{
P0 = 0xff; //關(guān)8個(gè)段碼
WEI_SHI = 1; //打開(kāi)十位的數(shù)碼管共陽(yáng)極公共端
WEI_GE = 0;
P0 = num_table[num/10]; //顯示的十位數(shù)字
add_cnt = 1;
}
else
{
P0 = 0xff; //關(guān)8個(gè)段碼
WEI_SHI = 0; //關(guān)十位的數(shù)碼管
WEI_GE = 1; //打開(kāi)個(gè)位的數(shù)碼管共陽(yáng)極公共端
P0 = num_table[num%10]; //顯示的個(gè)位數(shù)字
add_cnt = 0;
}
}
void Delay10ms(void) //@12.000MHz
{
unsigned char i, j;
i = 20;
j = 113;
do
{
while (--j);
} while (--i);
}
main()
{
BUZZER = 1;
LED_GREEN = 1;
TMOD = 0x01;
TH0 = 0xD8;
TL0 = 0xF0; //65536 - 10000 = 55536
IE = 0x82; //EA + ET0 --》 1000 0010
TR0 = 1; //開(kāi)啟timer0
while(1){
if(0 == SW){
Delay10ms();
if(0 == SW){
while(0 == SW){}
BUZZER = 0;
LED_GREEN = 0;
tcount = 1;
num++;
if (num 》 99)
{
num = 0;
}
}
}
}
return 1;
}
責(zé)任編輯人:CC
-
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1888瀏覽量
92112 -
共陽(yáng)數(shù)碼管
+關(guān)注
關(guān)注
0文章
14瀏覽量
11376
發(fā)布評(píng)論請(qǐng)先 登錄
TM1617能驅(qū)動(dòng)共陽(yáng)數(shù)碼管嗎?
兩位一體數(shù)碼管動(dòng)態(tài)顯示程序
兩個(gè)四位一體的共陰數(shù)碼管怎么并在一起
兩位一體共陽(yáng)極數(shù)碼管顯示驅(qū)動(dòng)代碼表是什么?
四位一體數(shù)碼管
四位一體數(shù)碼管介紹、掃描原理、應(yīng)用電路和共陽(yáng)共陰碼段編寫(xiě)和示例
四位一體數(shù)碼管的引腳圖介紹
芯片動(dòng)態(tài)顯示兩位共陽(yáng)數(shù)碼管
51黑論壇_2個(gè)兩位共陽(yáng)數(shù)碼管時(shí)鐘
4位共陽(yáng)LED數(shù)碼管與常用共陽(yáng)極數(shù)碼管型號(hào)

共陽(yáng)數(shù)碼管電機(jī)驅(qū)動(dòng)對(duì)應(yīng)表A

評(píng)論