亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

簡易單片機(jī)頻率的相關(guān)問題 無法顯示頻率值

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
50黑幣
下面這個(gè)程序我編譯的時(shí)候沒問題,但仿真時(shí)頻率值(仿真結(jié)果在下面)無法顯示出來,希望有哪位大佬能幫我解答一下。
  1. #include <AT89X51.H>
  2. unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};     //P2的掃描位
  3. unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
  4.                                0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};    //數(shù)碼管的字形編碼
  5. unsigned char dispbuf[8]={0,0,0,0,0,0,10,10}; //初始化顯示值
  6. unsigned char temp[8];     //存放顯示的數(shù)據(jù)
  7. unsigned char dispcount;   //顯示計(jì)數(shù)器值
  8. unsigned char T0count;     //T0的計(jì)數(shù)器值
  9. unsigned char timecount;   //計(jì)時(shí)計(jì)數(shù)器值
  10. unsigned int ge,shi,bai,qian,wan,sw,bw,qw;//聲明數(shù)碼管個(gè)位變量、數(shù)碼管十位變量、數(shù)碼管百位變量、數(shù)碼管千位變量...
  11. bit flag;                  //標(biāo)志位
  12. unsigned long x;           //頻率值
  13. //頻率計(jì)算函數(shù)
  14. void HzCal(void)
  15. {
  16.   unsigned char i;
  17.   x=T0count*65536+TH0*256+TL0; //得到T0的16位計(jì)數(shù)器值
  18.   for(i=0;i<8;i++)
  19.   {
  20.     temp[i]=0;
  21.   }
  22.          i=0;
  23.          while(x/10)         //拆分
  24.            {
  25.              temp[i]=x%10;
  26.              x=x/10;
  27.              i++;
  28.            }
  29.          temp[i]=x;
  30.          for(i=0;i<6;i++)    //換算為顯示數(shù)據(jù)
  31.            {
  32.              dispbuf[i]=temp[i];
  33.            }

  34.          T0count=0;
  35. }
  36. void main(void)
  37. {

  38.   TMOD=0x15;              //設(shè)置定時(shí)器工作方式
  39.   TH0=0;
  40.   TL0=0;
  41.   TH1=(65536-1000)/256;
  42.   TL1=(65536-1000)%256;       //初始化T1
  43.   TR1=1;
  44.   TR0=1;
  45.   ET0=1;
  46.   ET1=1;
  47.   EA=1;                     //開中斷

  48.   while(1)
  49.    {
  50.      if(flag==1)
  51.        {
  52.          flag=0;
  53.          HzCal();   //頻率計(jì)算函數(shù)
  54.          TH0=0;
  55.          TL0=0;
  56.          TR0=0;                  
  57.        }
  58.     if(timecount>=1000)//判斷定時(shí)器1中斷次數(shù)變量是否大于等于1000,即1s。
  59.    {
  60.      TR0=1;
  61.      timecount=0;//定時(shí)器1中斷次數(shù)變量置0
  62.      flag=1;//數(shù)碼管初始化標(biāo)志位變量置1
  63.      ge=dispcode[dispbuf[0]];//數(shù)碼管個(gè)位變量
  64.      shi=dispcode[dispbuf[1]];//數(shù)碼管十位變量
  65.      bai=dispcode[dispbuf[2]];//數(shù)碼管百位變量
  66.      qian=dispcode[dispbuf[3]];//數(shù)碼管千位變量
  67.      wan=dispcode[dispbuf[4]];
  68.          sw=dispcode[dispbuf[5]];
  69.          bw=dispcode[dispbuf[6]];
  70.          qw=dispcode[dispbuf[7]];
  71.     }
  72.          if(timecount<1000&&flag==0)//判斷定時(shí)器1中斷次數(shù)變量是否小于1000和數(shù)碼管初始化標(biāo)志位變量是否等于0
  73.     {
  74.      ge=dispcode[0];//數(shù)碼管個(gè)位變量為0
  75.      shi=dispcode[0];//數(shù)碼管十位變量為0
  76.      bai=dispcode[0];//數(shù)碼管百位變量為0
  77.      qian=dispcode[0];//數(shù)碼管千位變量為0
  78.          wan=dispcode[0];
  79.          sw=dispcode[0];
  80.          bw=dispcode[0];
  81.          qw=dispcode[0];
  82.     }        
  83.    }

  84. }
  85. //定時(shí)器T0中斷服務(wù)子函數(shù)
  86. void t0(void) interrupt 1 using 0
  87. {
  88.   T0count++;
  89. }
  90. //定時(shí)器T1中斷服務(wù)子函數(shù)  
  91. void t1(void) interrupt 3 using 0
  92. {
  93.   unsigned char i;
  94.   TH1=(65536-1000)/256;
  95.   TL1=(65536-1000)%256;          //初始化T1預(yù)裝值,1ms定時(shí)
  96.   timecount++;                   //掃描
  97.   P2=0xff;
  98.    switch(i)//讓8位數(shù)碼管以1ms間隔輪流刷新
  99. {

  100.     case 0:  
  101.            P0=ge;//數(shù)碼管個(gè)位數(shù)值顯示
  102.            P2=0xfe;//數(shù)碼管個(gè)位顯示位
  103.            i++;//選位變量先賦值再加加
  104.            break;
  105.     case 1:
  106.            P0=shi;//數(shù)碼管十位數(shù)值顯示
  107.            P2=0xfd;//數(shù)碼管十位顯示位   
  108.            i++;//選位變量先賦值再加加
  109.            break;
  110.     case 2:
  111.            P0=bai;//數(shù)碼管百位數(shù)值顯示
  112.            P2=0xfb;//數(shù)碼管百位顯示位
  113.            i++;//選位變量先賦值再加加
  114.            break;
  115.     case 3:
  116.            P0=qian;//數(shù)碼管千位數(shù)值顯示
  117.            P2=0xf7;//數(shù)碼管千位變量顯示位
  118.            i++;//選位變量置0
  119.            break;
  120.     case 4:
  121.            P0=wan;//數(shù)碼管千位數(shù)值顯示
  122.            P2=0xef;//數(shù)碼管千位變量顯示位
  123.            i++;//選位變量置0
  124.            break;
  125.     case 5:
  126.            P0=sw;//數(shù)碼管千位數(shù)值顯示
  127.            P2=0xdf;//數(shù)碼管千位變量顯示位
  128.            i++;//選位變量置0
  129.            break;
  130.     case 6:
  131.            P0=bw;//數(shù)碼管千位數(shù)值顯示
  132.            P2=0xdf;//數(shù)碼管千位變量顯示位
  133.            i++;//選位變量置0
  134.            break;
  135.     case 7:
  136.            P0=qw;//數(shù)碼管千位數(shù)值顯示
  137.            P2=0xdf;//數(shù)碼管千位變量顯示位
  138.            i=0;//選位變量置0
  139.            break;

  140.     default : break;//自定義
  141. }
  142. }
復(fù)制代碼


仿真結(jié)果.jpg (550.53 KB, 下載次數(shù): 79)

仿真結(jié)果.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:332444 發(fā)表于 2020-6-27 10:34 | 只看該作者
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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