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

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

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

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

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2024-05-31 15:23 ? 次閱讀

5.1.數(shù)碼管動(dòng)態(tài)顯示原理

所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出段碼和位碼,利用發(fā)光管的余輝和人眼視覺暫留作用,使人眼的感覺好像各位數(shù)碼管同時(shí)都在顯示。明確了原理,我們要使電壓電流表的三個(gè)位同時(shí)顯示不同的值需要用到CW32的定時(shí)器功能,在定時(shí)器的中斷服務(wù)程序里面執(zhí)行顯示刷新的動(dòng)作。有關(guān)CW32的定時(shí)器和中斷的相關(guān)知識(shí)請(qǐng)查看鏈接:【CW32F003E4核心板】入門學(xué)習(xí)教程。本文只講述如何配置定時(shí)器中斷并執(zhí)行數(shù)碼管刷新函數(shù)。

5.2.定時(shí)器中斷配置

在配置定時(shí)器之前需要注意是否將系統(tǒng)時(shí)鐘樹配置完成,定時(shí)器利用了高級(jí)外設(shè)時(shí)鐘 PCLK,在之前的時(shí)鐘配置中,我們將高級(jí)外設(shè)時(shí)鐘 PCLK的頻率配置成了6MHz,這將影響我們對(duì)定時(shí)器的預(yù)分頻和裝填計(jì)數(shù)值的配置。

在本次實(shí)驗(yàn)中,我們使用定時(shí)器BTIM1進(jìn)行中斷配置,代碼如下:

#include "BTIM1.h"

void Btim1_Init(void)
{
    BTIM_TimeBaseInitTypeDef BTIM_TimeBaseInitStruct;
    __RCC_BTIM_CLK_ENABLE();          //使能BTIM的時(shí)鐘
    NVIC_EnableIRQ(BTIM1_IRQn);       //使能BTIM1的中斷

    BTIM_TimeBaseInitStruct.BTIM_Mode      = BTIM_Mode_TIMER;//將定時(shí)器配置為計(jì)時(shí)模式
    BTIM_TimeBaseInitStruct.BTIM_Period    = 6000 - 1;      // 1ms采集1次
    BTIM_TimeBaseInitStruct.BTIM_Prescaler = BTIM_PRS_DIV1; // 6MHZ÷1÷6000 = 1000Hz
    BTIM_TimeBaseInitStruct.BTIM_OPMode    = BTIM_OPMode_Repetitive;//配置定時(shí)器連續(xù)運(yùn)行

    BTIM_TimeBaseInit(CW_BTIM1, &BTIM_TimeBaseInitStruct);  //初始化BTIM1
    BTIM_ITConfig(CW_BTIM1, BTIM_IT_OV, ENABLE); //配置BTIM1的中斷,定時(shí)器溢出產(chǎn)生中斷
    BTIM_Cmd(CW_BTIM1, ENABLE);                  //使能BTIM1           
}

5.3.數(shù)碼管動(dòng)態(tài)顯示

在上一節(jié)的數(shù)碼管顯示數(shù)字的數(shù)碼管顯示模塊Seg_Dis.c文件中,我們還需要添加三個(gè)函數(shù)和定義一個(gè)數(shù)組 Seg_Reg 來完成動(dòng)態(tài)顯示的功能。

uint8_t Seg_Reg[3] = {0,0,0};   //這個(gè)數(shù)組存放數(shù)碼管顯示三位的數(shù)字,0~9

void Close_Com(void)      //關(guān)閉所有數(shù)碼管的顯示,防止重影
{
  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_SET);    //PC02,COM3
}

