全部評論(1條)
-
- ljx123456aas 2017-06-23 00:00:00
- //用定時計數器0作為脈沖計數器,定時器1作為定時器用,定時50ms產生中斷 //中斷10次后(即0.5s)讀計數器0的數據乘2即為所得頻率值,適于頻率變化較慢的場所 //先進行50ms預判斷,若TH0計數值大于12,說明1S內計數值將超過65535(雖0.5S內遠不超65535) //變量ee是無符號整數不能超過65535,為防止出錯,則報警 //Z大可測頻率約65535hz,實際上STC12C系列是1T單片機,11.0592下其Z高可計數頻率遠大于此 #include <reg52.h> #include <math.h> #define uint unsigned int #define uchar unsigned char //定義以I/O口的功能 sbit beiguang=P3^2;//液晶屏背光 sbit rs=P1^3;//液晶屏寫選擇,0命令 1數據 sbit rw=P1^4;//液晶屏讀寫選擇 sbit lcden=P1^5;//液晶屏使能 sbit fm=P1^7;//蜂鳴器 #define db P2 //定義P2為數據輸出口,寫數據時用db代替P2,增加液晶屏程序的通用性 //更改硬件接線時,只更改此處,而不必去更改液晶屏讀寫子程序 uchar aa,bb,cc; uint dd,ee; void Delay1ms(unsigned int i) //1ms延時程序 { unsigned int j; for(;i>0;i--) { for(j=0;j<125;j++) {;} } } void init()//初始化設置 { TMOD=0x15;//定時器0作為計數器,定時器1作為定時器用 TH0=0;//計數器清0 TL0=0; EA=1;//開總中斷 ET1=1;//允許定時器1中斷 TH1=0x4c; TL1=0x5c; TR0=1;//啟動計數器 TR1=1;//啟動定時器 aa=0; } void write_com(uchar com)//向液晶屏寫命令 { db=com; rs=0; rw = 0; lcden=0; Delay1ms(10*12); lcden=1; Delay1ms(10*12); lcden=0; } void write_date(uchar date)//向液晶屏寫數據 { db=date; rs=1; rw = 0; lcden=0; Delay1ms(10*12); lcden=1; Delay1ms(10*12); lcden=0; } void init2()//液晶屏初始化 { beiguang=0; rw=0; write_com(0x38);//顯示模式16字*2行,5*7點陣,數據口8位 Delay1ms(10*12); write_com(0x0f);//開顯示,顯示光標,光標閃爍 Delay1ms(10*12); write_com(0x06);//寫完數據后數據指針和光標位置自動加1 Delay1ms(10*12); write_com(0x01);//屏幕清除 Delay1ms(10*12); } void display4(unsigned int number) //單行多位顯示程序 { uchar A1,A2,A3,A4,A5; init2();//液晶屏初始化 A1=number/10000%10;//分離出十萬,萬,千,百,十,個 A2=number/1000%10; A3=number/10; A4=number/10%10; A5=number%10; write_com(0x80);//第1個數據的位置設定,第1行第1列 Delay1ms(10); write_date(0x30+A1);//寫數據 Delay1ms(10); write_date(0x30+A2); Delay1ms(10); write_date(0x30+A3); Delay1ms(10); write_date(0x30+A4); Delay1ms(10); write_date(0x30+A5); Delay1ms(10); write_com(0x87);//第6個數據'H'的位置,中間空85和86 二格 write_date('H'); Delay1ms(10); write_date('z'); Delay1ms(10); } void main()//主程序很簡單 { init();//初始化 while(1)//循環程序 { dd=bb*256+cc;//0.5S的計數值 ee=2*dd;//換算為1秒鐘的計數值 if(aa==1) { if(TH0>12)//預判斷,50ms內TH0>12,1s內計數值將超過可計數的Z大值65535 fm=1;//報警 } display4(ee);//顯示 fm=0;//報警停止 } } void timer1()interrupt 3//注意:定時器1的中斷序號為3 { aa++; TH1=0x4c;//11.0592Mhz TL1=0x5c;//實際電路振蕩頻率11.03705Mhz,對TL1修正 if(aa==10)//中斷10次,共0.5S { TR0=0;//暫停計數 aa=0; bb=TH0;//讀出計數器數據 cc=TL0; TL0=0;//計數器清0 TH0=0; TR0=1;//重新啟動計數器 } }
-
贊(3)
回復(0)
熱門問答
- 基于單片機AT89C52頻率計,求程序,求助
2017-06-22 09:26:53
367
1
- 跪求單片機at89c52頻率計c語言程序
- 還有跪求那個方波的名字叫神馬~~~
2015-04-23 09:42:30
312
1
- 求一個簡易單片機頻率計設計程序
- 頻率測量精度為1HZ 誤差小于10HZ通過LCD1602顯示出來
2010-07-11 07:06:44
491
2
- 基于單片機的頻率計
- 哪位大俠有基于單片機頻率計的設計,范圍1HZ到100MHZ,希望能不吝賜教啊。自己做的頻率計仿真達不到要求。只能達到10M,卡在哪了,做不下去了。O(∩_∩)O謝謝了。
2012-05-08 03:40:25
230
3
- 基于51單片機用LCD1602液晶顯示的頻率計程序
- 求程序——————
2013-04-23 19:11:42
321
1
- stc12c5a60s2單片機頻率計程序
- 急
2017-07-07 00:38:42
371
1
- 基于單片機的頻率計設計
- 設計要求設計一個以單片機為核心的頻率測量裝置。使用AT89C51單片機的定時器/計數器的定時和計數功能,外部擴展6位LED數碼管,要求累計每秒進入單片機的外部脈沖個數,用LED數碼管顯示出來。(1)被測頻率fx<110Hz,采用測周法,顯示頻率×××. ×××;fx>1... 設計要求設計一個以單片機為核心的頻率測量裝置。使用AT89C51單片機的定時器/計數器的定時和計數功能,外部擴展6位LED數碼管,要求累計每秒進入單片機的外部脈沖個數,用LED數碼管顯示出來。(1)被測頻率fx<110Hz,采用測周法,顯示頻率×××. ×××;fx>110Hz,采用測頻法,顯示頻率××××××。(2)利用鍵盤分段測量和自動分段測量。(3)完成單脈沖測量,輸入脈沖寬度范圍是100ms~0.1s。(4)顯示脈沖寬度要求如下。Tx<1000ms,顯示脈沖寬度×××。Tx>1000ms,顯示脈沖寬度××××。 求大神給個程序,給個設計方,您之前給的失效了,謝謝大神 展開
2016-07-07 19:24:28
303
1
- 求基于STC89c52單片機做超聲波測距儀程序
2015-04-11 11:12:58
383
1
- 基于51單片機,ADC0804,光敏電阻,濕度傳感器,求程序!!??!
- 我用的51單片機,采集光強度和空氣濕度,利用了兩個ADC0804進行轉換(光敏電阻和電阻式濕度傳感器),但是沒有相應程序,哪位大哥能幫忙弄一個程序啊?如果是可行的程序,我賬號里剩下... 我用的51單片機,采集光強度和空氣濕度,利用了兩個ADC0804進行轉換(光敏電阻和電阻式濕度傳感器),但是沒有相應程序,哪位大哥能幫忙弄一個程序啊?如果是可行的程序,我賬號里剩下的分全給你,雖然不多... 展開
2011-06-01 01:20:26
277
4
- 你有沒有 基于51單片機用LCD1602液晶顯示的頻率計程序
2013-05-20 02:57:49
337
1
- 基于STC15單片機的頻率計及方波發生器設計,求原理框圖、流程圖和程序
- 一.基礎部分 1. 數字頻率計設計要求: 1) 被測信號為正弦波或方波,頻率范圍為1Hz~5MHz; 2) 測量相對誤差的值不大于百分之一; 3) 門限電壓2V-5V; 4) 測量數據刷新時間不大于2s,測量結果穩定。 2. 方波發生器設... 一.基礎部分 1. 數字頻率計設計要求: 1) 被測信號為正弦波或方波,頻率范圍為1Hz~5MHz; 2) 測量相對誤差的值不大于百分之一; 3) 門限電壓2V-5V; 4) 測量數據刷新時間不大于2s,測量結果穩定。 2. 方波發生器設計要求: 1) 方波發生器可以分為低頻和高頻2個端口產生,頻率范圍1Hz-6MHz; 2) 通過不同按鍵實現頻率的粗調和微調。 二.發揮部分 1) 頻率計范圍為 大于5MHz; 2) 測量相對誤差的值不大于 千分之一; 3) 增加脈沖信號占空比的測量功能。 是STC15不是51哦,大神求救呀。。。 展開
2018-12-07 15:50:50
449
0
- 基于單片機C51的頻率計電路圖
- 1、要共陰數碼顯示。2、頻率超過2K報警。3、蜂鳴器報警??蓽y1Hz到5KHz
2018-11-17 14:51:41
383
0
- 基于AT89C52單片機和DS18B20溫度傳感器的實物圖,急用?。。。?
- 就是基于單片機溫度傳感器的控制設計,實物圖,老師要,不會做,求幫助?。。?!... 就是基于單片機溫度傳感器的控制設計,實物圖,老師要,不會做,求幫助?。。。?展開
2016-05-02 04:57:33
231
1
- 頻率計原理及用單片機AT89C52設計時的程序代碼---求高手幫助急
2011-07-14 21:26:33
367
2
- 求助,基于51單片機,激光測距
2018-11-30 04:20:40
383
0
- 基于單片機的頻率計如何實現采集
2012-05-18 14:01:37
258
1
- 求一份如圖 基于單片機超聲波倒車測距的程序
2016-08-01 00:14:58
575
1
- 求基于單片機的低頻信號發生器的原理圖和程序
- 需要的是4*4鍵盤DAC0832濾波電路放大電路AT89C51液晶顯示... 需要的是4*4鍵盤 DAC0832 濾波電路 放大電路 AT89C51 液晶顯示 展開
2015-04-15 00:58:46
219
2
- 單片機頻率計的這段程序怎么理解
2017-12-05 00:32:59
465
3
- 基于at89c52單片機簡易函數信號發生器怎么焊在面包板上
2016-11-26 10:54:49
512
1
5月突出貢獻榜
推薦主頁
最新話題
-
- #DeepSeek如何看待儀器#
- 干體爐技術發展與應用研究
- 從-70℃到150℃:一臺試驗箱如何終結智能...從-70℃到150℃:一臺試驗箱如何終結智能調光膜失效風險?解決方案:SMC-210PF-FPC溫濕度折彎試驗箱的五大核心價值1. 多維度環境模擬,覆蓋全生命周期測試需求超寬溫域:支持-70℃至+150℃的極限溫度模擬(可選配),復現材料在極寒、高溫、冷熱沖擊下的性能表現;控濕:濕度范圍20%~98%RH(精度±3%RH),模擬熱帶雨林、沙漠干燥等復雜工況,暴露材料吸濕膨脹、分層缺陷;動態折彎:0°~180°連續可調折彎角度,支持R1~R20彎曲半徑設定,模擬實際裝配中的微小應力,提前預警裂紋、斷裂風險。
參與評論
登錄后參與評論