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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4186|回復: 6
打印 上一主題 下一主題
收起左側

c語言編一個數字頻率計 四位顯示范圍0-9.9khz 幫我改下

[復制鏈接]
跳轉到指定樓層
樓主
ID:49805 發表于 2013-4-28 18:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include #defineSegment P2 #define sl P0 sbit addr0=P1^0; // 定義數據端口地址,000時16分頻,100 分頻 sbit addr1=P1^1; sbit addr2=P1^2; sbit clear=P1^3; //計數器清零 sbit ledM=P1^4; //檔位led顯示 sbit ledK=P1^5; sbit ledB=P1^6; unsigned char cnt; //定時1s計數 unsigned char d[4]; //對應數碼管的各位 unsigned char level; //檔位 unsigned int tN; //不同檔位計時值 unsigned int fCnt; //脈沖下降沿次數 unsigned int regCnt; //脈沖次數暫存 unsigned int pCnt; //頻率顯示 unsigned char Num[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void Delay(unsignedintDelayTime) { while(DelayTime--); } void disp() { if(level==0) //B位檔 { d[3]=0; d[2]=pCnt/100; d[1]=(pCnt%100)/10; d[0]=pCnt%10; sl=0xfe;Delay(1);Segment=Num[d[3]];Delay(300); sl=0xfd;Delay(1);Segment=Num[d[2]];Delay(300); sl=0xfb;Delay(1);Segment=Num[d[1]];Delay(300); sl=0xf7;Delay(1);Segment=Num[d[0]];Delay(300); } else if(level==1) { d[3]=pCnt/1000; d[2]=(pCnt%1000)/100; d[1]=(pCnt%100)/10; d[0]=pCnt%10; sl=0xfe;Delay(1);Segment=Num[d[3]];Delay(300); sl=0xfd;Delay(1);Segment=Num[d[2]];Delay(300); sl=0xfb;Delay(1);Segment=Num[d[1]]+0x80;Delay(300); //帶小數點 sl=0xf7;Delay(1);Segment=Num[d[0]];Delay(300); } else if(level==2) { d[3]=pCnt/1000; d[2]=(pCnt%1000)/100; d[1]=(pCnt%100)/10; d[0]=pCnt%10; sl=0xfe;Delay(1);Segment=Num[d[3]]+0x80;Delay(300); //帶小數點 sl=0xfd;Delay(1);Segment=Num[d[2]];Delay(300); sl=0xfb;Delay(1);Segment=Num[d[1]];Delay(300); sl=0xf7;Delay(1);Segment=Num[d[0]];Delay(300); } else { d[3]=0; d[2]=0; d[1]=0; d[0]=0; } } void intial() { clear=1; //分頻器初始化 addr0=0; addr1=0; addr2=1; tN=20; //檔位初始化為Hz檔 level=0; ledM=1; //顯示Hz檔 ledK=1; ledB=0; TMOD=0x61; //定時器0,工作方式1,計數器1,工作方式2(8位自動重裝) TH0=(65536-50000)/256; //計數50ms TL0=(65536-50000)%256; TH1=256-1;//計數器1計數初值 TL1=256-1; TR0=1; //開定時器0中斷 ET0=1; //定時器0允許 TR1=1; //開計數器1中斷 ET1=1; //允許計數器1中斷 EA=1; //總中斷允許 } void main() { intial(); while(1) { disp(); } } void timer0() interrupt 1 { cnt++; if(cnt==tN) { ET1=0; //計時1s時,暫停外部計數1 TR1=0; cnt=0; regCnt=fCnt; //更新顯示 fCnt=0; //頻率計數清零 clear=0; //硬件分頻器清零 clear=1; if(level==0) //檔位切換 { pCnt=regCnt; if(regCnt>999) { pCnt=0; //顯示清零 level=1; tN=1; // 定時50ms addr2=0;//進行分頻處理 TH1=0xfb; //50分頻 256-5 TL1=0xfb; } } else if(level==1) { if(regCnt<1) { level=0; tN=20; //定時1s addr2=1; //不分頻 th1="0xff;" // 256-1 tl1="0xff;" // 256-1 ledm="1;" //顯示HZ檔 ledk="1; " ledb="0; } else" if(regCnt<1000)//KHz檔 { level=1; tN=1; //定時50ms addr2=0; //硬件分頻處理 TH1=0xfb; //50分頻 256-5 TL1=0xfb; //256-5 pCnt=regCnt*10; //換算成相應的顯示:f=regCnt*100 ledM=1; //顯示KHz檔 ledK=0; ledB=1; } else { level=2; tn="1;" //定時50ms addr2=0; //分頻 TH1=0xf6; // 100分頻 256-10 TL1=0xf6; //256-10 pCnt=0; //換算成相應的顯示:f=regCnt*100 ledM=0; //顯示MHz檔 ledK=1; ledB=1; } } else if(level==2) { if(regCnt<500) //KHz檔 { level=1; tN=1; //定時50ms addr2=0; //分頻 th1="0xfb;" // 50分頻 256-5 TL1=0xfb; //256-5 pCnt=0; //換算成相應的顯示 ledM=1; //顯示KHz檔 ledK=0; ledB=1; } else if(regCnt<5000) { level=2; tN=1; //定時50ms addr2=0; //分頻 TH1=0xf6; //100分頻 256-10 TL1=0xf6; //256-10 pcnt="regCnt*2;" //換算成相應的顯示:f=regCnt*100 ledM=0; //顯示MHz檔 ledK=1; ledB=1; } else { level=3; //超出范圍 ledM=1; //全滅 ledK=1; ledB=1; } } ET1=1; //恢復外部計數1 TR1=1; } TH0=0x3c; //(65536-50000)/256; TL0=0xb0; //(65536-50000)%256; } void enterFre() interrupt 3 //外部頻率輸入 { fCnt++; } 這個程序 0-999hz是對的 但是1000-9999hz 只能顯示千位的數字啊 附件里面有程序啊
[此貼子已經被作者于2013-4-28 18:06:02編輯過]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:7485 發表于 2013-4-29 09:24 | 只看該作者