void Display(uint32_t value)
{
  uint8_t Hundreds;// 百位數(shù)
  uint8_t Tens;    // 十位數(shù)
  uint8_t Units;   // 個(gè)位數(shù)

  Units     = value % 10;      //分別取余獲得位數(shù)的值
  Tens      = value / 10 % 10;
  Hundreds  = value / 100 % 10;

  Seg_Reg[0] = Hundreds;       //將個(gè)十百位的數(shù)字分別存放進(jìn)數(shù)組等待調(diào)用  
  Seg_Reg[1] = Tens;
  Seg_Reg[2] = Units;
}

void Dis_Refresh(void)      //函數(shù)將在定時(shí)器中斷里調(diào)用,不斷刷新數(shù)碼管
{
/*靜態(tài)變量從作用域上分屬于局部變量;從生命周期上來看,它與用戶程序的生命周期相同。*/
  static uint8_t num = 0;      //這里的靜態(tài)臨時(shí)變量num,輪詢Seg_Reg數(shù)組

  Close_Com();                 //先關(guān)閉公共端,防止重影
  Seg_Dis(num,Seg_Reg[num]);   //調(diào)用顯示函數(shù)
  num++;
  if(num > 2)
  {
    num = 0;               
  }
}

最后在定時(shí)器中斷里不斷調(diào)用顯示刷新函數(shù)完成數(shù)碼管的刷新顯示:

void BTIM1_IRQHandler(void)        //BTIM1的中斷服務(wù)程序
{
  static uint32_t Cnt=0;           //Cnt作為計(jì)數(shù)標(biāo)志位控制刷新函數(shù)是否執(zhí)行
  if (BTIM_GetITStatus(CW_BTIM1, BTIM_IT_OV))
  {
    BTIM_ClearITPendingBit(CW_BTIM1, BTIM_IT_OV);  //清除中斷標(biāo)志位
    Cnt++;
    if (Cnt > 2)                  //3ms顯示一個(gè)數(shù)碼管
    {
      Cnt = 0;
      Dis_Refresh();             //數(shù)碼管掃描顯示
    }
  }
}

5.4.實(shí)驗(yàn)效果

最終的實(shí)驗(yàn)效果如下圖所示,人眼已經(jīng)看不出閃爍,但實(shí)際上數(shù)碼管是依次刷新顯示。

圖5-1 數(shù)碼管動(dòng)態(tài)顯示效果圖

審核編輯 黃宇

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

    關(guān)注

    32

    文章

    1889

    瀏覽量

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

    關(guān)注

    0

    文章

    25

    瀏覽量

    2167
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    242

    瀏覽量

    1098
