0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于數(shù)碼管的一些知識(shí)筆記

CHANBAEK ? 來(lái)源:狂錘硬件 ? 作者: 顧 ? 2023-06-28 11:29 ? 次閱讀

“寫寫關(guān)于數(shù)碼管的一些知識(shí)筆記”

圖片

01段碼

1.共陰數(shù)碼

圖片

2.共陽(yáng)數(shù)碼管

圖片

02仿真

元件有:80C51、button、7SEG-MPX6-CC(共陰數(shù)碼管)

數(shù)碼管:cc是共陰、ca是共陽(yáng)

圖片

03代碼結(jié)構(gòu)

晶振頻率設(shè)置為12MHZ,一條指令的執(zhí)行時(shí)間為10μs。

//*****引入頭文件
#include < reg51.h >


//*****聲明函數(shù)和變量、引腳的定義
#define u8  unsigned char      //8位無(wú)符號(hào)數(shù)
#define u16 unsigned int       //16位無(wú)符號(hào)數(shù)
//*****延時(shí)函數(shù)的聲明
 void Delay();
//*****主函數(shù)
void main(){
  while(1){
  }
}


//*****延時(shí)函數(shù):1s
void Delay(){
  u16 i,j;
  for(i = 0; i < 1000; i++)
    for(j = 0; j < 100; j++);
}

04寫入keil的代碼

一、共陰數(shù)碼管顯示0~15。

代碼如下:

//*****引入頭文件
#include < reg51.h >


//*****聲明函數(shù)和變量、引腳的定義
#define u8  unsigned char
#define u16 unsigned int


sbit button = P1^4;  //定義引腳P1^4為按鈕的控制引腳


//******裝有字形碼的數(shù)組table_cc  --這個(gè)是共陰極的
u8 Table_cc[]={
            0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71
};


//*****延時(shí)函數(shù)的聲明
void Delay();


//*****主函數(shù)
void main(){
  u8 i;
  P3 = 0x00;   //因?yàn)槭枪碴帢O數(shù)碼管,P3連接的是數(shù)碼管的陰極,得置低電平,共陰數(shù)碼管才能其效果
  while(1){
    for( i = 0 ; i< 16 ; i++){
        P2 = Table_cc[i];
        Delay();
    }
  }
}


//*****延時(shí)函數(shù)
void Delay(){
  u16 i,j;
  for(i = 0; i < 1000; i++)
    for(j = 0; j < 100; j++);
}

二、用陽(yáng)極數(shù)碼管的字形碼通過(guò)共陰的數(shù)碼管顯示數(shù)字。

【PS:可以將共陰數(shù)碼管換成共陽(yáng)數(shù)碼管,我只是偷懶,不想更換,如果更換了數(shù)碼管,直接將字形碼全部替換掉就行,不用去修改主函數(shù)的內(nèi)容,共陽(yáng)的主函數(shù)和共陰的主函數(shù)是一樣的】

修改字形碼


u8 Table_cc[]={
            0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71
};
更換為
u8 Table_ca[]={
            0xc0,0xf9,0xa4,0xb0,
            0x99,0x92,0x82,0xf8,
            0x80,0x90,0x88,0x83,
            0xc6,0xa1,0x86,0x8e
};

完整代碼如下:

#include < reg51.h >


#define u8  unsigned char
#define u16 unsigned int


//*****裝有字形碼的數(shù)組table_ca  --這個(gè)是共陽(yáng)極的
u8 Table_ca[]={
            0xc0,0xf9,0xa4,0xb0,
            0x99,0x92,0x82,0xf8,
            0x80,0x90,0x88,0x83,
            0xc6,0xa1,0x86,0x8e
};
void Delay();


void main(){
  u8 i;
  P3 = 0x00;
  while(1){
    for( i = 0 ; i< 16 ; i++){
        P2 = ~Table_ca[i];  //這里改變了,因?yàn)槭枪碴帞?shù)碼管,使用共陽(yáng)字形碼需要將字形碼取反
        Delay();
    }
  }
}
void Delay(){
  u16 i,j;
  for(i = 0; i < 1000; i++)
    for(j = 0; j < 100; j++);
}

05加入按鍵button控制

由圖可知,P1^0和P1^4是線與的關(guān)系,只有當(dāng)P1^0與P1^4都為高電平時(shí),結(jié)果才為高電平,如果其中有一個(gè)為低電平,結(jié)果就為低電平。

那么我們?cè)趺礃硬拍芘袛喟存I是否按下呢?

答案是:我們將其中一個(gè)引腳置為低電平,另外一個(gè)置為高電平,如果按鍵按下了,置為高電平的引腳會(huì)輸出低電平。

//在初始化前,得先定義控制引腳
sbit Key = P1^4;

首先是將P1^0置為低電平,P1^4置為高電平

