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

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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)數(shù)字頻率計(jì)單周期實(shí)現(xiàn) 2015電賽F題答案

[復(fù)制鏈接]
ID:380710 發(fā)表于 2018-7-30 09:58 | 顯示全部樓層 |閱讀模式
電路原理圖如下:
E3Q_8EQ]UI7%)CZNL%9LZ9I.png 0.png

單片機(jī)源程序如下:
  1. #include<reg51.h>      
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. //單周期定閘門時(shí)間測(cè)量盡量降低誤差
  5. //后續(xù)待實(shí)現(xiàn):實(shí)現(xiàn)多周期定閘門時(shí)間測(cè)量以降低誤差

  6. static bit end= 0;        //周期開(kāi)始結(jié)束標(biāo)志,為減少中斷服務(wù)工作量定義為全局變量
  7. uchar m=0;         //保存定時(shí)器清零次數(shù)
  8. uchar u=0;
  9. uint xL,xH=0;                //剩余計(jì)數(shù)次數(shù)
  10. unsigned long t0,c;                //分別保存被測(cè)信號(hào)的周期和頻率
  11. uchar a[]={'F',':','w','a','i','t','.','.','.','.','.','H','z'};          //頻率數(shù)據(jù)結(jié)果保存

  12. sbit lcdrw=P1^6;
  13. sbit lcdrs=P1^7;
  14. sbit lcden=P2^4;

  15. void delay(uint s)//延時(shí)1MS
  16. {
  17.   uint r,g;
  18.    for(r=s;r>0;r--)
  19.      for(g=10;g>0;g--); //原值為110,我改為了10,做實(shí)際產(chǎn)品時(shí)可能要改回去
  20. }

  21. /////////////////LCD1602的設(shè)置//////////////////
  22. void write_com(uchar com) // 寫(xiě)指令
  23. {  
  24.    lcdrs=0;                //低電平0時(shí)選擇指令寄存器
  25.    P0=com;
  26.    delay(5);
  27.    lcden=1;                //高電平(1)時(shí)讀取信息
  28.    delay(5);
  29.    lcden=0;                //負(fù)跳變時(shí)執(zhí)行指令
  30. }
  31. void write_data(uchar date) // 寫(xiě)數(shù)據(jù)
  32. {  
  33.    lcdrs=1;                 //高電平1時(shí)選擇數(shù)據(jù)寄存器
  34.    P0=date;
  35.    delay(5);   //高電平(1)時(shí)讀取信息
  36.    lcden=1;
  37.    delay(5);
  38.    lcden=0;           //負(fù)跳變時(shí)執(zhí)行指令
  39. }
  40. void initlcd()//初始化LCD1602
  41. {
  42.   lcdrw=0;        //低電平(0)時(shí)進(jìn)行寫(xiě)操作
  43.   lcden=0;          //負(fù)跳變時(shí)執(zhí)行指令
  44.   write_com(0x38);//顯示模式設(shè)置
  45.   write_com(0x0c); //顯示開(kāi),開(kāi)游標(biāo),不閃爍  
  46.   write_com(0x06); // 字符時(shí)整體不移動(dòng)  
  47. }
  48. ////////////LCD1602設(shè)置///////////////////////

  49. ///////////定時(shí)計(jì)數(shù)器外部中斷設(shè)置//////////////
  50. void CTINT0_init()                 //定時(shí)計(jì)數(shù)器0和外部中斷0初始化
  51. {       
  52.         TMOD = 0x1;             //T0工作在模式1,定時(shí)方式FHP
  53.         TH0=0;                         //定時(shí)計(jì)數(shù)器初值清零
  54.         TL0=0;
  55.         EA=1;                                  //開(kāi)總中斷
  56.         ET0=1;                         //開(kāi)Timer0中斷
  57.         EX0=1;                                  //開(kāi)外部中斷0
  58.         IT0=1;                                  //設(shè)置外部中斷方式為下降沿觸發(fā)
  59. }
  60. ///////////定時(shí)計(jì)數(shù)器外部中斷設(shè)置//////////////

  61. ////////////////中斷服務(wù)函數(shù)//////////////////
  62. void ITC0() interrupt 0   //外部中斷0服務(wù)程序
  63. {       
  64.         if(end)         //FHP被測(cè)信號(hào)一個(gè)周期結(jié)束做三件事情:1、記錄周期相關(guān)數(shù)據(jù);2、定時(shí)計(jì)數(shù)器清零并停止;3、告知下次中斷為周期開(kāi)始
  65.         {
  66.                 u=m;                                  //讀定時(shí)計(jì)數(shù)器0溢出次數(shù)
  67.                 TR0=0;        //停止計(jì)時(shí)器
  68.                 xH=TH0;                  //讀定時(shí)計(jì)數(shù)器0當(dāng)前值
  69.                 xL=TL0;
  70.                 end = 0;                //設(shè)置下次中斷為周期開(kāi)始
  71.         }
  72.         else        //FHP被測(cè)信號(hào)一個(gè)周期開(kāi)始做一件事情:?jiǎn)?dòng)計(jì)時(shí)器
  73.         {
  74.                 TH0=TL0=0;                         //定時(shí)計(jì)數(shù)器初值清零
  75.                 TR0=1;        //啟動(dòng)計(jì)時(shí)器
  76.                 m=0;                                  //溢出次數(shù)清零
  77.                 end = 1;        //                //設(shè)置下次中斷為周期結(jié)束
  78.         }
  79. }
  80. void TIME0() interrupt 1  //定時(shí)計(jì)數(shù)器0溢出中斷服務(wù)程序
  81. {
  82.         m++;                                  //溢出次數(shù)加1
  83. }
  84. ////////////////中斷服務(wù)函數(shù)//////////////////

  85. void main()
  86. {
  87.         uchar i;
  88.         CTINT0_init();                  //定時(shí)計(jì)數(shù)器外部中斷初始化       
  89.         initlcd();                          //液晶顯示初始化       
  90.         while(1)
  91.         {                               
  92.                         t0=u*65536 + xH*256 + xL;                                   //計(jì)算周期
  93.                         c=1000000000/t0;                           //計(jì)算頻率,保存的是頻率擴(kuò)大了1000倍的值
  94.                         //計(jì)算結(jié)果逐位保存,首先是小數(shù)點(diǎn)后三位
  95.                         a[10]=c%10+'0';
  96.                         a[9]=(c/10)%10+'0';
  97.                         a[8]=(c/100)%10+'0';
  98.                         c /= 1000;//下面是整數(shù)部分
  99.                         a[6]=c%10+'0';
  100.                         a[5]=(c/10)%10+'0';
  101.                         a[4]=(c/100)%10+'0';
  102.                         a[3]=(c/1000)%10+'0';
  103.                         a[2]=(c/10000)%10+'0';
  104.                         write_com(0x80);
  105.                         for(i=0;i<=12;i++)
  106.                         {  
  107.                                 write_data(a[i]);
  108.                                 delay(2);                //現(xiàn)在延時(shí)只有0.2ms,實(shí)際做產(chǎn)品時(shí)可能要加長(zhǎng)
  109.                         }         
  110.          }
  111. }