沒看到你的附件,帖子里的東西無法看,而且程序不全,根本不可能編譯。

 

如果是求助,你就............

回復

使用道具 舉報

板凳
ID:51039 發表于 2013-6-18 13:57 | 只看該作者
回復

使用道具 舉報

地板
ID:51049 發表于 2013-6-18 20:31 | 只看該作者
什么東東??
回復

使用道具 舉報

5#
ID:68875 發表于 2014-11-15 23:07 | 只看該作者
謝謝分享。。。
回復

使用道具 舉報

6#
ID:86621 發表于 2015-8-12 08:42 | 只看該作者
做好了沒啊   給個完整程序看一下嗎
回復

使用道具 舉報

7#
ID:189542 發表于 2017-4-19 15:03 | 只看該作者
鳳飛飛的高規格
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级黄色片日本 | 国产乱码久久久久久 | 亚洲国产精品suv | 五月天综合网 | 日韩一区二区久久 | 91色视频在线 | 久久久精品视频一区二区三区 | 国产美女视频黄a视频免费 国产精品福利视频 | 国产高清视频一区 | 中文字幕视频在线观看 | 欧美a√| 国产精品视频网站 | 午夜视频网站 | 国产98色在线 | 日韩 | 成人三级av| 国产精品免费一区二区三区 | 国产精品久久久久久久久久久久午夜片 | 国产福利资源 | 蜜臀网 | 国产乱码一区 | 精品国产乱码久久久久久牛牛 | 精品久久久网站 | 国产免费观看一级国产 | 亚洲伦理自拍 | 日韩精品成人一区二区三区视频 | 国产精品高潮呻吟久久久久 | 精品国产视频 | 久久成人免费视频 | 久久久久久久久蜜桃 | www日韩欧美| 在线黄色影院 | 久久久久久国 | 亚洲成人免费视频 | 欧美精品一区二区三区在线 | 成年人黄色小视频 | 日韩精品一区二 | 一区二区亚洲 | 欧美aⅴ片| 日韩中文字幕高清 | 99久久免费精品国产男女高不卡 | 久久精品一级 |