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

標題: 單片機頻率計代碼 [打印本頁]

作者: 胡胡22131    時間: 2018-12-25 11:28
標題: 單片機頻率計代碼
  1. #include<reg52.h>
  2. bit timeint0,timeint1;
  3. unsigned char dispbuf[4];
  4. unsigned int period;
  5. unsigned int timecount=0;
  6. unsigned int count_1s;
  7. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //7段數碼管代碼表
  8. HEX_TO_BCD(unsigned int n)
  9. {
  10.         unsigned char i; //當顯示的頻率超出范圍,顯示EEEE報錯
  11.         if (n>9361)
  12.         for(i=0;i<4;i++)
  13.         dispbuf[i]=0x0e;
  14.         else

  15.         {
  16.                 dispbuf[3]=n/1000; //取出千位字節
  17.                 dispbuf[2]=(n/100)%10; //取出百位字節
  18.                 dispbuf[1]=(n/10)%10; //取出十位字節
  19.                 dispbuf[0]=n%10; //取出個位字節
  20. }
  21. }
  22. void scandisp(void) //顯示子程序,
  23. //將顯示緩存數組中的BCD碼掃描并顯示在數碼管上
  24. {
  25.         unsigned char posi=0x01;
  26.         unsigned char i,j,temp;
  27.         for(i=0;i<4;i++) //依次選中4個數碼管
  28.         {
  29.         temp=dispbuf[i];//查出字碼
  30.         temp=table[temp];//第三位顯示小數點
  31.         if(i==1)
  32.                 {
  33.                 for(j=0;j<200;j++)
  34.                 {
  35.                 P2=posi;
  36.                 P0=temp|0x80;
  37.                 }
  38.                 }
  39.         else
  40.         {
  41.         for(j=0;j<200;j++)
  42.         {
  43.         P2=posi;
  44.         P0 =temp;
  45.         }
  46.         }
  47. //依次點亮字位
  48. posi<<=1;
  49. }
  50. }
  51. void INIT_TMR1INT(void) //定時器初始化了程序,定義了兩種
  52. {
  53. //定時/計數器0工作定時器方式,定時/計數器1工作在計數器方式
  54.         TMOD=0x51;
  55.         ET1=1;//中斷0開中斷
  56.         ET0=1;//CPU開中斷
  57.         EA=1;
  58.         count_1s=0;//啟動定時/計數器0開始定時
  59.         TR0=1;
  60.         TR1=1;
  61. }
  62. void time0(void) interrupt 1 //定時器0中斷服務程序,系統自動調用,
  63. //每2.5ms執行一次
  64. {
  65.         TH0=0xf6;
  66.         TH1=0x3c;//每次定時是2.5 ms, 40次即0.1s
  67.         if(++count_1s>40)
  68.         {
  69.                 count_1s=0;//每0.1s對計數器1所計數值進行統計
  70.                 timecount=TH1*256+TL1;
  71.                 TH1=0;
  72.                 TL1=0;//精確到小數點后1位,以KHz為單位
  73.                 period=timecount/10;//四舍五入顯示
  74.                 if((timecount%10)>4)
  75.                 period++;
  76.                 timecount=0;
  77.                 HEX_TO_BCD(period);
  78.         }
  79. }
  80. void timer1(void) interrupt 3 //定時器1中斷服務程序,溢出后中斷
  81. {
  82.         TH1=0x00;
  83.         TL1=0x00;
  84. }
  85. void main(void) //主函數
  86. {
  87. //初始化
  88. INIT_TMR1INT();
  89.         while(1)
  90.         {
  91. //顯示子程序
  92.                 scandisp();
  93.         }
  94. }
復制代碼

作者: admin    時間: 2018-12-25 19:21
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩一区二区av | 亚洲一区中文字幕 | 亚洲欧美日韩一区 | 成人免费精品 | 亚洲视频免费观看 | 日本三级日产三级国产三级 | 在线免费看黄 | 色偷偷噜噜噜亚洲男人 | 亚洲一区影院 | 亚洲麻豆 | 九九九视频精品 | 成人在线观 | 久久久国产精品视频 | 91在线视频观看 | 在线中文视频 | 日韩精品一区二区三区中文字幕 | 国产成人精品亚洲日本在线观看 | 午夜小视频在线播放 | jizz中国日本| 久久久久综合 | 久久久99国产精品免费 | 欧美aaaaaaaaaa| 天天操天天摸天天爽 | 精品国产乱码久久久久久1区2区 | 精品日韩一区 | 亚洲精品免费在线观看 | 久久88 | 美女中文字幕视频 | 91黄色片免费看 | 久久久久久久久中文字幕 | 免费成年网站 | 国产精品高潮呻吟久久久久 | 久久久久久国产 | 91国产视频在线观看 | 亚洲欧美综合精品久久成人 | 日韩欧美三级 | 第一区在线观看免费国语入口 | 国产成人精品一区二三区在线观看 | 日韩av免费在线观看 | 欧美日韩不卡 | 观看av |