一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

CW32數(shù)字電壓電流表軟件教程(三):數(shù)碼管顯示數(shù)字

jf_qE49KoVBr8 ? 來源:CW32生態(tài)社區(qū) ? 2024-05-14 14:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

4.1.數(shù)碼管顯示原理

數(shù)碼管的顯示原理是由多個發(fā)光的二極管共陰極或者共陽極組成的成“8”字形的顯示器件。數(shù)碼管通過不同的組合可用來顯示數(shù)字0~9、字符A ~ F及小數(shù)點“.”。數(shù)碼管的工作原理是通過控制外部的I/O端口進行驅(qū)動數(shù)碼管的各個段碼,使用不同的段碼從而形成字符顯示出我們要的數(shù)字。數(shù)碼管實際上是由七個發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點就是8個。這些段分別由字母A、B、C、D、E、F、G、DP來表示。

當(dāng)數(shù)碼管特定的引腳加上高電平后,這些特定的發(fā)光二極管就會發(fā)亮,以形成我們眼睛看到的字樣了。如:在一個共陰極數(shù)碼管上顯示一個“8”字,那么就對A、B、C、D、E、F、G對應(yīng)的引腳置高電平。發(fā)光二極管的陽極共同連接至電源的正極稱為共陽極數(shù)碼管,這種類型的數(shù)碼管點亮需要對引腳置低電平;發(fā)光二極管的陰極共同連接到電源的負極稱為共陰極數(shù)碼管,點亮共陰極數(shù)碼管需要對相應(yīng)的引腳置高電平。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

52982f4a-11a8-11ef-a297-92fbcf53809c.png

圖4-1 數(shù)碼管模型圖

共陽極數(shù)碼管的8個發(fā)光二極管的陽極(二極管正端)連接在一起。通常,公共陽極接高電平(一般接電源),其它管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸出端為低電平時,則該端所連接的字段導(dǎo)通并點亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。

共陰極數(shù)碼管的8個發(fā)光二極管的陰極(二極管負端)連接在一起。通常,公共陰極接低電平(一般接地),其它管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸出端為高電平時,則該端所連接的字段導(dǎo)通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。

4.2.數(shù)碼管原理圖與實物圖

如果數(shù)碼管可以顯示多位數(shù)字,如我們的電壓電流表所示。那么除了控制段碼來選擇要顯示的內(nèi)容,還要選擇位碼來控制某一個數(shù)碼管的亮滅。

52b6c46e-11a8-11ef-a297-92fbcf53809c.png

圖4-2 電壓電流表三位數(shù)碼管

數(shù)碼管的原理圖如下,可以看出除了上述的段碼引腳之外,還有COM1、COM2、COM3的位碼引腳,三個位碼引腳分別控制三個數(shù)碼管的亮滅情況,且低電平有效。

52dcbf0c-11a8-11ef-a297-92fbcf53809c.png

圖4-3 三位數(shù)碼管原理圖

4.3.數(shù)碼管驅(qū)動顯示

驅(qū)動顯示數(shù)碼管的思路是:先將A、B、C、D、E、F、G所代表的引腳從低到高編號,列出數(shù)碼要顯示數(shù)字的段碼值。比如要顯示數(shù)字5,則段碼值為0x6d,二進制表示為01101101,這說明G置1,F(xiàn)置1,E置0,D置1,C置1,B置0,A置1,最高位則是DP的值。將要顯示的數(shù)字以段碼值的方式儲存在數(shù)組里以供調(diào)用,可以簡化程序。

接著以循環(huán)的方式結(jié)合switch語句對A、B、C、D、E、F、G的亮滅情況進行單獨計算,先將段碼值確定后再進行位碼的選擇,可以避免因單片機執(zhí)行程序的時間而造成顯示效果的不足。

具體程序如下,將所有與數(shù)碼管顯示相關(guān)的函數(shù)保存在新建的 Seg_Reg.c 文件

/*  共陰數(shù)碼管編碼表:
 0x3f   0x06   0x5b  0x4f  0x66  0x6d  0x7d  0x07  0x7f  0x6f 
  0      1      2     3     4     5     6     7     8     9 
 0xbf   0x86   0xdb  0xcf  0xe6  0xed  0xfd  0x87  0xff  0xef           
  0.     1.     2.    3.    4.    5.    6.    7.    8.    9. */
 
             
uint8_t Seg_Table[20] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,
                         0xbf, 0x86, 0xdb, 0xcf, 0xe6, 0xed, 0xfd, 0x87, 0xff, 0xef};
