精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于數碼管的一些知識筆記

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

“寫寫關于數碼管的一些知識筆記”

圖片

01段碼

1.共陰數碼

圖片

2.共陽數碼管

圖片

02仿真

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

數碼管:cc是共陰、ca是共陽

圖片

03代碼結構

晶振頻率設置為12MHZ,一條指令的執行時間為10μs。

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


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


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

04寫入keil的代碼

一、共陰數碼管顯示0~15。

代碼如下:

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


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


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


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


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


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


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

二、用陽極數碼管的字形碼通過共陰的數碼管顯示數字。

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

修改字形碼


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


//*****裝有字形碼的數組table_ca  --這個是共陽極的
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];  //這里改變了,因為是共陰數碼管,使用共陽字形碼需要將字形碼取反
        Delay();
    }
  }
}
void Delay(){
  u16 i,j;
  for(i = 0; i < 1000; i++)
    for(j = 0; j < 100; j++);
}

05加入按鍵button控制

由圖可知,P1^0和P1^4是線與的關系,只有當P1^0與P1^4都為高電平時,結果才為高電平,如果其中有一個為低電平,結果就為低電平。

那么我們怎么樣才能判斷按鍵是否按下呢?

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

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

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

// 在main函數里面加上這句話
  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];
    }
  }
}

未按下按鍵前 ,運行效果如下:

圖片

為什么我們沒有運行前,它就已經有數字顯示了呢,因為我們沒有初始化,將P2置為低電平。

將主函數修改為:

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

未按下按鍵前 ,運行效果如下:

圖片

按下按鍵后 ,效果如下:

圖片

06題外話

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

但是如果當我們這個P1端口已經在使用中了,我們要在修改P1^0和P1^4的基礎下,不變動P1端口的其它引腳的值,那我們應該這樣做:

P1 = P1 & 0xfe | 0x10;

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數碼管
    +關注

    關注

    32

    文章

    1876

    瀏覽量

    90970
  • 函數
    +關注

    關注

    3

    文章

    4308

    瀏覽量

    62444
  • keil
    +關注

    關注

    68

    文章

    1212

    瀏覽量

    166701
  • 代碼
    +關注

    關注

    30

    文章

    4753

    瀏覽量

    68368
  • 共陰數碼管
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7803
收藏 人收藏

    評論

    相關推薦

    數碼管與矩陣鍵盤聯合應用設計

    AMetal 提供了數碼管和矩陣鍵盤聯合使用的驅動,其本質上就是數碼管驅動和矩陣鍵盤驅動的簡單整合,避免了在多個實例信息中提供一些相同的信息,如數碼管實例信息中的位選引腳在和矩陣鍵盤實
    的頭像 發表于 01-19 09:31 ?7866次閱讀
    <b class='flag-5'>數碼管</b>與矩陣鍵盤聯合應用設計

    數碼管的基本知識

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

    了解數碼管的工作原理

    這里是我的數碼管的學習筆記,歡迎大家起進步數碼管的初始化原理參照以下鏈接(本人寫的博客)初始化原理請務必多看下,里面還有
    發表于 12-02 07:05

    數碼管顯示實驗

    數碼管顯示實驗 、實驗目的數碼管是單片機系統常用的輸出顯示器件,單個數碼管可以顯示0~F 和一些簡單符號。本實驗要求
    發表于 09-28 12:28 ?1.6w次閱讀
    <b class='flag-5'>數碼管</b>顯示實驗

    數碼管百科知識

    數碼管百科知識  數碼管種半導體發光器件,其基本單元是發光二極。   【數碼管的分
    發表于 11-06 11:46 ?2257次閱讀

    7數碼管基本知識

    數碼管介紹,里面介紹了數碼管的基本知識。好東西為什么要20個字來介紹呢?
    發表于 02-23 15:34 ?5次下載

    關于PID一些常用知識

    本文檔詳細介紹分析了關于PID的一些常用知識
    發表于 08-29 14:22 ?2次下載

    關于EEPROM讀寫與數碼管顯示實驗

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

    藍橋杯單片機學習之數碼管

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

    單片機零基礎入門(8-1)學會單片機數碼管,這篇文章就夠了,文吃透數碼管---數碼管如何定義引腳?數碼

    單片機零基礎入門(8-1)學會單片機數碼管,這篇文章就夠了,文吃透數碼管---數碼管如何定義引腳?數碼管如何驅動?驅動方式有哪些?單片機中
    發表于 11-25 18:36 ?38次下載
    單片機零基礎入門(8-1)學會單片機<b class='flag-5'>數碼管</b>,這篇文章就夠了,<b class='flag-5'>一</b>文吃透<b class='flag-5'>數碼管</b>---<b class='flag-5'>數碼管</b>如何定義引腳?<b class='flag-5'>數碼</b>

    單片機零基礎入門(8-2)實戰:在數碼管中實現顯示個數字--在數碼管指定位置顯示個數字----單片機數碼管實戰

    單片機零基礎入門(8-2)實戰:在數碼管中實現顯示個數字--數碼管知識的應用、上節回顧:二、本節需求:三、需求分析:四、源代碼:
    發表于 01-12 18:19 ?13次下載
    單片機零基礎入門(8-2)實戰:在<b class='flag-5'>數碼管</b>中實現顯示<b class='flag-5'>一</b>個數字--在<b class='flag-5'>數碼管</b>指定位置顯示<b class='flag-5'>一</b>個數字----單片機<b class='flag-5'>數碼管</b>實戰

    數碼管驅動學習筆記

    電子發燒友網站提供《數碼管驅動學習筆記.pdf》資料免費下載
    發表于 11-05 17:28 ?0次下載

    單片機數碼管驅動學習筆記

    51單片機數碼管驅動筆記
    發表于 11-06 17:23 ?1次下載

    數碼管筆記

    1.共陰極/共陽極數碼管的內部組成結構2..共陰極/共陽極數碼管的驅動電路3.數碼管顯示的字符/段選/位選
    發表于 11-06 17:18 ?3次下載

    數碼管筆記分享

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