復(fù)制代碼

所有資料51hei提供下載:
數(shù)字頻率計(jì)單周期實(shí)現(xiàn).rar (563.21 KB, 下載次數(shù): 87)
回復(fù)

使用道具 舉報(bào)

ID:1004677 發(fā)表于 2022-2-11 17:46 | 顯示全部樓層
這個(gè)看原理圖就知道不行了啊
回復(fù)

使用道具 舉報(bào)

ID:121859 發(fā)表于 2022-5-10 10:38 | 顯示全部樓層
嗯,測(cè)低頻還是可以的,中高頻就有些吃力了。
回復(fù)

使用道具 舉報(bào)

ID:1012735 發(fā)表于 2022-5-10 16:36 | 顯示全部樓層
簡(jiǎn)單的事搞復(fù)雜了!
回復(fù)

使用道具 舉報(bào)

ID:1117165 發(fā)表于 2024-4-18 14:14 | 顯示全部樓層
這樣連RS  RW  E不會(huì)亮的 直接連
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 手机日韩| 国产精品久久久久久久久久 | 搞黄视频免费看 | 国产精品99精品久久免费 | 国产精品1区2区3区 欧美 中文字幕 | 黄色片网站在线观看 | 日韩欧美中文字幕在线观看 | 久久99成人 | 91久久 | 中文av在线播放 | 日韩视频国产 | 狠狠干狠狠操 | 免费一级欧美在线观看视频 | 伊人一区 | 中文字幕av亚洲精品一部二部 | 狠狠爱一区二区三区 | av一级久久 | 91在线一区二区三区 | 国产三级日本三级 | 亚洲天堂一区二区 | 免费一区二区三区 | 欧美人成在线视频 | 欧美一级大黄 | 人人人人干 | 国产一级毛片精品完整视频版 | 黄色国产在线播放 | 日韩一区二区福利视频 | 国产精品一区在线观看你懂的 | 日本不卡一区 | 国产一区二区影院 | 二区三区视频 | 91啪影院 | 久久成人一区 | 免费人成在线观看网站 | 国产免费拔擦拔擦8x高清 | 久久男人| 亚洲精品久久久久中文字幕欢迎你 | 日本一卡精品视频免费 | 99国内精品久久久久久久 | 丁香五月网久久综合 | 欧美一级二级三级 |