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

QQ登錄

只需一步,快速開始

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

我的單片機(jī)課程設(shè)計(jì)頻率計(jì),含C語言程序、仿真圖和原理圖等

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本設(shè)計(jì)提出了一種基于AT89C51單片機(jī)開發(fā)的數(shù)字頻率計(jì)測(cè)量儀的設(shè)計(jì)。系統(tǒng)以單片機(jī)AT89C51為核心,構(gòu)成了完備的測(cè)量系統(tǒng)?梢詫(duì)信號(hào)進(jìn)行頻率的精確測(cè)量,測(cè)頻在1KHz到100KHz。采用液晶LCD1602顯示被測(cè)信號(hào)的頻率。與傳統(tǒng)的電路系統(tǒng)相比,其有處理速度快、穩(wěn)定性高、性價(jià)比高、硬件結(jié)構(gòu)簡(jiǎn)單的優(yōu)點(diǎn)。
(1)能測(cè)量頻率范圍為10HZ-100KHZ,,要求用液晶顯示器顯示測(cè)量結(jié)果。
(2)被測(cè)信號(hào)可以是正弦波、三角波、方波,幅值300mV-3V。
(3)具有超量程警告(可以是LED燈顯示,也可以用蜂鳴器報(bào)警)。
(4)當(dāng)測(cè)量脈沖信號(hào)時(shí),能顯示其占空比

單片機(jī)課設(shè)頻率計(jì)的仿真圖

程序源碼如下:
  1. #include<reg51.h>      
  2. #include<math.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar m=0;
  6. uchar u;
  7. uint i;
  8. uint x;
  9. uint c;                  //相位數(shù)據(jù)結(jié)果保存
  10. float t0,f;
  11. uint a[]={70,61,48,48,48,48,48,46,48,48,72,90};          //頻率數(shù)據(jù)結(jié)果保存
  12.                 //F,=,0,0,0,0,0,.,0,0,H,Z
  13. sbit lcdrw=P2^1;
  14. sbit lcdrs=P2^0;
  15. sbit lcden=P2^2;
  16. /////////////////LCD1602的設(shè)置//////////////////////////////////
  17. void delay(uint s)//延時(shí)1MS
  18. {
  19.   uint r,g;
  20.    for(r=s;r>0;r--)
  21.      for(g=110;g>0;g--);
  22. }
  23. void write_com(uchar com) // 寫指令
  24. {  
  25.    lcdrs=0;
  26.    P0=com;
  27.    delay(5);
  28.    lcden=1;
  29.    delay(5);
  30.    lcden=0;       
  31. }
  32. void write_data(uchar date) // 寫數(shù)據(jù)
  33. {  
  34.    lcdrs=1;
  35.    P0=date;
  36.    delay(5);
  37.    lcden=1;
  38.    delay(5);
  39.    lcden=0;       
  40. }
  41. void initlcd()//初始化
  42. {
  43.   lcdrw=0;
  44.   lcden=0;
  45. //write_com(0x01);//顯示清屏
  46.   write_com(0x38);//顯示模式設(shè)置
  47.   write_com(0x0c); //顯示開,開游標(biāo),不閃爍  
  48.   write_com(0x06); // 字符時(shí)整體不移動(dòng)  
  49. }
  50. ////////////LCD1602設(shè)置///////////////
  51. ///////////定時(shí)器的設(shè)置//////////////
  52. void CT_init()                 //定時(shí)計(jì)數(shù)器初始化
  53. {        TMOD=0x99;             //GATE=1,T1、T0工作在方式1,定時(shí)方式
  54.         TH0=0;                         //定時(shí)計(jì)數(shù)器初值清零
  55.         TL0=0;
  56. //        TH1=0;
  57. //        TL1=0;
  58.         TR0=1;                         //TR0,TR1置位,此時(shí)定時(shí)計(jì)數(shù)器的啟動(dòng)有INT0,INT1引腳電平?jīng)Q定
  59. //        TR1=1;
  60.         ET0=1;                         //開中斷
  61. //        ET1=1;
  62. }
  63. void ITC0() interrupt 0   //外部中斷0服務(wù)程序
  64. {
  65.         u=m;                                  //讀定時(shí)計(jì)數(shù)器0溢出次數(shù)
  66.         m=0;                                  //溢出次數(shù)清零
  67.         x=TH0*256+TL0;                  //讀定時(shí)計(jì)數(shù)器0當(dāng)前值
  68.         TH0=0;                                  //定時(shí)計(jì)數(shù)器0清零
  69.         TL0=0;
  70. }
  71. void TIME0() interrupt 1  //定時(shí)計(jì)數(shù)器0溢出中斷
  72. {
  73.         m++;                                  //溢出次數(shù)加1
  74. }
  75. ////////////定時(shí)器的設(shè)置//////////////
  76. void main()
  77. {
  78.         initlcd();                          //液晶顯示初始化
  79.     CT_init();                          //定時(shí)計(jì)數(shù)器初始化
  80.         EA=1;                                  //開總中斷
  81.         EX0=1;                                  //允許外部中斷
  82. //        EX1=1;
  83.         IT0=1;                                  //設(shè)置外部中斷方式為下降沿觸發(fā)
  84. //        IT1=1;
  85.         P3=0xff;       
  86.         while(1)
  87. {                                                      
  88.                 t0=u*65536+x;                                   //計(jì)算脈沖時(shí)間寬度
  89.                 f=1000000/(2*t0);                           //計(jì)算頻率
  90.                 c=f*100;                                           //計(jì)算結(jié)果逐位保存
  91.                 a[9]=c%10+48;
  92.                 a[8]=(c/10)%10+48;
  93.                 c=f;
  94.                 a[6]=c%10+48;
  95.                 a[5]=(c/10)%10+48;
  96.                 a[4]=(c/100)%10+48;
  97.                 a[3]=(c/1000)%10+48;
  98.                 a[2]=(c/10000)%10+48;
  99.                 write_com(0x80);
  100.                 for(i=0;i<=11;i++)
  101.                 {  
  102.                         write_data(a[i]);
  103.                         delay(10);
  104.                 }          
  105.          }                       
  106. }  
