在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

CW32數字電壓電流表軟件教程-實驗四:數碼管動態顯示

CW32生態社區 ? 來源:CW32生態社區 ? 作者:CW32生態社區 ? 2024-05-31 15:23 ? 次閱讀

5.1.數碼管動態顯示原理

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

5.2.定時器中斷配置

在配置定時器之前需要注意是否將系統時鐘樹配置完成,定時器利用了高級外設時鐘 PCLK,在之前的時鐘配置中,我們將高級外設時鐘 PCLK的頻率配置成了6MHz,這將影響我們對定時器的預分頻和裝填計數值的配置。

在本次實驗中,我們使用定時器BTIM1進行中斷配置,代碼如下:

#include "BTIM1.h"

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

    BTIM_TimeBaseInitStruct.BTIM_Mode      = BTIM_Mode_TIMER;//將定時器配置為計時模式
    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;//配置定時器連續運行

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

5.3.數碼管動態顯示

在上一節的數碼管顯示數字的數碼管顯示模塊Seg_Dis.c文件中,我們還需要添加三個函數和定義一個數組 Seg_Reg 來完成動態顯示的功能。

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

void Close_Com(void)      //關閉所有數碼管的顯示,防止重影
{
  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;// 百位數
  uint8_t Tens;    // 十位數
  uint8_t Units;   // 個位數

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

  Seg_Reg[0] = Hundreds;       //將個十百位的數字分別存放進數組等待調用  
  Seg_Reg[1] = Tens;
  Seg_Reg[2] = Units;
}

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

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

最后在定時器中斷里不斷調用顯示刷新函數完成數碼管的刷新顯示:

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

5.4.實驗效果

最終的實驗效果如下圖所示,人眼已經看不出閃爍,但實際上數碼管是依次刷新顯示。

圖5-1 數碼管動態顯示效果圖

審核編輯 黃宇

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

    關注

    32

    文章

    1888

    瀏覽量

    92072
  • 電壓電流表
    +關注

    關注

    0

    文章

    25

    瀏覽量

    2156
  • CW32
    +關注

    關注

    1

    文章

    232

    瀏覽量

    1037
收藏 人收藏

    評論

    相關推薦

    8位數碼管怎么不顯示數字

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

    基于CW32F003E4P7的數字電壓電流表產品方案

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

    CW32數字電壓電流表軟件進階教程-3.電壓電流標定

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

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

    實驗運行7.1章節例程時 [CW32數字電壓電流表軟件進階教程-1.電壓電流同時
    的頭像 發表于 05-31 15:57 ?715次閱讀

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

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

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

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

    CW32數字電壓電流表軟件教程-實驗六:串口藍牙發送

    7.1.串口基礎知識 7.1.1.串口介紹 串行接口簡稱串口,也稱串行通信接口或串行通信接口(通常指COM接口),是采用串行通信方式的擴展接口。串行接口 (Serial Interface)是指數據一位一位地順序傳送。其特點是通信線路簡單,只要一對傳輸線就可以實現雙向通信(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用于遠距離通信,但傳送速度較慢。 7.1.2.串口通信參數介紹 波特率:衡量通信速度的參數,它表示每秒鐘傳送的bit的個數。 數
    的頭像 發表于 05-31 15:45 ?501次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-<b class='flag-5'>實驗</b>六:串口藍牙發送

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

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

    CW32數字電壓電流表軟件教程-實驗三:數碼管顯示數字

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

    CW32數字電壓電流表軟件教程-實驗二:按鍵檢測

    3.1.獨立按鍵基礎知識 3.1.1.獨立按鍵結構組成 獨立按鍵實際上是一個非自鎖的輕觸開關,有左右兩個觸點,當按下時左右兩個觸點閉合,當松開時左右兩個觸點斷開。 3.1.2.獨立按鍵控制原理 想要使用外部的按鍵控制單片機有兩種比較常見的方法:IO掃描和外部中斷。對于IO掃描的方式而言,需要單片機以比較高的頻率去不間斷地判斷IO口的輸入電平,隨后根據IO電平來執行后續的邏輯。外部中斷的方式會在章節十二中進行詳細介紹,本章著重介紹IO掃描的
    的頭像 發表于 05-31 15:16 ?1111次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-<b class='flag-5'>實驗</b>二:按鍵檢測

    CW32數字電壓電流表軟件教程-實驗一:LED原理與驅動

    2.1.LED燈基礎知識 2.1.1.LED燈結構組成 LED燈,也稱發光二極,是一種能夠將電能轉化為可見光的固態的半導體器件,它可以直接把電轉化為光。LED的內部是一個半導體的晶片,晶片的一端
    的頭像 發表于 05-31 15:09 ?577次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-<b class='flag-5'>實驗</b>一:LED原理與驅動

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

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

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

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

    【紫光同創盤古PGX-Nano教程】——(盤古PGX-Nano開發板/PG2L50H_MBG324第五章)數碼管動態顯示實驗例程

    燈、按鍵、撥碼開關等。 二:實驗目的 動態控制左邊4位八段數碼管顯示不同的數值; 三:實驗要求 4個
    發表于 05-08 18:19

    CW32數字電壓電流表軟件教程(一):LED原理與驅動基礎知識詳解

    LED 驅動指的是通過穩定的電源為 LED 提供合適的電流電壓,使其正常工作點亮。LED 驅動方式主要有恒流和恒壓兩種。
    的頭像 發表于 05-06 15:33 ?1987次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>(一):LED原理與驅動基礎知識詳解
    主站蜘蛛池模板: 中文字幕一区二区在线观看 | 操伊人| 色综合综合色综合色综合 | 日本一区不卡在线观看 | 久久网站免费观看 | 色婷婷久久免费网站 | 理论毛片| 香港三级理论在线影院 | 亚洲吊丝网 | 高h水果榨汁play男男 | 美女扒开尿囗给男生桶爽 | 日韩毛片网站 | 美国69bj| 日本高清视频wwww色 | 天天夜夜狠狠一区二区三区 | 欧美成人午夜毛片免费影院 | 一级做a爱过程免费视 | 日韩精品午夜 | 午夜视频在线免费播放 | 天堂资源bt | 1024你懂的国产日韩欧美 | 久久精品大全 | 明日花绮罗在线观看 | 欧美 亚洲 一区 | 色香影视| 手机看片日韩高清1024 | 亚洲黄色录像 | 午夜看大片 | 激情欧美在线 | 6080伦理久久精品亚洲 | 1024国产你懂的日韩 | 午夜在线视频观看 | 中文字幕一二三四区2021 | 奇米色婷婷 | 四虎影酷 | 午夜日韩精品 | 色啦啦影院 | 久久久99精品免费观看精品 | 天天插日日插 | 欧美h网 | 欧美黄色高清 |