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

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

QQ登錄

只需一步,快速開始

搜索
查看: 1887|回復(fù): 4
收起左側(cè)

單片機(jī)數(shù)碼管外部中斷動(dòng)態(tài)掃描程序,亮度不一,按鍵也又有時(shí)靈有時(shí)不靈

[復(fù)制鏈接]
ID:1001733 發(fā)表于 2022-4-22 10:26 | 顯示全部樓層 |閱讀模式
數(shù)碼管動(dòng)態(tài)掃描,仿真上可以運(yùn)行,實(shí)物上就亮度不一,按鍵也又有時(shí)靈有時(shí)不靈
51單片機(jī),型號(hào)是89C52,感謝大家,查了好多資料也看不明白,可能跟本人智商有關(guān)嘿嘿
可能消隱沒消好,我也搞不明白

單片機(jī)源程序如下:
#include <REGX52.H>//頭文件
#include "Delay.h"
int duan[]={
                0xC0,  //"0"
                0xF9,  //"1"
                0xA4,  //"2"
                0xB0,  //"3"
                0x99,  //"4"
                0x92,  //"5"
                0x82,  //"6"
                0xF8,  //"7"
                0x80,  //"8"
                0x90,  };  //段選
int wei[]={0x08,0x04,0x02,0x01};
int number=1000;//初始值
char qian,bai,shi,ge;

void INT0_inti()//外部中斷初始化
{
    EA=1;
    IT0=1;
    EX0=1;
}
void INT2_inti()//外部中斷初始化
{
    EA=1;
    IT1=1;
    EX1=1;
}
void jisuan()//計(jì)算子程序
{
    qian=number/1000;
    bai=number%1000/100;
    shi=number%1000%100/10;
    ge=number%1000%100%10;

    P2=0x01;
    P0=duan[qian];
    Delay(5);
  P2=0x00;

    P2=0x02;
    P0=duan[bai];
    Delay(5);
    P2=0x00;

    P2=0x04;
    P0=duan[shi];
    Delay(5);
    P2=0x00;

    P2=0x08;
    P0=duan[ge];
    Delay(5);
    P2=0x00;
}

void main()
{
      INT0_inti();//中斷初始化
      INT2_inti();//中斷初始化

      P3_4=0;//鍵盤是矩陣的,所以給了3-4低電位,用的是P3-2,P3-3
        while(1)
        {

                jisuan();//數(shù)碼管
        }                    



}
void IWT0_ISR() interrupt 0//進(jìn)入中斷
{
    number=number+1;
    if(number==10000)
        number=0;
    if(number==-1)
        number=9999;
}
void IWT2_ISR() interrupt 2//進(jìn)入中斷
{
    number=number-1;
    if(number==10000)
        number=0;
    if(number==-1)
        number=9999;
}
回復(fù)

使用道具 舉報(bào)

