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

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

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

基于定時(shí)器的八位數(shù)字顯示器

CHANBAEK ? 來源:嵌入式開發(fā)教程 ? 作者:郭學(xué)提 ? 2023-07-12 11:51 ? 次閱讀

使用定時(shí)器中斷動態(tài)顯示8位數(shù)碼管。基于定時(shí)器的八位數(shù)字顯示器實(shí)驗(yàn)電路如圖所示。

圖片

分析: 要?jiǎng)討B(tài)顯示8位數(shù)碼管,其數(shù)據(jù)的刷新頻率應(yīng)不低于50Hz(0.02S),也就是說每位數(shù)據(jù)的刷新時(shí)間應(yīng)小于2.5ms(0.02S/8)。使用定時(shí)器T1以定時(shí)1ms,當(dāng)定時(shí)器溢出中斷時(shí),刷新數(shù)據(jù)位。其程序在結(jié)構(gòu)上可分為三大部分:主函數(shù)等、定時(shí)器中斷服務(wù)函數(shù)、初始化函數(shù)。下面依次介紹各個(gè)部分。

1.主函數(shù)等

主函數(shù)前面這部分程序主要包括基本的IO口定義、全局變量定義、頭文件包含、函數(shù)聲明等。主函數(shù)首先調(diào)用初始化函數(shù),對各個(gè)資源進(jìn)行初始化操作,然后等待中斷發(fā)生。

#define user_test//測試用
typedef unsigned char   uint8;
typedef unsigned short int  uint16;
uint8 LED_Code_buf[8];
uint8 Disply_temp;
sfr LED_Date=0xa0;//user P2
void main(void)
{
    Int_Initialize();
    Other_Initialize();
    while(1)
    {    
    }
}

2.定時(shí)器T1中斷服務(wù)函數(shù)

定時(shí)器T1中斷服務(wù)函數(shù)主要是刷新顯示數(shù)據(jù)位,根據(jù)條件每次刷新一位數(shù)碼管。

//8位數(shù)碼管動態(tài)顯示
void Timer1 (void) interrupt 3 using 1  
{
    //1ms 刷新1次
    TH1=(65536-1000)/256;
    TL1=(65536-1000)%256;
    switch(Disply_temp++)
    {
        case 0:
              LED_Date=LED_Code_buf[0];//顯示高位
              break;
        case 1:
              LED_Date=LED_Code_buf[1];
              break;
         case 2:
              LED_Date=LED_Code_buf[2];
              break;
         case 3:
              LED_Date=LED_Code_buf[3];
              break;
         case 4:
              LED_Date=LED_Code_buf[4];
              break;
         case 5:LED_Date=LED_Code_buf[5];
              break;
         case 6:
              LED_Date=LED_Code_buf[6];
              break;
         case 7:
              LED_Date=LED_Code_buf[7];//顯示低位
              break;
         default:
              Disply_temp=0;
              break;
    }
}

3.初始化函數(shù)

初始化函數(shù)包括中斷初始化函數(shù)和其它資源的初始化函數(shù)。中斷初始化函數(shù)配置了中斷的觸發(fā)方式,是否允許中斷等操作。其它資源初始化函數(shù)主要配置開機(jī)顯示的字符。