/*對段碼值進行存儲*/


void Seg_Init(void)      //查找原理圖對數(shù)碼管相關(guān)引腳進行初始化
{
  __RCC_GPIOA_CLK_ENABLE();//打開GPIOA的時鐘
  __RCC_GPIOB_CLK_ENABLE();//打開GPIOB的時鐘
  __RCC_GPIOC_CLK_ENABLE();//打開GPIOC的時鐘
        
  GPIO_InitTypeDef GPIO_InitStruct; 
                
  GPIO_InitStruct.Pins = GPIO_PIN_0 | GPIO_PIN_4; //PA00,E;PA04,G
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.IT = GPIO_IT_NONE;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  GPIO_Init(CW_GPIOA, &GPIO_InitStruct);
        
  GPIO_InitStruct.Pins = GPIO_PIN_6 | GPIO_PIN_4 | GPIO_PIN_2 | GPIO_PIN_0 | GPIO_PIN_3 | GPIO_PIN_7; //PB06,B;PB04,C;PB02,D;PB00,F;PB03,DP  //PB07,COM1
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.IT = GPIO_IT_NONE;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  GPIO_Init(CW_GPIOB, &GPIO_InitStruct);
        
  GPIO_InitStruct.Pins = GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2; //PC04,A; //PC03,COM2;PC02,COM3
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.IT = GPIO_IT_NONE;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  GPIO_Init(CW_GPIOC, &GPIO_InitStruct);
}
void Seg_Dis(uint8_t Pos,uint8_t Num)   //Pos表示指定哪一個數(shù)碼管亮,Num表示要顯示的數(shù)字
{
  int i;
  uint8_t Dis_Value,Location;
  Location = Pos;
  Dis_Value = Seg_Table[Num];
        
  for(i = 0; i < 8; i++)      //通過循環(huán)確定每一個段碼引腳的亮滅情況
  {
    switch(i)
      {
/*將Dis_Value右移i位,再和0x01(00000001)相與消除其他位的影響,可以確定該位的寫入值,
  學(xué)員可以自己用一個實例比如0x6d(01101101)進行分析*/
        case 0:
          GPIO_WritePin(CW_GPIOC,GPIO_PIN_4,(Dis_Value >> i) & 0x01);    //PC04,A
          break;
        case 1:
          GPIO_WritePin(CW_GPIOB,GPIO_PIN_6,(Dis_Value >> i) & 0x01);    //PB06,B
          break;
        case 2:
          GPIO_WritePin(CW_GPIOB,GPIO_PIN_4,(Dis_Value >> i) & 0x01);    //PB04,C
          break;
        case 3:
          GPIO_WritePin(CW_GPIOB,GPIO_PIN_2,(Dis_Value >> i) & 0x01);    //PB02,D
          break;
        case 4:
          GPIO_WritePin(CW_GPIOA,GPIO_PIN_0,(Dis_Value >> i) & 0x01);    //PA00,E
          break;
        case 5:
          GPIO_WritePin(CW_GPIOB,GPIO_PIN_0,(Dis_Value >> i) & 0x01);    //PB00,F
          break;
        case 6:
          GPIO_WritePin(CW_GPIOA,GPIO_PIN_4,(Dis_Value >> i) & 0x01);    //PA04,G
          break;
        case 7:
          GPIO_WritePin(CW_GPIOB,GPIO_PIN_3,(Dis_Value >> i) & 0x01);    //PB03,DP
          break;
        default:
          break;
      }
  }
        
  switch(Location)    //確定段碼后再選擇位碼
  {
    case 0:
      GPIO_WritePin(CW_GPIOB,GPIO_PIN_7,GPIO_Pin_RESET);  //PB07,COM1
      GPIO_WritePin(CW_GPIOC,GPIO_PIN_3,GPIO_Pin_SET);    //PC03,COM2
      GPIO_WritePin(CW_GPIOC,GPIO_PIN_2,GPIO_Pin_SET);    //PC02,COM3
      break;
    case 1:
      GPIO_WritePin(CW_GPIOB,GPIO_PIN_7,GPIO_Pin_SET);    //PB07,COM1
      GPIO_WritePin(CW_GPIOC,GPIO_PIN_3,GPIO_Pin_RESET);  //PC03,COM2
      GPIO_WritePin(CW_GPIOC,GPIO_PIN_2,GPIO_Pin_SET);    //PC02,COM3
      break;
    case 2:
      GPIO_WritePin(CW_GPIOB,GPIO_PIN_7,GPIO_Pin_SET);    //PB07,COM1
      GPIO_WritePin(CW_GPIOC,GPIO_PIN_3,GPIO_Pin_SET);    //PC03,COM2
      GPIO_WritePin(CW_GPIOC,GPIO_PIN_2,GPIO_Pin_RESET);  //PC02,COM3
      break;
    default:
      break;
  }
}
在主函數(shù)里調(diào)用Seg_Dis函數(shù)即可在對應(yīng)位置顯示相應(yīng)數(shù)字(別忘了初始化),各位學(xué)員熟練之后可以通過define定義每個引腳的寫入,使代碼更加簡潔美觀。 程序下載接線如圖4-4所示:

