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

QQ登錄

只需一步,快速開始

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

關(guān)于C51單片機(jī)頻率計(jì)的程序問題

[復(fù)制鏈接]
ID:203141 發(fā)表于 2017-5-21 14:50 | 顯示全部樓層 |閱讀模式
總是報(bào)錯(cuò),也不知道哪里出錯(cuò)。
  • #include<reg51.h>
  • #include<math.h>
  • #define uint unsigned int
  • #define uchar unsigned char
  • uchar m=0;
  • uchar u;
  • uint i;
  • uint x;
  • uint c;                  //相位數(shù)據(jù)結(jié)果保存
  • float t0,f;
  • uint a[]={70,61,48,48,48,48,48,46,48,48,72,90};          //頻率數(shù)據(jù)結(jié)果保存
  •                 //F,=,0,0,0,0,0,.,0,0,H,Z
  • sbit lcdrw=P2^1;
  • sbit lcdrs=P2^0;
  • sbit lcden=P2^2;
  • /////////////////LCD1602的設(shè)置//////////////////////////////////
  • void delay(uint s)//延時(shí)1MS
  • {
  •   uint r,g;
  •    for(r=s;r>0;r--)
  •      for(g=110;g>0;g--);
  • }
  • void write_com(uchar com) // 寫指令
  • {
  •    lcdrs=0;
  •    P0=com;
  •    delay(5);
  •    lcden=1;
  •    delay(5);
  •    lcden=0;
  • }
  • void write_data(uchar date) // 寫數(shù)據(jù)
  • {
  •    lcdrs=1;
  •    P0=date;
  •    delay(5);
  •    lcden=1;
  •    delay(5);
  •    lcden=0;
  • }
  • void initlcd()//初始化
  • {
  •   lcdrw=0;
  •   lcden=0;
  • //write_com(0x01);//顯示清屏
  •   write_com(0x38);//顯示模式設(shè)置
  •   write_com(0x0c); //顯示開,開游標(biāo),不閃爍
  •   write_com(0x06); // 字符時(shí)整體不移動(dòng)
  • }
  • ////////////LCD1602設(shè)置///////////////
  • ///////////定時(shí)器的設(shè)置//////////////
  • void CT_init()                 //定時(shí)計(jì)數(shù)器初始化
  • {        TMOD=0x99;             //GATE=1,T1、T0工作在方式1,定時(shí)方式
  •         TH0=0;                         //定時(shí)計(jì)數(shù)器初值清零
  •         TL0=0;
  • //        TH1=0;
  • //        TL1=0;
  •         TR0=1;                         //TR0,TR1置位,此時(shí)定時(shí)計(jì)數(shù)器的啟動(dòng)有INT0,INT1引腳電平?jīng)Q定
  • //        TR1=1;
  •         ET0=1;                         //開中斷
  • //        ET1=1;
  • }
  • void ITC0() interrupt 0   //外部中斷0服務(wù)程序
  • {
  •         u=m;                                  //讀定時(shí)計(jì)數(shù)器0溢出次數(shù)
  •         m=0;                                  //溢出次數(shù)清零
  •         x=TH0*256+TL0;                  //讀定時(shí)計(jì)數(shù)器0當(dāng)前值
  •         TH0=0;                                  //定時(shí)計(jì)數(shù)器0清零
  •         TL0=0;
  • }
  • void TIME0() interrupt 1  //定時(shí)計(jì)數(shù)器0溢出中斷
  • {
  •         m++;                                  //溢出次數(shù)加1
  • }
  • ////////////定時(shí)器的設(shè)置//////////////
  • void main()
  • {
  •         initlcd();                          //液晶顯示初始化
  •     CT_init();                          //定時(shí)計(jì)數(shù)器初始化
  •         EA=1;                                  //開總中斷
  •         EX0=1;                                  //允許外部中斷
  • //        EX1=1;
  •         IT0=1;                                  //設(shè)置外部中斷方式為下降沿觸發(fā)
  • //        IT1=1;
  •         P3=0xff;
  •         while(1)
  • {
  •                 t0=u*65536+x;                                   //計(jì)算脈沖時(shí)間寬度
  •                 f=1000000/(2*t0);                           //計(jì)算頻率
  •                 c=f*100;                                           //計(jì)算結(jié)果逐位保存
  •                 a[9]=c%10+48;
  •                 a[8]=(c/10)%10+48;
  •                 c=f;
  •                 a[6]=c%10+48;
  •                 a[5]=(c/10)%10+48;
  •                 a[4]=(c/100)%10+48;
  •                 a[3]=(c/1000)%10+48;
  •                 a[2]=(c/10000)%10+48;
  •                 write_com(0x80);
  •                 for(i=0;i<=11;i++)
  •                 {
  •                         write_data(a[ i]);
  •                         delay(10);
  •                 }
  •          }
  • }

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2017-5-21 16:58 | 顯示全部樓層
報(bào)的什么錯(cuò)?
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2017-5-21 17:59 | 顯示全部樓層
本帖最后由 zl2168 于 2017-5-21 18:08 編輯

實(shí)例73  測(cè)量脈沖頻率
Proteus仿真一下,確認(rèn)有效
實(shí)例73 測(cè)量脈沖頻率.rar (52.74 KB, 下載次數(shù): 9)
測(cè)量脈沖頻率.jpg
以上摘自張志良編著《單片機(jī)實(shí)驗(yàn)實(shí)訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費(fèi)下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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