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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

proteus仿真數(shù)字頻率計存在的問題

[復(fù)制鏈接]
ID:523448 發(fā)表于 2019-4-28 10:31 | 顯示全部樓層 |閱讀模式
仿真數(shù)字頻率計時1khz以下正常顯示,超過1khz數(shù)碼管顯示就出現(xiàn)閃爍。這是怎么回事?
#include <reg51.H> // 包含頭文件
unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定義數(shù)碼管位選碼
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
                               0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};        //定義數(shù)碼管段碼
unsigned char dispbuf[8]={0,0,0,0,0,0,0,0};//顯示數(shù)碼組,因為只用了六個數(shù)碼管,所以將最后兩位賦值為10,對應(yīng)的段碼為0x00,表示不亮。
unsigned char temp[8];//暫存數(shù)組
unsigned char dispcount;//掃描位的記錄
unsigned char T0count;//計數(shù)次數(shù)
unsigned char timecount;//定時器5ms中斷的次數(shù)
bit flag; //定義標(biāo)志位
unsigned long x; //定義變量用來存放頻率值

void main(void)        //主函數(shù)
{
  unsigned char i;//定義變量

  TMOD=0x15; //設(shè)置定時工作模式        T1為定時1模式,T0為計數(shù)器1模式
  TH0=0; //        計數(shù)器高8位賦值為0
  TL0=0;// 計數(shù)器低8位賦值為0  所以最大可以輸入65535
  TH1=(65536-5000)/256;// 定時器1高8位賦初值
  TL1=(65536-5000)%256;// 定時器1低8位賦初值
  TR1=1;//啟動定時器1
  TR0=1;// 啟動計數(shù)器0
  ET0=1;//開啟定時器0中斷
  ET1=1;// 開啟定時器1中斷
  EA=1;//開啟總中斷

  while(1)//  大循環(huán)
   {
     if(flag==1)// 如果定時時間到1s
       {
         flag=0;// 標(biāo)志位清零
         x=T0count*65536+TH0*256+TL0;//獲得整數(shù)的頻率值,T0count計數(shù)器在1s內(nèi)溢出的次數(shù),每溢出一次就
                                                                         //就計數(shù)了T0count*65536次,再加上當(dāng)前計數(shù)寄存器的值即為實際計數(shù)總數(shù)
         for(i=0;i<8;i++) //
           {
             temp[i]=0;        // 暫存緩沖區(qū)清零
           }
         i=0; //
         while(x/10) //將頻率值的每一位分離出來,存進temp數(shù)組,例如63239分離為6、3、2、3、9
           {
             temp[i]=x%10;//
             x=x/10;//
             i++;//
           }
         temp[i]=x;//
         for(i=0;i<6;i++)//
           {
             dispbuf[i]=temp[i];//將暫存數(shù)組的數(shù)據(jù)賦給顯示數(shù)組
           }
         timecount=0;//計時清零
         T0count=0;//計數(shù)清零
         TH0=0;// 計數(shù)器初值清零
         TL0=0;// 計數(shù)器初值清零
         TR0=1;// 重啟計數(shù)器
       }
   }
}

void t0(void) interrupt 1 using 0 //  計數(shù)器中斷
{
  T0count++;//
}

void t1(void) interrupt 3 using 0 // 定時器中斷4ms中斷一次
{
  TH1=(65536-5000)/256;//         定時器高8位賦初值
  TL1=(65536-5000)%256;        //         定時器低8位賦初值
  timecount++;//                         時間變量++
  if(timecount==200)//        判斷中斷250次為1s
    {
      TR0=0;//        關(guān)閉計數(shù)器0
      timecount=0;//清零重新計數(shù)中斷次數(shù)
      flag=1;// 標(biāo)志位置1通知主程序1s已到
    }
        //因為放在該中斷程序中,故4秒掃描一次數(shù)碼管
P2=0xff;//先關(guān)閉所有數(shù)碼管 //
// P2=dispbit[dispcount];//送入位碼
P0=dispcode[dispbuf[dispcount]];// 先確定相應(yīng)數(shù)碼管的段碼,送入段碼
P2=dispbit[dispcount];//送入位碼
  dispcount++;// 下一次應(yīng)該掃描下一位數(shù)碼管所以要加一
  if(dispcount==8)//因為只有8只數(shù)碼管,判斷是否送入8次。
    {
      dispcount=0;// 使變量清零
    }
}

QQ圖片20190428102915.png
QQ圖片20190428103032.png
回復(fù)

使用道具 舉報

ID:202748 發(fā)表于 2019-4-28 15:34 | 顯示全部樓層
Proteus仿真時,可能是因為電腦配置的原因,頻率一高就會遲滯。實物不會有這問題。
回復(fù)

使用道具 舉報

ID:523448 發(fā)表于 2019-4-28 17:04 | 顯示全部樓層
ysandi 發(fā)表于 2019-4-28 15:34
Proteus仿真時,可能是因為電腦配置的原因,頻率一高就會遲滯。實物不會有這問題。

謝謝

回復(fù)

使用道具 舉報

ID:462827 發(fā)表于 2019-4-29 00:36 | 顯示全部樓層
你把仿真圖文件也發(fā)上來看看
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线成人 | 小视频你懂得 | 成人免费在线播放视频 | 国产高清区 | 久久久久久九九九九 | 久久大陆 | 日本h片在线观看 | 性福视频在线观看 | 亚洲一区不卡在线 | 亚洲精品久久久一区二区三区 | 中文字幕在线视频一区二区三区 | 成人精品免费视频 | 国产区免费视频 | 午夜精品久久久久久久星辰影院 | 无码日韩精品一区二区免费 | 在线观看亚洲 | 久久最新精品 | 日本一本在线 | 国产精品视屏 | 91精品国产综合久久久动漫日韩 | 中文字幕在线一区二区三区 | 69热视频在线观看 | 91在线视频播放 | 精品国产亚洲一区二区三区大结局 | 精品色| 国产精品日韩 | 国产精品一区二区三 | 一级毛片大全免费播放 | 国产日产精品一区二区三区四区 | 尤物在线精品视频 | 伊人狠狠| 国产精品日韩欧美一区二区三区 | 国产一级视屏 | 欧美成人激情 | 亚洲精品乱码久久久久久久久 | 91社区在线高清 | 97影院2| 亚洲网在线 | 丝袜毛片| 亚州成人 | 天天玩天天干天天操 |