RM新时代网站-首页

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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1882

    瀏覽量

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

    關(guān)注

    0

    文章

    25

    瀏覽量

    2074
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    203

    瀏覽量

    626
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

    實(shí)驗(yàn)運(yùn)行7.1章節(jié)例程時(shí) [CW32數(shù)字電壓電流表軟件進(jìn)階教程-1.電壓電流同時(shí)
    的頭像 發(fā)表于 05-31 15:57 ?489次閱讀

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

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

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

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

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

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

    CW32數(shù)字電壓電流表軟件教程-實(shí)驗(yàn)三:數(shù)碼管顯示數(shù)字

    原理是由多個(gè)發(fā)光的二極共陰極或者共陽極組成的成“8”字形的顯示器件。數(shù)碼管通過不同的組合可用來顯示數(shù)字0~9、字符A ~ F及小數(shù)點(diǎn)“.”
    的頭像 發(fā)表于 05-31 15:21 ?952次閱讀
    <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í)驗(yàn)</b>三:<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>顯示</b><b class='flag-5'>數(shù)字</b>

    CW32數(shù)字電壓電流表軟件教程-實(shí)驗(yàn)一:LED原理與驅(qū)動(dòng)

    2.1.LED燈基礎(chǔ)知識(shí) 2.1.1.LED燈結(jié)構(gòu)組成 LED燈,也稱發(fā)光二極,是一種能夠?qū)㈦娔苻D(zhuǎn)化為可見光的固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光。LED的內(nèi)部是一個(gè)半導(dǎo)體的晶片,晶片的一端
    的頭像 發(fā)表于 05-31 15:09 ?349次閱讀
    <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í)驗(yàn)</b>一:LED原理與驅(qū)動(dòng)

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

    模擬數(shù)字轉(zhuǎn)換器即A/D轉(zhuǎn)換器,或簡稱ADC,通常是指一個(gè)將模擬信號(hào)轉(zhuǎn)變?yōu)?b class='flag-5'>數(shù)字信號(hào)的電子元件。通
    的頭像 發(fā)表于 05-21 10:34 ?1137次閱讀
    <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ù)字

    數(shù)碼管顯示原理是由多個(gè)發(fā)光的二極共陰極或者共陽極組成的成“8”字形的顯示器件。數(shù)碼管通過不同的組合可用來
    的頭像 發(fā)表于 05-14 14:20 ?2.5w次閱讀
    <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><b class='flag-5'>顯示</b><b class='flag-5'>數(shù)字</b>

    【紫光同創(chuàng)盤古PGX-Nano教程】——(盤古PGX-Nano開發(fā)板/PG2L50H_MBG324第五章)數(shù)碼管動(dòng)態(tài)顯示實(shí)驗(yàn)例程

    燈、按鍵、撥碼開關(guān)等。 二:實(shí)驗(yàn)目的 動(dòng)態(tài)控制左邊4位八段數(shù)碼管顯示不同的數(shù)值; 三:實(shí)驗(yàn)要求 4個(gè)
    發(fā)表于 05-08 18:19

    CW32數(shù)字電壓電流表軟件教程(一):LED原理與驅(qū)動(dòng)基礎(chǔ)知識(shí)詳解

    LED 驅(qū)動(dòng)指的是通過穩(wěn)定的電源為 LED 提供合適的電流電壓,使其正常工作點(diǎn)亮。LED 驅(qū)動(dòng)方式主要有恒流和恒壓兩種。
    的頭像 發(fā)表于 05-06 15:33 ?1741次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>(一):LED原理與驅(qū)動(dòng)基礎(chǔ)知識(shí)詳解

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

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

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

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

    【紫光同創(chuàng)盤古PGX-Lite 7K教程】——(盤古PGX-Lite 7K開發(fā)板/PGC7KD-6IMBG256第章)?數(shù)碼管動(dòng)態(tài)顯示實(shí)驗(yàn)例程

    動(dòng)態(tài)控制兩個(gè) 4 位數(shù)碼管顯示不同的數(shù)值; 三:實(shí)驗(yàn)要求 八個(gè)數(shù)碼管顯示不同的
    發(fā)表于 04-24 14:51
    RM新时代网站-首页