復(fù)制代碼




課程設(shè)計(jì)的所有資料打包下載:
頻率計(jì).zip (6.57 MB, 下載次數(shù): 289)

評(píng)分

參與人數(shù) 2黑幣 +51 收起 理由
Jason-zhang + 1 贊一個(gè)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂1 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:128162 發(fā)表于 2016-6-26 13:26 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:130427 發(fā)表于 2016-7-27 03:38 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

地板
ID:142169 發(fā)表于 2016-10-21 12:14 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

5#
ID:134531 發(fā)表于 2016-12-5 23:31 | 只看該作者
謝謝樓主分享。。。。。。。!
回復(fù)

使用道具 舉報(bào)

6#
ID:154424 發(fā)表于 2016-12-13 14:18 | 只看該作者

謝謝樓主分享。。。。。。。!
回復(fù)

使用道具 舉報(bào)

7#
ID:198265 發(fā)表于 2017-5-10 11:53 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

8#
ID:194345 發(fā)表于 2017-5-20 10:28 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

9#
ID:204682 發(fā)表于 2017-5-25 13:16 | 只看該作者
謝謝我很需要
回復(fù)

使用道具 舉報(bào)

10#
ID:57831 發(fā)表于 2017-6-6 23:40 | 只看該作者

謝謝分享
回復(fù)

使用道具 舉報(bào)

11#
ID:217743 發(fā)表于 2017-7-18 16:56 | 只看該作者
為什么我下載后仿真 lcd1602不顯示呢
回復(fù)

使用道具 舉報(bào)

12#
ID:253126 發(fā)表于 2017-11-24 17:33 | 只看該作者
沒有protues圖
回復(fù)

使用道具 舉報(bào)

13#
ID:252542 發(fā)表于 2017-11-25 17:18 | 只看該作者
感謝樓主的分享
回復(fù)

使用道具 舉報(bào)

14#
ID:258138 發(fā)表于 2017-12-6 22:05 | 只看該作者
感謝樓主的無私
回復(fù)

使用道具 舉報(bào)

15#
ID:301686 發(fā)表于 2018-4-4 22:01 | 只看該作者
為什么我下了以后仿真沒有顯示啊
回復(fù)

使用道具 舉報(bào)

16#
ID:294934 發(fā)表于 2018-4-10 15:57 | 只看該作者
為什么我下載的頻率不改變
回復(fù)

使用道具 舉報(bào)

17#
ID:325983 發(fā)表于 2018-5-14 22:52 | 只看該作者
頻率壓根不變啊
回復(fù)

使用道具 舉報(bào)

18#
ID:254584 發(fā)表于 2018-5-16 21:12 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

19#
ID:245084 發(fā)表于 2018-6-23 23:19 | 只看該作者
資源沒了?

回復(fù)

使用道具 舉報(bào)

20#
ID:360603 發(fā)表于 2018-6-27 21:30 | 只看該作者
謝謝你。!
回復(fù)

使用道具 舉報(bào)

21#
ID:364499 發(fā)表于 2018-7-4 09:13 | 只看該作者
謝謝版主分享
回復(fù)

使用道具 舉報(bào)

22#
ID:365204 發(fā)表于 2018-7-10 15:15 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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