久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1360|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)按鍵控制數(shù)碼管程序問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1055060 發(fā)表于 2022-12-1 17:01 來(lái)自手機(jī) | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
51單片機(jī)普中開發(fā)版 這個(gè)是按鍵p3_0控制數(shù)碼管左邊顯示20-50右邊00-50同時(shí)顯示,怎么樣再加一個(gè)按鍵p3_1控制左邊的數(shù)碼管顯示20-50讓他們分開顯示

單片機(jī)源程序如下:
#include <REGX52.H>
#include "Delay.h"

unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0x00};

void Nixie(unsigned char Location,Number)
{
        switch(Location)
        {
                case 1:P2_4=1;P2_3=1;P2_2=1;break;
                 case 2:P2_4=1;P2_3=1;P2_2=0;break;
                 case 3:P2_4=1;P2_3=0;P2_2=1;break;
                 case 4:P2_4=1;P2_3=0;P2_2=0;break;
                 case 5:P2_4=0;P2_3=1;P2_2=1;break;
                 case 6:P2_4=0;P2_3=1;P2_2=0;break;
                 case 7:P2_4=0;P2_3=0;P2_2=1;break;
                 case 8:P2_4=0;P2_3=0;P2_2=0;break;
                                       
         }
        P0=NixieTable[Number];
}

void Timer0Init(void)                //1毫秒@11.0592MHz
{

        TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
        TMOD |= 0x01;                //設(shè)置定時(shí)器模式
        TL0 = 0x66;                //設(shè)置定時(shí)初值
        TH0 = 0xFC;                //設(shè)置定時(shí)初值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
        ET0=1;
        EA=1;
        PT0=0;
}

unsigned char num=0,ber=20;

void main()
{        
        while(1){        if(P3_0==0)break;        }                     
        Timer0Init();        
        while(1)
        {                 
               
                Nixie(5, num/1000);
                 Delay(1);
                 Nixie(5, 10);
                Nixie(6, num/100);
                 Delay(1);
                 Nixie(6, 10);
                 Nixie(7, num/10);
                 Delay(1);
                 Nixie(7, 10);
                 Nixie(8, num%10);                 
                 Delay(1);
                 Nixie(8, 10);
                 break;
                Nixie(1,ber/1000);
                 Delay(1);
                 Nixie(1, 10);
                Nixie(2, ber/100);
                 Delay(1);
                 Nixie(2, 10);
                 Nixie(3, ber/10);
                 Delay(1);
                 Nixie(3, 10);
                 Nixie(4, ber%10);                 
                 Delay(1);
                 Nixie(4, 10);

        }
        }

unsigned char KeyNum;
void Timer0_Routine() interrupt 1
{        
        static unsigned int T0Count        ;
        TL0 = 0x66;                //設(shè)置定時(shí)初值
        TH0 = 0xFC;                //設(shè)置定時(shí)初值        
                                                
        T0Count++;
    if(T0Count>=100)
    {           T0Count=0;
                                 
                if(num<50)        
                {                num ++;        }                        
                else
                 {                 num=0; }
                 if(ber<50)
                {                ber ++;        }                        
                else
                 {                 ber=20; }               
                                 
        }         
                           
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2022-12-2 12:20 | 只看該作者
  1. #include <REGX52.H>
  2. //#include "Delay.h"

  3. unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0x00};
  4. unsigned char data dis_buf[8];
  5. unsigned char num,ber;

  6. void Nixie()
  7. {
  8.         static unsigned char i;
  9.         switch(i)
  10.         {
  11.                 case 0:dis_buf[i]=NixieTable[10];break;
  12.                 case 1:dis_buf[i]=NixieTable[ber/10%10];break;
  13.                 case 2:dis_buf[i]=NixieTable[ber%10];break;
  14.                 case 3:dis_buf[i]=NixieTable[10];break;
  15.                 case 4:dis_buf[i]=NixieTable[10];break;
  16.                 case 5:dis_buf[i]=NixieTable[num/10%10];break;
  17.                 case 6:dis_buf[i]=NixieTable[num%10];break;
  18.                 case 7:dis_buf[i]=NixieTable[10];break;
  19.         }
  20.         P0=0x00;
  21.         P2&=0xe3;
  22.         P2|=i*4;
  23.         P0=dis_buf[i];
  24.         i=++i%8;
  25. }

  26. void Timer0Init(void)                //1毫秒@11.0592MHz
  27. {
  28.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  29.         TMOD |= 0x01;                //設(shè)置定時(shí)器模式
  30.         TL0 = 0x66;                //設(shè)置定時(shí)初值
  31.         TH0 = 0xFC;                //設(shè)置定時(shí)初值
  32.         TF0 = 0;                //清除TF0標(biāo)志
  33.         TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
  34. //        ET0=1;
  35. //        EA=1;
  36. }

  37. unsigned char num=0,ber=20,Count=0;
  38. bit sign;

  39. void main()
  40. {                 
  41.         Timer0Init();        
  42.         while(1)
  43.         {                 
  44.                 if(TF0)
  45.                 {
  46.                         TF0 = 0;
  47.                         TL0 = 0x66;                //設(shè)置定時(shí)初值
  48.                         TH0 = 0xFC;                //設(shè)置定時(shí)初值
  49.                         if(!P3_0||!P3_1)
  50.                         {
  51.                                 if(++Count>=10 && sign==0)
  52.                                 {
  53.                                         sign=1;
  54.                                         if(!P3_0)
  55.                                         {
  56.                                                 if(ber<50)ber ++;
  57.                                                 else        ber=20;
  58.                                         }
  59.                                         if(!P3_1)
  60.                                         {
  61.                                                 if(num<50) num ++;
  62.                                                 else num=0;
  63.                                         }
  64.                                 }
  65.                         }                                               
  66.                         else
  67.                         {
  68.                                 Count=0;
  69.                                 sign=0;
  70.                         }
  71.                         Nixie();
  72.                 }
  73.         }
  74. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费午夜视频在线观看 | 久青草影院 | 91av视频在线 | 一区二区亚洲 | 91最新入口 | 成人在线视频网址 | 九九热这里 | 久久久久国产精品免费免费搜索 | 午夜视频在线免费观看 | 97av视频在线观看 | 全部免费毛片在线播放网站 | 人人人人人爽 | 欧美国产日韩一区二区三区 | 久久伊人亚洲 | 色黄爽 | 91欧美精品成人综合在线观看 | 欧美一区二区在线观看 | 国外成人免费视频 | 天堂一区在线观看 | 亚洲免费视频一区 | 午夜欧美 | 欧美理论片在线 | 午夜免费av | 日韩免费视频 | 国产伦精品一区二区三区高清 | 国产一区二区在线91 | 狠狠色香婷婷久久亚洲精品 | 亚洲视频 欧美视频 | 精品国产欧美一区二区三区不卡 | 激情综合五月 | 激情91| 国产成人艳妇aa视频在线 | 不卡的av电影| 911网站大全在线观看 | 国产精品美女久久久久久免费 | 午夜二区 | 欧美日韩久久精品 | 国产成人精品一区二区三区 | 天天干狠狠干 | 性色av一区 | 一区二区精品电影 |