久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

獻(xiàn)給初學(xué)單片機(jī)的朋友——數(shù)碼管顯示驅(qū)動(dòng)



如上圖所示:要讓一個(gè)四位數(shù)碼管能按要求顯示出自己需要的數(shù)據(jù).首先要知道數(shù)碼和的工作原理.在這例子里采用了共陽(yáng)數(shù)碼管(即:每位7段LED發(fā)光二極管的陽(yáng)極接到一起,如數(shù)碼管的第6、8、9、12腳.a-g這個(gè)幾引腳是數(shù)碼管的段位,如a接著4位的a段,到這里如還不是很清楚數(shù)碼管內(nèi)部結(jié)構(gòu)的自己去查下資料吧.

在了解數(shù)碼管之后對(duì)數(shù)碼管的驅(qū)動(dòng)就就得很簡(jiǎn)單了,如果我們需要DIG1顯示一個(gè)8字,我們可以拉低a-f引腳,然后讓K1輸出高電平,這樣DIG1就會(huì)顯示一個(gè)8字.如果我們要顯示4個(gè)8,那又什么操作呢?是不是將K1-K4都同時(shí)拉高就行了?當(dāng)然可以這樣操作,但通常不會(huì)這樣子去操作,因?yàn)闀?huì)有這樣情況,如果我們顯示的不是4個(gè)8,而是需要顯示“1234”這樣就不能同時(shí)接高K1-K4了.而是通過(guò)掃苗方式顯示,也就是說(shuō)按順序先讓第一位顯示1,第二位顯示2,第三位顯示3,第四位顯示4,注意:每時(shí)刻只有一位顯示,只要刷新夠快(大于40HZ)我們就不會(huì)看到有閃動(dòng)的感覺(jué).


上圖中,我們可以看出如果要數(shù)碼管顯示1,那么拉低b與c的引腳電平,由于a-f接于PB端口,我們可以向PB口寫(xiě)入“0xF9”采用同樣的方法我們可算出要顯示0-9時(shí)對(duì)應(yīng)的輸入數(shù)據(jù)為:
        0xC0,/*0*/
        0xF9,/*1*/
        0xA4,/*2*/
        0xB0,/*3*/
        0x99,/*4*/
        0x92,/*5*/
        0x82,/*6*/
        0xF8,/*7*/
        0x80,/*8*/
        0x90,/*9*/
下面舉個(gè)實(shí)例
    //數(shù)碼管顯示部分
unsigned char display_code[18]=
       {
        0xC0,/*0*/
        0xF9,/*1*/
        0xA4,/*2*/
        0xB0,/*3*/
        0x99,/*4*/
        0x92,/*5*/
        0x82,/*6*/
        0xF8,/*7*/
        0x80,/*8*/
        0x90,/*9*/
        0x88,/*A*/
        0x83,/*b*/
        0xC6,/*C*/
        0xA1,/*d*/
        0x86,/*E*/
        0x8E,/*F*/
        0x8B,/*h*/
        0xFF
        };
        
unsigned char display_bit;                   //0-3  四位數(shù)碼管掃描.
unsigned char display_buffer[4]={8,7,6,5};   //顯示緩沖  

void display_update(void)
{
PORTD &= 0xf0; //清除低四位
if((state&0x08)==0 && display_bit==1)             //顯示小數(shù)位
PORTB=(display_code[display_buffer[display_bit]])&0x7f;
else
PORTB=display_code[display_buffer[display_bit]]; //更新顯示數(shù)據(jù).

PORTD |= (0x01<display_bit++;                                   //下移一位
if(display_bit>3)display_bit=0;  
}

在例子中,只需要向顯示緩沖寫(xiě)入需要顯示的數(shù)值就可以了.
全部回復(fù)(6)
正序查看
倒序查看
abing
LV.8
2
2008-09-25 10:48
這個(gè)程序已成功在上面原理圖中應(yīng)用,如有表達(dá)不對(duì)的地方歡迎指出.
0
回復(fù)
2008-09-25 11:37
@abing
這個(gè)程序已成功在上面原理圖中應(yīng)用,如有表達(dá)不對(duì)的地方歡迎指出.
路過(guò).頂.需要認(rèn)證可以聯(lián)系我QQ761210201
0
回復(fù)
liqiu
LV.1
4
2008-09-27 09:14
@abing
這個(gè)程序已成功在上面原理圖中應(yīng)用,如有表達(dá)不對(duì)的地方歡迎指出.
請(qǐng)問(wèn)你那state是哪里的變量??
0
回復(fù)
abing
LV.8
5
2008-09-27 09:32
@liqiu
請(qǐng)問(wèn)你那state是哪里的變量??
是一個(gè)狀態(tài)值,因?yàn)閿?shù)碼管在不同的狀態(tài)下顯示小數(shù)位不一樣.配合外部程序使用
0
回復(fù)
山石
LV.4
6
2008-11-04 16:53
@abing
是一個(gè)狀態(tài)值,因?yàn)閿?shù)碼管在不同的狀態(tài)下顯示小數(shù)位不一樣.配合外部程序使用
學(xué)習(xí)學(xué)習(xí)!!呵呵!!500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點(diǎn)擊可放大。\n按住CTRL,滾動(dòng)鼠標(biāo)滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/71/1345201225788787.jpg');}" onmousewheel="return imgzoom(this);">
0
回復(fù)
2009-12-14 15:47
做個(gè)記號(hào)
0
回復(fù)
發(fā)