找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

外部中斷計數(shù),源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:159576 發(fā)表于 2017-1-3 13:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是做的外部中斷計數(shù),用了好幾天終于完成,謝謝指教
  1. #include < reg51.h >
  2. #include <intrins.h>

  3. sbit LS138A=P2^2;  
  4. sbit LS138B=P2^3;
  5. sbit LS138C=P2^4;

  6. unsigned int LedNumVal_1,LedNumVal_2,LedOut[8];

  7. //此表為 LED 的字模, 共陰數(shù)碼管 0-9  -
  8. unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};


  9. void delay(unsigned int i)
  10. {
  11.     char j;
  12.     for(i; i > 0; i--)
  13.         for(j = 200; j > 0; j--);
  14. }


  15. void main(void)
  16. {  unsigned char i;

  17.    P0=0xff;
  18.    P1=0xff;
  19.    P2=0xff;


  20. // IT0=0;       //低電平觸發(fā)
  21.    IT0=1;       //下降沿觸發(fā)
  22.    EX0=1;


  23.    
  24. // IT1=0;       //低電平觸發(fā)
  25.    IT1=1;       //下降沿觸發(fā)
  26.    EX1=1;
  27.    EA=1;


  28.    while(1)
  29.    {   
  30.      LedOut[0]=Disp_Tab[LedNumVal_1%10000/1000];
  31.      LedOut[1]=Disp_Tab[LedNumVal_1%1000/100]|0x80;          //0x7f小數(shù)點
  32.      LedOut[2]=Disp_Tab[LedNumVal_1%100/10];
  33.      LedOut[3]=Disp_Tab[LedNumVal_1%10];

  34.          LedOut[4]=Disp_Tab[LedNumVal_2%10000/1000];
  35.      LedOut[5]=Disp_Tab[LedNumVal_2%1000/100];
  36.      LedOut[6]=Disp_Tab[LedNumVal_2%100/10];
  37.      LedOut[7]=Disp_Tab[LedNumVal_2%10];


  38.          for( i=0; i<8; i++)
  39.          {         P0 = LedOut[i];
  40.                        
  41.           switch(i)                                          
  42.              {            
  43.                         case 0:LS138A=0; LS138B=0; LS138C=0; break;         
  44.                 case 1:LS138A=1; LS138B=0; LS138C=0; break;                    
  45.                 case 2:LS138A=0; LS138B=1; LS138C=0; break;
  46.                 case 3:LS138A=1; LS138B=1; LS138C=0; break;
  47.                         case 4:LS138A=0; LS138B=0; LS138C=1; break;
  48.                         case 5:LS138A=1; LS138B=0; LS138C=1; break;
  49.                         case 6:LS138A=0; LS138B=1; LS138C=1; break;
  50.                         case 7:LS138A=1; LS138B=1; LS138C=1; break;
  51.                        
  52.              }

  53.                 delay(5);
  54.          }


  55.    }

  56. }



  57. /********************************************************
  58. * INT0中斷函數(shù)                                          *
  59. ********************************************************/
  60. void  counter0(void) interrupt 0  using 1
  61. {
  62.   
  63.    EX0=0;  
  64.    LedNumVal_1++;
  65.    EX0=1;
  66. }
  67. /********************************************************
  68. * INT1中斷函數(shù)                                          *
  69. ********************************************************/
  70. void  counter1(void) interrupt 2 using 2
  71. {
  72.    
  73.    EX1=0;
  74.    LedNumVal_2++;
  75.    EX1=1;
  76. }
  77. /********************************************************/


復(fù)制代碼


3 外部中斷計數(shù).rar

17.58 KB, 下載次數(shù): 20, 下載積分: 黑幣 -5

外部中斷計數(shù)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:192361 發(fā)表于 2017-4-22 15:32 | 只看該作者
有沒有計高電平的
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表