蓝桥杯单片机省赛第十届 难点
本屆賽題的難點(diǎn)就在于NE555頻率的測(cè)量。
目錄
NE555定時(shí)器的概述:
NE555周期、頻率的測(cè)量:
NE555定時(shí)器的概述:
在NE555內(nèi)部,有3個(gè)5K的電阻分壓,故稱555定時(shí)器。
555定時(shí)器的基本原理:
低電平觸發(fā)端TRIG和高電平觸發(fā)端THR:
兩者電壓均小于各自的參考電壓時(shí),U0=1,放電管截至。
兩者電壓均大于各自的參考電壓時(shí),U0=0,放電管導(dǎo)通。
NE555是一個(gè)純硬件的設(shè)計(jì),一旦硬件電路確定了,其功能也確定了,沒(méi)有可編程的部分。
在藍(lán)橋杯的板子上,555定時(shí)器是一個(gè)信號(hào)發(fā)生電路,通過(guò)電位器Rb3可改變輸出信號(hào)的頻率。
以上來(lái)源:B站小蜜蜂老師
信號(hào)輸出的頻率放在了P34引腳,而P34引腳恰好對(duì)應(yīng)著定時(shí)器0的計(jì)數(shù)信號(hào)輸入引腳。
NE555周期、頻率的測(cè)量:
需要兩個(gè)定時(shí)器:一個(gè)定時(shí)器0來(lái)計(jì)數(shù),計(jì)數(shù)P34引腳外面有多少脈沖信號(hào);再用另一個(gè)定時(shí)器來(lái)實(shí)現(xiàn)計(jì)時(shí)功能(定時(shí)1秒,檢測(cè)1秒內(nèi)的周期)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?頻率方波圖?
測(cè)量周期方法:紅色代表正周期(高電平 1),藍(lán)色代表反周期(低電平 0)。測(cè)量正反周期就知道了整個(gè)周期的時(shí)間。
(1)規(guī)定多長(zhǎng)的檢測(cè)時(shí)間進(jìn)入周期來(lái)分別檢測(cè)正負(fù)周期的時(shí)長(zhǎng)?
這個(gè)時(shí)間一定要比最小的周期短,否則就不會(huì)準(zhǔn)確的分別檢測(cè)到正負(fù)周期的時(shí)長(zhǎng)
理論上來(lái)說(shuō):進(jìn)行檢測(cè)的時(shí)間=2倍 最高頻率的周期 (至少)
在說(shuō)明書中,NE555頻率在200HZ—20KHZ之間,所以我們檢測(cè)的時(shí)間就是40KHZ的周期,t=1/40000=0.000025秒=25微秒。也就是每25微秒檢測(cè)一次。
以上是理論值,這個(gè)板子我們最低可以用5微秒的定時(shí)器0來(lái)進(jìn)行檢測(cè)。(這樣檢測(cè)會(huì)更加的精確)
(2)測(cè)量周期:
① zheng_now=0
? ? ?flag由0變?yōu)?
? ? ?反周期時(shí)間增加,fan++
② 正周期時(shí)間增加,zheng++
? ? ?flag由1變?yōu)?
? ? ?fan_now=fan
③ 反周期時(shí)間增加,fan++,一直加到圖中綠點(diǎn)處
? ? ?這一段的反周期的時(shí)間會(huì)等到下進(jìn)入正周期的時(shí)候賦給fan_now
? ? ?flag由0變?yōu)?
? ? ?zheng_now=zheng;
? ? ?
?????這樣反周期的時(shí)間就是fan_how,正周期的時(shí)間就是zheng_now
? ? ?這樣無(wú)論如何我們對(duì)于正反周期的數(shù)據(jù)測(cè)量都是從一個(gè)完整的周期開始的。
? ? 程序:
void timer0() interrupt 1 {if(P34==0)//P34輸出低電平{fan++;if(t_flag==0){t_flag=1;zheng_now=zheng;zheng=0;}}else if(P34==1)//P34輸出高電平{zheng++;if(t_flag==1){t_flag=0;fan_now=fan;fan=0;}} }(3)規(guī)定的檢測(cè)時(shí)間多長(zhǎng)才能檢測(cè)出一整個(gè)周期?
這個(gè)時(shí)間一定比最長(zhǎng)周期長(zhǎng),來(lái)確保能夠完整地測(cè)量出一整個(gè)NE555信號(hào)的周期.
最低頻率:200HZ,周期為5毫秒。以上只是理論值,實(shí)際情況下,最低頻率可以達(dá)到100HZ,周期為10毫秒。(我們可以適當(dāng)延長(zhǎng)這個(gè)時(shí)間)所以我們可以規(guī)定使用30毫秒,也就是說(shuō)每一秒鐘內(nèi),花30毫秒的時(shí)間來(lái)進(jìn)行周期的采集。
用1毫秒定時(shí)器1,每一秒鐘進(jìn)行 采集一次,采集時(shí)間為30毫秒。
在中斷1中寫30毫秒采集一次周期的程序:在一秒鐘之內(nèi),到了969毫秒,開啟定時(shí)器0;到999毫秒的時(shí)候關(guān)閉定時(shí)器0,讀取周期數(shù)據(jù)。
注意:在stc軟件上復(fù)制過(guò)來(lái)的時(shí)候,要把定時(shí)器1的開始計(jì)時(shí)注釋掉。我們用的時(shí)候再打開。
程序:
void timer1() interrupt 3 {intr++;if(intr==969)//開始進(jìn)行采集{TR0=1;ET0=1;//開啟計(jì)時(shí)和中斷}else if(intr==999)//采集完畢{intr=0;TR0=0;ET0=0;time=(fan_now+zheng_now)*5;frep=1000000/time;} }這樣周期和頻率就測(cè)量完畢了。
總結(jié)
以上是生活随笔為你收集整理的蓝桥杯单片机省赛第十届 难点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【maya】骨骼绑定与蒙皮权重调整
- 下一篇: maya中adv插件绑定1