日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī)實(shí)例 >> 正文

51單片機(jī)數(shù)碼管顯示程序, 共陰數(shù)碼管顯示程序 數(shù)碼管原理(顯示)及編碼(段碼)

作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2023/5/18
#include <reg51.h>
sbit dula=P2^6;
sbit wela=P2^7;
sbit P34=P3^4;
  char Tab [10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};   //共陰極數(shù)碼管0到f的短編碼
unsigned char Dat[4]={0xf7,0xfb,0xfd,0xfe};
    unsigned char Second=0;
unsigned long i,c=0;
void main()
{        
        char t;
    char b[2];
TMOD=0x01;        
    TR0=1;            
    TH0=(65536-46080)/256;
    TL0=(65536-46080)%256;
    ET0=1;                            //允許T0中斷
    EA=1;                       //允許所有中斷
   while(1)
    {
    b[3]=c/1000;     //千
  b[2]=c/100%10;    //百
 b[1]=c/10%10;     //十
  b[0]=c%10;       //個(gè)
for(t=0;t<2;t++){ //t是多少個(gè)數(shù)碼管顯示
        P0=Tab[b[t]];
dula=1;dula=0;
    P0=Dat[t];
    wela=1;wela=0;
for(i=0;i<2;i++);
    P0=0xFF;    
}}}
/*定時(shí)器0中斷服務(wù)子程序*/
void time0() interrupt 1
{
    TH0= (65536-46080)/256;
    TL0= (65536-46080)%256;
        i++;
    if(i==1){
        i=0;
    c++;
    if(c>=20) c=0;        //計(jì)數(shù)到20秒自動(dòng)回0
    }
}

 

數(shù)碼管原理(顯示)及編碼(段碼)

常用的7段數(shù)碼管由發(fā)光二極管(組合)構(gòu)成,如下圖:


不帶小數(shù)點(diǎn)的共陰數(shù)碼管驅(qū)動(dòng) 

分為:共陽(yáng)極和共陰極(如上圖)

如果顯示“0”,共陽(yáng)極為:abcdefg dp ,dp為對(duì)應(yīng)最高位,a為對(duì)應(yīng)最低位,編碼:11000000 ,16進(jìn)制0xC0,共陰極正好相反:00111111,16進(jìn)制0x3f。

以此類推。

共陽(yáng)極數(shù)碼管的0 到f的段編碼:
0xc0,0xf9,0xa4,0xb0,//0~3
0x99,0x92,0x82,0xf8,//4~7
0x80,0x90,0x88,0x83,//8~b
0xc6,0xa1,0x86,0x8e //c~f

共陰極數(shù)碼管0到f的短編碼:
0x3f,0x06,0x5b,0x4f,    //0~3
0x66,0x6d,0x7d,0x07,    //4~7
0x7f,0x6f,0x77,0x7c,    //8~b
0x39,0x5e,0x79,0x71    //c~f

這段代碼是一個(gè)基于單片機(jī)的數(shù)字時(shí)鐘,具體實(shí)現(xiàn)了以下功能:

  1. 通過(guò)四個(gè)共陰數(shù)碼管顯示當(dāng)前時(shí)刻,每秒更新一次;
  2. 使用定時(shí)器0作為計(jì)時(shí)器,每隔50ms產(chǎn)生一次中斷,從而實(shí)現(xiàn)秒表計(jì)時(shí)功能;
  3. 將計(jì)時(shí)結(jié)果(單位為秒)以“xx.xx”形式顯示在第一個(gè)數(shù)碼管上,最多可以計(jì)時(shí)20秒。

下面是對(duì)這段代碼的詳細(xì)分析:

首先,在 main 函數(shù)中,定義了一些變量,包括:

  • Tab:數(shù)字 0~9 在數(shù)碼管上的顯示碼表;
  • Dat:數(shù)碼管控制位模式表;
  • Second:用于存儲(chǔ)當(dāng)前時(shí)間的秒數(shù),初始值為 0;
  • i:用于計(jì)時(shí)的計(jì)數(shù)器,初始值為 0;
  • c:用于秒表計(jì)時(shí)的計(jì)數(shù)器,初始值為 0。

接著,在 main 函數(shù)中,初始化定時(shí)器0,并開啟 T0 中斷和全局中斷使能。