5308ea28-11a8-11ef-a297-92fbcf53809c.png

圖4-4 電壓電流表程序下載接線

4.4.實驗效果

最終的實驗效果如下圖所示:

53299930-11a8-11ef-a297-92fbcf53809c.png

5359d12c-11a8-11ef-a297-92fbcf53809c.png

53856918-11a8-11ef-a297-92fbcf53809c.png

圖4-5 數(shù)碼管顯示實驗效果



審核編輯:劉清

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

    關(guān)注

    13

    文章

    1218

    瀏覽量

    67668
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1889

    瀏覽量

    92627
  • 驅(qū)動電路
    +關(guān)注

    關(guān)注

    155

    文章

    1585

    瀏覽量

    109962
  • 限流電阻
    +關(guān)注

    關(guān)注

    2

    文章

    85

    瀏覽量

    17520
  • 電壓電流表
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    2195
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    255

    瀏覽量

    1252

原文標(biāo)題:CW32數(shù)字電壓電流表軟件教程-實驗三:數(shù)碼管顯示數(shù)字

文章出處:【微信號:武漢芯源半導(dǎo)體,微信公眾號:武漢芯源半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    CW32數(shù)字電壓電流表-產(chǎn)品硬件設(shè)計要點

    主要功能: 1、對5-99V的電壓與0.1-3A的電流進行測量與顯示 2、通過藍牙發(fā)送測得的數(shù)據(jù) 3、作為一款CW32+數(shù)碼管的迷你開發(fā)板
    的頭像 發(fā)表于 04-25 15:20 ?2474次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b>-產(chǎn)品硬件設(shè)計要點

    CW32數(shù)字電壓電流表軟件教程(五):ADC采樣及顯示

    模擬數(shù)字轉(zhuǎn)換器即A/D轉(zhuǎn)換器,或簡稱ADC,通常是指一個將模擬信號轉(zhuǎn)變?yōu)?b class='flag-5'>數(shù)字信號的電子元件。通
    的頭像 發(fā)表于 05-21 10:34 ?1804次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>(五):ADC采樣及<b class='flag-5'>顯示</b>

    CW32數(shù)字電壓電流表軟件教程-實驗數(shù)碼管顯示數(shù)字

    原理是由多個發(fā)光的二極共陰極或者共陽極組成的成“8”字形的顯示器件。數(shù)碼管通過不同的組合可用來顯示數(shù)字0~9、字符A ~ F及小數(shù)點“.”
    的頭像 發(fā)表于 05-31 15:21 ?1365次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-實驗<b class='flag-5'>三</b>:<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>顯示</b><b class='flag-5'>數(shù)字</b>

    數(shù)字電流表的設(shè)計

    1 應(yīng)用背景1.1設(shè)計意義數(shù)字電流表的誕生打破了傳統(tǒng)電子測量儀器的模式和格局。它顯示清晰直觀、讀數(shù)準(zhǔn)確,采用了先進的數(shù)顯技術(shù),大大地減少了因人為因素所造成的測量誤差事件。數(shù)字
    發(fā)表于 08-06 06:22

    數(shù)碼管顯示電壓電路圖大全(六款數(shù)碼管顯示電壓電路原理圖詳解)

    本文主要介紹了數(shù)碼管顯示電壓電路圖大全(六款數(shù)碼管顯示電壓電路原理圖詳解)。測得的
    發(fā)表于 03-26 13:53 ?19.9w次閱讀
    <b class='flag-5'>數(shù)碼管</b><b class='flag-5'>顯示</b><b class='flag-5'>電壓電</b>路圖大全(六款<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>顯示</b><b class='flag-5'>電壓電</b>路原理圖詳解)

    用JLCPCB制造數(shù)字電壓表/電流表

    用JLCPCB制造數(shù)字電壓表/電流表教程。
    發(fā)表于 04-11 14:45 ?0次下載

    CW32數(shù)字電壓電流表-產(chǎn)品制作注意事項

    焊接排針再焊接數(shù)碼管,且需要像上圖一樣確保排針底部不要凸出PCB,否則會與數(shù)碼管發(fā)生干涉 2、外殼安裝 如果您計劃使用淘寶或其他渠道購買的公版外殼,在焊接數(shù)碼管前請先仔細閱讀下方內(nèi)容 注:建議先焊接
    的頭像 發(fā)表于 04-24 17:29 ?755次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b>-產(chǎn)品制作注意事項

    CW32數(shù)字電壓電流表軟件教程-實驗四:數(shù)碼管動態(tài)顯示

    5.1.數(shù)碼管動態(tài)顯示原理 所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出段碼和位碼,利用發(fā)光的余輝和人眼視覺暫留作用,使人眼的感覺好像各位
    的頭像 發(fā)表于 05-31 15:23 ?930次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-實驗四:<b class='flag-5'>數(shù)碼管</b>動態(tài)<b class='flag-5'>顯示</b>

    CW32數(shù)字電壓電流表軟件教程-實驗五:ADC采樣及顯示

    數(shù)字信號。由于數(shù)字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數(shù)轉(zhuǎn)換器都需要一個參考模擬量作為轉(zhuǎn)換的標(biāo)準(zhǔn),比較常見的參考標(biāo)準(zhǔn)為最大的可轉(zhuǎn)換信號大小。而輸出的數(shù)字量則表示輸入信號相對于參考信號的大小。 6.1.2.
    的頭像 發(fā)表于 05-31 15:28 ?995次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-實驗五:ADC采樣及<b class='flag-5'>顯示</b>

    CW32數(shù)字電壓電流表軟件教程-實驗七:基本數(shù)據(jù)處理算法(均值濾波)

    有像素的均值,再把該均值賦予當(dāng)前像素點(x,y),作為處理后圖像在該點上的灰度g(x,y),即g(x,y)=∑f(x,y)/m,m為該模板中包含當(dāng)前像素在內(nèi)的像素總個數(shù)。這本是數(shù)字圖像處理的一種方法,但也可以用在我們數(shù)字電壓電流表
    的頭像 發(fā)表于 05-31 15:47 ?726次閱讀

    CW32數(shù)字電壓電流表軟件進階教程-1.電壓電流同時顯示

    基于[CW32數(shù)字電壓電流表軟件教程-實驗七:基本數(shù)據(jù)處理算法(均值濾波)],可以對電壓電流進行同時采集
    的頭像 發(fā)表于 05-31 15:50 ?1266次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件</b>進階教程-1.<b class='flag-5'>電壓電流</b>同時<b class='flag-5'>顯示</b>

    CW32數(shù)字電壓電流表軟件進階教程-2.電壓電流值做均值濾波

    在實驗運行7.1章節(jié)例程時 [CW32數(shù)字電壓電流表軟件進階教程-1.電壓電流同時顯示] ,會發(fā)
    的頭像 發(fā)表于 05-31 15:57 ?863次閱讀

    CW32數(shù)字電壓電流表軟件進階教程-3.電壓電流標(biāo)定

    標(biāo)定是通過測量標(biāo)準(zhǔn)器的偏差來補償儀器系統(tǒng)誤差,從而改善儀器或系統(tǒng)準(zhǔn)確度、精度的操作。為了提高電壓電流表在測量時的測量精度和準(zhǔn)確度,需要對電壓電流進行標(biāo)定校準(zhǔn)。 常見的標(biāo)定原理如下:假設(shè)一個采樣系統(tǒng)
    的頭像 發(fā)表于 05-31 16:20 ?1244次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件</b>進階教程-3.<b class='flag-5'>電壓電流</b>標(biāo)定

    基于CW32F003E4P7的數(shù)字電壓電流表產(chǎn)品方案

    產(chǎn)品實物: 一、產(chǎn)品概述 數(shù)字電壓電流表,又稱為數(shù)顯電流電壓表,是以數(shù)字形式顯示,能夠同時檢測電流
    的頭像 發(fā)表于 06-25 11:55 ?1462次閱讀
    基于<b class='flag-5'>CW</b>32F003E4P7的<b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b>產(chǎn)品方案

    8位數(shù)碼管怎么不顯示數(shù)字

    8位數(shù)碼管是一種常見的電子顯示設(shè)備,用于顯示數(shù)字或字符。然而,有時8位數(shù)碼管可能無法正常顯示
    的頭像 發(fā)表于 08-28 16:34 ?1889次閱讀