ID:301191 發(fā)表于 2022-4-22 19:55 | 顯示全部樓層
頂一下
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2022-4-22 21:56 | 顯示全部樓層
不要輕易使用外部中斷做按鍵輸入這種簡(jiǎn)單任務(wù),既不易消抖,也占用有限資源。數(shù)碼管亮度不一排除硬件因素后多為消隱不良和動(dòng)態(tài)掃描周期不均衡。給你改了,你試試。
  1. #include <REGX52.H>//頭文件
  2. //#include "Delay.h"

  3. //unsigned char sec_s=0,min_s=0;//秒、分設(shè)置變量
  4. //void Cnt10ms=0;       //中斷計(jì)時(shí)變量
  5. unsigned char code duan[]={
  6.                 0xC0,  //"0"
  7.                 0xF9,  //"1"
  8.                 0xA4,  //"2"
  9.                 0xB0,  //"3"
  10.                 0x99,  //"4"
  11.                 0x92,  //"5"
  12.                 0x82,  //"6"
  13.                 0xF8,  //"7"
  14.                 0x80,  //"8"
  15.                 0x90,  };  //段選
  16. unsigned char code wei[]={0x01,0x02,0x04,0x08};
  17. unsigned char cache[4];
  18. unsigned int number=1000;//初始值
  19. //unsigned char qian,bai,shi,ge;
  20. unsigned char count=0;
  21. bit sign=0;
  22. unsigned char num=0;

  23. void Delay(unsigned int t)
  24. {
  25.         unsigned int i,j;
  26.         for(i=t;i>0;i--)
  27.                 for(j=120;j>0;j--);
  28. }
  29. /*
  30. void INT0_inti()//外部中斷初始化
  31. {
  32.         EA=1;
  33.         IT0=1;
  34.         EX0=1;
  35. }
  36. void INT2_inti()//外部中斷初始化
  37. {
  38.     EA=1;
  39.     IT1=1;
  40.     EX1=1;
  41. }*/
  42. void jisuan()//計(jì)算子程序
  43. {//分解數(shù)據(jù),保存入緩存
  44.         cache[0]=duan[number/1000%10];
  45.         cache[1]=duan[number/100%10];
  46.         cache[2]=duan[number/10%10];
  47.         cache[3]=duan[number%10];
  48.        
  49.         P2=0x00;//消隱
  50.         P0=cache[num];//送段碼
  51.         P2=wei[num];//送位碼
  52.         Delay(1);//延時(shí)
  53.         num=++num%4;//循環(huán)計(jì)數(shù)
  54. }

  55. void main()
  56. {

  57. //        INT0_inti();//中斷初始化
  58. //        INT2_inti();//中斷初始化       
  59.         P3_4=0;//鍵盤是矩陣的,所以給了3-4低電位,用的是P3-2,P3-3
  60.         while(1)
  61.         {
  62.                 if(!P3_2||!P3_3)
  63.                 {
  64.                         if(++count>=10 && sign==0)//消抖
  65.                         {
  66.                                 sign=1;
  67.                                 if(!P3_2)
  68.                                 {
  69.                                         if(number<9999)number++;
  70.                                 }
  71.                                 if(!P3_3)
  72.                                 {
  73.                                         if(number>0)number--;
  74.                                 }
  75.                         }
  76.                 }
  77.                 else
  78.                 {
  79.                         count=0;
  80.                         sign=0;
  81.                 }

  82.                 jisuan();//數(shù)碼管
  83.         }                    
  84. }
  85. /*
  86. void IWT0_ISR() interrupt 0//進(jìn)入中斷
  87. {
  88.     number=number+1;
  89.     if(number==10000)
  90.         number=0;
  91.     if(number==-1)
  92.         number=9999;
  93. }
  94. void IWT2_ISR() interrupt 2//進(jìn)入中斷
  95. {
  96.     number=number-1;
  97.     if(number==10000)
  98.         number=0;
  99.     if(number==-1)
  100.         number=9999;
  101. }*/
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:1001733 發(fā)表于 2022-4-23 16:33 | 顯示全部樓層
wulin 發(fā)表于 2022-4-22 21:56
不要輕易使用外部中斷做按鍵輸入這種簡(jiǎn)單任務(wù),既不易消抖,也占用有限資源。數(shù)碼管亮度不一排除硬件因素后 ...

真的牛
回復(fù)

使用道具 舉報(bào)

ID:1040201 發(fā)表于 2022-8-17 10:42 | 顯示全部樓層
一個(gè)完整的代碼,是不是要有主循環(huán)函數(shù)?根據(jù)標(biāo)志位在主循環(huán)里面處理,我之 前自己做了個(gè)小車,紅外遙控也是反應(yīng)遲鈍,時(shí)靈時(shí)不靈,一直有這個(gè)困惑。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久尤物免费一区二区三区 | 午夜小电影 | 国产福利在线 | 国产特级毛片aaaaaa | 性色网站 | 精品婷婷 | 国产成人精品久久二区二区91 | 亚洲视频在线观看 | 日韩一二区在线观看 | 精品久久久久久久久久久久 | 黄色片免费在线观看 | 欧美激情在线精品一区二区三区 | 国产一区二区三区在线 | 精品综合久久久 | a免费观看 | 欧美国产日韩在线观看 | 国产精品久久久久久久久久久久 | 视频1区2区 | 亚洲一区二区精品 | 五月天天丁香婷婷在线中 | 国产精品资源在线 | 日韩伦理一区二区 | 国产精品免费观看 | 欧美1区2区 | 亚洲欧美国产毛片在线 | 亚洲精品中文字幕在线观看 | 福利网站在线观看 | 色播99 | 亚洲欧美综合精品久久成人 | 成人免费视频网站在线观看 | 91看片视频 | 精品国产aⅴ | 国产精品久久av | 国产精品a久久久久 | 精品国产91乱码一区二区三区 | 日韩成人精品在线观看 | 久久99深爱久久99精品 | 成人在线免费视频 | 欧美v在线观看 | 一级毛片中国 | 免费成人高清 |