隨后進(jìn)入主循環(huán),其中先通過(guò)將計(jì)數(shù)值 c 格式化為四個(gè)數(shù)字,存儲(chǔ)在數(shù)組 b 中。循環(huán)遍歷數(shù)組 b,依次將每個(gè)數(shù)字通過(guò)選擇相應(yīng)的碼表值和數(shù)碼管控制位模式,發(fā)送給數(shù)碼管進(jìn)行顯示。

在 T0 中斷服務(wù)子程序 time0 中,首先重新加載定時(shí)器初值,然后每隔一定周期執(zhí)行一次計(jì)時(shí)操作:將計(jì)數(shù)值 i 加 1,如果 i 達(dá)到指定閾值(50ms),則將當(dāng)前秒表計(jì)數(shù)值 c 加 1,并判斷是否超過(guò)20秒,如果超過(guò)則將其清零。

需要注意的是,此代碼僅僅是一個(gè)簡(jiǎn)單的實(shí)現(xiàn),還存在一些問(wèn)題。例如,由于使用了延時(shí)函數(shù),這會(huì)影響程序的實(shí)時(shí)性。而且,由于只在主循環(huán)中更新時(shí)鐘顯示,如果程序在處理其他任務(wù)時(shí)比較繁忙,則可能導(dǎo)致時(shí)鐘顯示出現(xiàn)明顯的卡頓或錯(cuò)誤。因此,在實(shí)際應(yīng)用中需要對(duì)代碼進(jìn)行進(jìn)一步的優(yōu)化和改進(jìn)。

Tags:七段數(shù)碼管,51單片機(jī)  
責(zé)任編輯:admin
相關(guān)文章列表
三菱PLC和數(shù)碼管鏈接和控制程序(初學(xué)者珍藏)plc控制數(shù)碼管顯示
七段數(shù)碼管顯示原理研究_數(shù)碼管顯示0~9對(duì)應(yīng)的段碼
西門子PLC控制數(shù)碼管顯示,停車場(chǎng)PLC程序?qū)嵗∑叨尉幋a指令SEG,
51單片機(jī)學(xué)習(xí)筆記直流電機(jī)驅(qū)動(dòng)(PWM)C語(yǔ)言程序
MCU-51單片機(jī)直流電機(jī)驅(qū)動(dòng)(PWM)51單片機(jī)驅(qū)動(dòng)直流電機(jī)
先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
51單片機(jī)和STM32單片機(jī)的結(jié)構(gòu)有什么不同
51單片機(jī)、AVR單片機(jī)和PIC單片機(jī)的IO口操作
LED數(shù)碼管的檢測(cè),LED七段數(shù)碼管檢測(cè)
關(guān)于51單片機(jī)IO引腳的驅(qū)動(dòng)能力與上拉電阻
51單片機(jī)“呼吸燈”程序
51單片機(jī)入門之靜態(tài)數(shù)碼管電路設(shè)計(jì)
單片機(jī)數(shù)碼管顯示原理
AT89C51,51單片機(jī)1602液晶顯示時(shí)鐘程序
4位單片機(jī)數(shù)字鐘 電子鐘制作
51單片機(jī)4位數(shù)碼管電子鐘源程序
AT89C2051電腦機(jī)箱風(fēng)扇智能溫控儀,AT89C2051 Temperature contro
51單片機(jī)溫控風(fēng)扇(含程序+原理圖+仿真+PCB)
51單片機(jī)蜂鳴器播放音樂(lè)代碼
利用單片機(jī)AT89S51與ADC0809設(shè)計(jì)數(shù)字電壓表,Voltmeter
單片機(jī)制作的純正弦波逆變器,12V Pure Sine Wave Inverter
51單片機(jī)00-59秒計(jì)時(shí)器 0-59s Timer
51單片機(jī)按鍵程序中 while(!key)的作用
51系列單片機(jī)尋址方式
認(rèn)識(shí)單片機(jī)引腳【詳解】
用51單片機(jī)設(shè)計(jì)的無(wú)線防盜報(bào)警器技術(shù)
51單片機(jī)匯編模擬串口通信程序
51單片機(jī)雙極型PWM 的軟件實(shí)現(xiàn)
用51單片機(jī)制作的廚房定時(shí)器
51單片機(jī)的液晶顯示溫度計(jì)程序
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁(yè)面
下到頁(yè)底
晶體管查詢