// 在main函數(shù)里面加上這句話
  P1 = 0x10;    //按鍵控制初始化

完整代碼如下:

#include < reg51.h >


#define u8  unsigned char
#define u16 unsigned int


sbit Key = P1^4;


u8 Table_cc[]={
            0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71
};


void main(){
  P3 = 0x00;
  P1 = 0x10;
  while(1){
   if(Key == 0){
      P2=Table_cc[1];
    }
  }
}

未按下按鍵前 ,運(yùn)行效果如下:

圖片

為什么我們沒有運(yùn)行前,它就已經(jīng)有數(shù)字顯示了呢,因?yàn)槲覀儧]有初始化,將P2置為低電平。

將主函數(shù)修改為:

void main(){
  P3 = 0x00;  //片選
  P1 = 0x10;  //按鍵初始化
  P2 = 0x00;  //黑屏
  while(1){
   if(Key == 0){
      P2=Table_cc[1];
    }
  }
}

未按下按鍵前 ,運(yùn)行效果如下:

圖片

按下按鍵后 ,效果如下:

圖片

06題外話

之前的案例是建立在我們的P1端口是沒有運(yùn)行的,是剛剛使用的,剛初始化的,所以我們可以直接將P1賦值為0x10;

但是如果當(dāng)我們這個(gè)P1端口已經(jīng)在使用中了,我們要在修改P1^0和P1^4的基礎(chǔ)下,不變動(dòng)P1端口的其它引腳的值,那我們應(yīng)該這樣做:

P1 = P1 & 0xfe | 0x10;