收藏 人收藏

    評(píng)論

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

    數(shù)碼管的結(jié)構(gòu)與原理

    數(shù)碼管,也被稱作輝光或LED數(shù)碼管,是一種能夠顯示數(shù)字、字母、符號(hào)等信息的電子設(shè)備。它廣泛應(yīng)用于各種電子設(shè)備中,如計(jì)算器、電子鐘表、電子秤
    的頭像 發(fā)表于 02-05 17:32 ?1463次閱讀

    四位數(shù)碼管12個(gè)引腳怎么分配

    在電子顯示技術(shù)中,四位數(shù)碼管作為一種常見的顯示器件,廣泛應(yīng)用于各種數(shù)字顯示系統(tǒng)。其通過控制不同段(A-G)的發(fā)光二極
    的頭像 發(fā)表于 01-30 15:00 ?7071次閱讀

    簡(jiǎn)述led數(shù)碼管的類型和顯示原理

    LED數(shù)碼管 :這是最常見的LED數(shù)碼管類型,由七個(gè)LED發(fā)光體組成,可以顯示0-9的數(shù)字。 十四段LED數(shù)碼管 :在七段LED
    的頭像 發(fā)表于 08-29 09:11 ?2179次閱讀

    數(shù)碼管顯示屏的靜態(tài)顯示編程是什么

    數(shù)碼管顯示屏的靜態(tài)顯示編程是一種簡(jiǎn)單的顯示方式,它指的是在任意時(shí)刻,數(shù)碼管上的所有段(a, b, c, d, e, f, g, dp等,具體
    的頭像 發(fā)表于 08-28 17:14 ?1014次閱讀

    數(shù)碼管顯示屏的作用和功能是什么

    )組成的數(shù)字顯示設(shè)備。每個(gè)LED可以獨(dú)立控制,通過不同的組合方式來顯示數(shù)字、字母和一些特殊符號(hào)。 1.2 數(shù)碼管的分類
    的頭像 發(fā)表于 08-28 17:11 ?2500次閱讀

    數(shù)碼管顯示屏在仿真軟件中叫什么

    數(shù)碼管顯示屏,又稱為七段顯示器或七段LED顯示器,是一種常見的數(shù)字顯示設(shè)備,廣泛應(yīng)用于電子設(shè)備中
    的頭像 發(fā)表于 08-28 17:08 ?2661次閱讀

    數(shù)碼管在仿真軟件里面怎么找

    數(shù)碼管,又稱為七段顯示器或七段顯示器,是一種常用的數(shù)字顯示設(shè)備,廣泛應(yīng)用于電子設(shè)備中,如電子鐘、計(jì)算器、
    的頭像 發(fā)表于 08-28 17:06 ?3009次閱讀

    數(shù)碼管在仿真軟件中叫什么

    數(shù)碼管是一種用于顯示數(shù)字和字符的電子設(shè)備,廣泛應(yīng)用于各種電子設(shè)備中,如計(jì)算器、電子鐘表、溫度計(jì)等。在仿真軟件中,數(shù)碼管通常被稱為“七段
    的頭像 發(fā)表于 08-28 16:40 ?2276次閱讀

    驅(qū)動(dòng)器數(shù)碼管顯示不良原因

    驅(qū)動(dòng)器數(shù)碼管顯示不良的原因可能有很多,涉及到硬件、軟件、環(huán)境等多個(gè)方面。 一、引言 驅(qū)動(dòng)器數(shù)碼管是一種廣泛應(yīng)用于工業(yè)自動(dòng)化、電子設(shè)備等領(lǐng)域的顯示
    的頭像 發(fā)表于 08-28 16:38 ?1639次閱讀

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

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

    總結(jié)七段數(shù)碼管的分類和工作原理

    七段數(shù)碼管是一種常見的電子顯示設(shè)備,廣泛應(yīng)用于各種電子設(shè)備中,如計(jì)算器、電子鐘、數(shù)字儀表等。 一、七段數(shù)碼管的分類 按顯示方式分類 七段
    的頭像 發(fā)表于 08-28 16:27 ?3547次閱讀

    7段數(shù)碼管共陰共陽如何顯示數(shù)字

    7段數(shù)碼管是一種常見的顯示設(shè)備,用于顯示數(shù)字和部分字母。它由7個(gè)LED發(fā)光二極組成,每個(gè)LED可以獨(dú)立控制,從而實(shí)現(xiàn)
    的頭像 發(fā)表于 08-28 16:19 ?4548次閱讀

    數(shù)碼管驅(qū)動(dòng)芯片引腳功能

    數(shù)碼管驅(qū)動(dòng)芯片是一種用于驅(qū)動(dòng)數(shù)碼管顯示數(shù)字或字符的集成電路。數(shù)碼管驅(qū)動(dòng)芯片的引腳功能是實(shí)現(xiàn)數(shù)碼管
    的頭像 發(fā)表于 08-28 16:08 ?1873次閱讀

    數(shù)碼管驅(qū)動(dòng)芯片原理是什么

    數(shù)碼管驅(qū)動(dòng)芯片是一種廣泛應(yīng)用于數(shù)字顯示領(lǐng)域的電子元件,它能夠?qū)?b class='flag-5'>數(shù)字信號(hào)轉(zhuǎn)換為可視的數(shù)字顯示。 一
    的頭像 發(fā)表于 08-28 16:07 ?1725次閱讀

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

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

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品