void Int_Initialize(void)
{  
    TMOD|=0x10;//T1計(jì)數(shù)模式,方式1 
    //1ms 刷新1次 12MHz晶振
    TH1=(65536-1000)/256;
    TL1=(65536-1000)%256;
    EA=1;
    ET1=1;
    TR1=1;
}
//其它初始化函數(shù)
void Other_Initialize(void)
{
    //顯示87654321
    LED_Code_buf[0]=0x08;//最高位處理
    LED_Code_buf[1]=0x17;
    LED_Code_buf[2]=0x26;
    LED_Code_buf[3]=0x35;
    LED_Code_buf[4]=0x44;
    LED_Code_buf[5]=0x53;
    LED_Code_buf[6]=0x62;
    LED_Code_buf[7]=0x71;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 顯示器
    +關(guān)注

    關(guān)注

    21

    文章

    4862

    瀏覽量

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

    關(guān)注

    31

    文章

    1869

    瀏覽量

    90518
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    889

    瀏覽量

    41220
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113682
  • IO口
    +關(guān)注

    關(guān)注

    3

    文章

    168

    瀏覽量

    23889
收藏 人收藏

    評論

    相關(guān)推薦

    八位數(shù)碼管循環(huán)滾動

    `八位數(shù)碼管,循環(huán)顯示字符串,高手繞道`
    發(fā)表于 01-19 16:32

    通過RS232發(fā)送兩個(gè)八位數(shù)據(jù)?

    通過RS232發(fā)送兩個(gè)八位數(shù)據(jù),用Verilog實(shí)現(xiàn)?求程序~~
    發(fā)表于 12-31 22:20

    八位數(shù)碼管顯示的計(jì)算(可加減乘除)

    矩陣鍵盤4*4 ,八位數(shù)碼管顯示 搞了幾天 雖然工程簡單,但很開心啊{:12:}
    發(fā)表于 05-02 22:42

    求一個(gè)八位數(shù)碼管顯示的秒表

    求一個(gè)八位數(shù)碼管顯示的秒表,謝謝大神們!
    發(fā)表于 10-17 22:37

    DDR的同組第八位數(shù)據(jù)線能這樣走嗎?

    DDR的同組第八位數(shù)據(jù)線能這樣走嗎?不是同一層
    發(fā)表于 04-15 07:35

    八位數(shù)碼管動態(tài)顯示學(xué)號

    八位數(shù)碼管動態(tài)顯示學(xué)號,這個(gè)程序?qū)崿F(xiàn)的效果是將程序下載到STC板子上后,可以看到8個(gè)數(shù)碼管從左到右分別顯示0到7的八個(gè)數(shù)字,隔一段時(shí)間后顯示
    發(fā)表于 07-14 06:00

    八位數(shù)碼管的相關(guān)資料推薦

    我們在了解八位數(shù)碼管的時(shí)候,提到了定時(shí)器的概念,因?yàn)楹竺婧芏嗲闆r都會涉及到,所以就來認(rèn)真學(xué)習(xí)一下啦基本介紹MCS51系列的單片機(jī)通常有2個(gè)16可編程定時(shí)/計(jì)數(shù)
    發(fā)表于 12-01 08:16

    八位數(shù)碼管動態(tài)掃描八位數(shù)碼管+流水燈的相關(guān)資料分享

    八位數(shù)碼管+流水燈八位數(shù)碼管滾動顯示可變亮度的數(shù)碼管顯示八位數(shù)碼管動態(tài)掃描其實(shí)驗(yàn)現(xiàn)象為:從左到右8個(gè)數(shù)碼管分別
    發(fā)表于 12-03 06:55

    如何去實(shí)現(xiàn)八位數(shù)碼管的靜態(tài)與動態(tài)顯示代碼呢

    八位數(shù)碼管的原理是什么?如何去實(shí)現(xiàn)八位數(shù)碼管的靜態(tài)與動態(tài)顯示代碼呢?
    發(fā)表于 02-23 07:35

    如何去實(shí)現(xiàn)八位數(shù)碼管的動態(tài)掃描呢

    八位數(shù)碼管的原理是什么?如何去實(shí)現(xiàn)八位數(shù)碼管的動態(tài)掃描呢?
    發(fā)表于 02-23 07:50

    如何利用單片機(jī)去實(shí)現(xiàn)C51計(jì)數(shù)和八位數(shù)碼管顯示設(shè)計(jì)呢

    如何利用單片機(jī)去實(shí)現(xiàn)C51計(jì)數(shù)和八位數(shù)碼管顯示設(shè)計(jì)呢?
    發(fā)表于 02-23 07:22

    CH583八位數(shù)據(jù)收發(fā)沒問題的,超過八位就丟了怎么解決?

    八位數(shù)據(jù)收發(fā)沒問題的,超過八位就丟了
    發(fā)表于 09-20 07:14

    八位數(shù)字密碼鎖資料

    八位數(shù)字密碼鎖資料,很好設(shè)計(jì)資料,快來學(xué)習(xí)吧。
    發(fā)表于 05-09 17:10 ?0次下載

    使用AT89C51制作八位數(shù)字頻率計(jì)的程序及注釋免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用AT89C51制作八位數(shù)字頻率計(jì)的程序及注釋免費(fèi)下載。
    發(fā)表于 03-25 11:36 ?17次下載

    單片機(jī)之基礎(chǔ)編程 八位數(shù)碼管(三)

    八位數(shù)碼管+流水燈八位數(shù)碼管滾動顯示可變亮度的數(shù)碼管顯示八位數(shù)碼管動態(tài)掃描其實(shí)驗(yàn)現(xiàn)象為:從左到右8個(gè)數(shù)碼管分別
    發(fā)表于 11-23 17:51 ?24次下載
    單片機(jī)之基礎(chǔ)編程 <b class='flag-5'>八位數(shù)</b>碼管(三)