& 0xfe 是為了將P1^0置為0,使其它引腳電平不變,而 | 0x10 是為了將P1^4 置為 1,使其它引腳電平不變,由此,P1這樣賦值。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    31

    文章

    1869

    瀏覽量

    90518
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4235

    瀏覽量

    61965
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1207

    瀏覽量

    166170
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4670

    瀏覽量

    67761
  • 共陰數(shù)碼管
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    7787
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)碼管與矩陣鍵盤聯(lián)合應(yīng)用設(shè)計(jì)

    AMetal 提供了數(shù)碼管和矩陣鍵盤聯(lián)合使用的驅(qū)動(dòng),其本質(zhì)上就是數(shù)碼管驅(qū)動(dòng)和矩陣鍵盤驅(qū)動(dòng)的簡(jiǎn)單整合,避免了在多個(gè)實(shí)例信息中提供一些相同的信息,如數(shù)碼管實(shí)例信息中的位選引腳在和矩陣鍵盤實(shí)
    的頭像 發(fā)表于 01-19 09:31 ?7767次閱讀
    <b class='flag-5'>數(shù)碼管</b>與矩陣鍵盤聯(lián)合應(yīng)用設(shè)計(jì)

    數(shù)碼管的基本知識(shí)

    的電子設(shè)備。玻璃中包括個(gè)金屬絲網(wǎng)制成的陽(yáng)極和多個(gè)陰極大部分數(shù)碼管陰極的形狀為數(shù)字中充以低壓氣體,通常大部分為氖加上一些汞和/或氬給某
    發(fā)表于 07-19 09:33

    了解數(shù)碼管的工作原理

    這里是我的數(shù)碼管的學(xué)習(xí)筆記,歡迎大家起進(jìn)步數(shù)碼管的初始化原理參照以下鏈接(本人寫的博客)初始化原理請(qǐng)務(wù)必多看下,里面還有
    發(fā)表于 12-02 07:05

    數(shù)碼管顯示實(shí)驗(yàn)

    數(shù)碼管顯示實(shí)驗(yàn) 、實(shí)驗(yàn)?zāi)康?b class='flag-5'>數(shù)碼管是單片機(jī)系統(tǒng)常用的輸出顯示器件,單個(gè)數(shù)碼管可以顯示0~F 和一些簡(jiǎn)單符號(hào)。本實(shí)驗(yàn)要求
    發(fā)表于 09-28 12:28 ?1.5w次閱讀
    <b class='flag-5'>數(shù)碼管</b>顯示實(shí)驗(yàn)

    數(shù)碼管百科知識(shí)

    數(shù)碼管百科知識(shí)  數(shù)碼管種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極。   【數(shù)碼管的分
    發(fā)表于 11-06 11:46 ?2199次閱讀

    7數(shù)碼管基本知識(shí)

    數(shù)碼管介紹,里面介紹了數(shù)碼管的基本知識(shí)。好東西為什么要20個(gè)字來(lái)介紹呢?
    發(fā)表于 02-23 15:34 ?5次下載

    關(guān)于PID一些常用知識(shí)

    本文檔詳細(xì)介紹分析了關(guān)于PID的一些常用知識(shí)
    發(fā)表于 08-29 14:22 ?2次下載

    關(guān)于EEPROM讀寫與數(shù)碼管顯示實(shí)驗(yàn)

    關(guān)于EEPROM讀寫與數(shù)碼管顯示實(shí)驗(yàn)(嵌入式開發(fā)平臺(tái)圖片)-關(guān)于EEPROM讀寫與數(shù)碼管顯示實(shí)驗(yàn),適合感興趣的學(xué)習(xí)者學(xué)習(xí),可以提高自己的能力,大家可以多交流哈
    發(fā)表于 08-04 12:00 ?9次下載
    <b class='flag-5'>關(guān)于</b>EEPROM讀寫與<b class='flag-5'>數(shù)碼管</b>顯示實(shí)驗(yàn)

    藍(lán)橋杯單片機(jī)學(xué)習(xí)之數(shù)碼管

    這里是我的數(shù)碼管的學(xué)習(xí)筆記,歡迎大家起進(jìn)步數(shù)碼管的初始化原理參照以下鏈接(本人寫的博客)初始化原理請(qǐng)務(wù)必多看下,里面還有
    發(fā)表于 11-23 17:21 ?7次下載
    藍(lán)橋杯單片機(jī)學(xué)習(xí)之<b class='flag-5'>數(shù)碼管</b>

    單片機(jī)零基礎(chǔ)入門(8-1)學(xué)會(huì)單片機(jī)數(shù)碼管,這篇文章就夠了,文吃透數(shù)碼管---數(shù)碼管如何定義引腳?數(shù)碼

    單片機(jī)零基礎(chǔ)入門(8-1)學(xué)會(huì)單片機(jī)數(shù)碼管,這篇文章就夠了,文吃透數(shù)碼管---數(shù)碼管如何定義引腳?數(shù)碼管如何驅(qū)動(dòng)?驅(qū)動(dòng)方式有哪些?單片機(jī)中
    發(fā)表于 11-25 18:36 ?38次下載
    單片機(jī)零基礎(chǔ)入門(8-1)學(xué)會(huì)單片機(jī)<b class='flag-5'>數(shù)碼管</b>,這篇文章就夠了,<b class='flag-5'>一</b>文吃透<b class='flag-5'>數(shù)碼管</b>---<b class='flag-5'>數(shù)碼管</b>如何定義引腳?<b class='flag-5'>數(shù)碼</b>

    單片機(jī)零基礎(chǔ)入門(8-2)實(shí)戰(zhàn):在數(shù)碼管中實(shí)現(xiàn)顯示個(gè)數(shù)字--在數(shù)碼管指定位置顯示個(gè)數(shù)字----單片機(jī)數(shù)碼管實(shí)戰(zhàn)

    單片機(jī)零基礎(chǔ)入門(8-2)實(shí)戰(zhàn):在數(shù)碼管中實(shí)現(xiàn)顯示個(gè)數(shù)字--數(shù)碼管知識(shí)的應(yīng)用、上節(jié)回顧:二、本節(jié)需求:三、需求分析:四、源代碼:
    發(fā)表于 01-12 18:19 ?13次下載
    單片機(jī)零基礎(chǔ)入門(8-2)實(shí)戰(zhàn):在<b class='flag-5'>數(shù)碼管</b>中實(shí)現(xiàn)顯示<b class='flag-5'>一</b>個(gè)數(shù)字--在<b class='flag-5'>數(shù)碼管</b>指定位置顯示<b class='flag-5'>一</b>個(gè)數(shù)字----單片機(jī)<b class='flag-5'>數(shù)碼管</b>實(shí)戰(zhàn)

    數(shù)碼管驅(qū)動(dòng)學(xué)習(xí)筆記

    電子發(fā)燒友網(wǎng)站提供《數(shù)碼管驅(qū)動(dòng)學(xué)習(xí)筆記.pdf》資料免費(fèi)下載
    發(fā)表于 11-05 17:28 ?0次下載

    單片機(jī)數(shù)碼管驅(qū)動(dòng)學(xué)習(xí)筆記

    51單片機(jī)數(shù)碼管驅(qū)動(dòng)筆記
    發(fā)表于 11-06 17:23 ?1次下載

    數(shù)碼管筆記

    1.共陰極/共陽(yáng)極數(shù)碼管的內(nèi)部組成結(jié)構(gòu)2..共陰極/共陽(yáng)極數(shù)碼管的驅(qū)動(dòng)電路3.數(shù)碼管顯示的字符/段選/位選
    發(fā)表于 11-06 17:18 ?3次下載

    數(shù)碼管筆記分享

    數(shù)碼管筆記
    的頭像 發(fā)表于 11-06 13:38 ?285次閱讀
    <b class='flag-5'>數(shù)碼管</b><b class='flag-5'>筆記</b>分享