1樓:匿名使用者
#include
#define u8 unsigned char
u8 code tab=;
u8 code scn=;//先點亮左邊一個數碼管
u8 buf[4]=;// 顯示緩衝區
u8 cnt = 0; // 掃描計數
unsigned int freq = 0;
unsigned int f;
void main(void)
{ ea = 1; // 允許中斷
tmod = 0x01; // 設定時器0為模式1(16位)
et0 = 1; // 定時器0中斷允許
th0 = (65536-5000) / 256; // 晶振12mhz,中斷週期5ms
tl0 = (65536-5000) % 256;;
tr0 = 1; // 開始計數
px0 = 1; // 外部中斷優先順序高
ex0 = 1; // 允許外部中斷
it0 = 1; // 外部中斷下降沿觸發
while(1);
void exint0(void) interrupt 0 // 外部中斷0 服務程式
{ freq++;
void timeint(void) interrupt 1 // 定時器0中斷服務程式
{ char i;
th0 = (65536-5000) / 256; // 晶振12mhz,中斷週期5ms
tl0 = (65536-5000) % 256;;
i = cnt & 0x03; // 求應點亮的led號(從左到右依次為 0,1,2,3)
p0 = tab[buf[i]]; // 筆劃**送p0口
p2 = scn[i]; // 控制掃描碼送p2口
cnt++;
if(cnt==200)
{ cnt=0; // 到1秒鐘,顯示的數字加一
f = freq; freq = 0;
buf[0] = f / 1000;
buf[1] = (f / 100) % 10;
buf[2] = (f / 10) % 10;
buf[3] = f % 10;
2樓:匿名使用者
下降沿 產生中斷~定時器計時 配合計數器~ 算出波的週期~ 換算成頻率就好~ 這個不難的
51微控制器頻率計 12m晶振 t0計數 a為計數溢位次數 測周法測量 , f=1000000.0/(th0*256+tl0+a*65535)嗎
3樓:匿名使用者
應該f=1000000.0/(th0*256+tl0+a*65536)
51的微控制器可以實現t0定時和t1計數同時進行麼?
4樓:盧超
是滴。這種用法很正常啊,比如你做一個頻率計,那麼,既要能計輸入脈衝數(計數運用),又要能判斷單位時間(定時),然後通過演算法,即輸入脈衝/單位時間。這就是微控制器做的頻率計。
當然,兩個一起用的,還有很多場合。
5樓:hi漫海
51的微控制器可以實現t0定時和t1計數同時進行;計數器是相互獨立的;
51微控制器是對所有相容intel 8031指令系統的微控制器的統稱。該系列微控制器的始祖是intel的8004微控制器,後來隨著flash rom技術的發展,8004微控制器取得了長足的進展,成為應用最廣泛的8位微控制器之一,其代表型號是atmel公司的at89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的相容機型推出,今後很長的一段時間內將佔有大量市場。
51微控制器是基礎入門的一個微控制器,還是應用最廣泛的一種。需要注意的是51系列的微控制器一般不具備自程式設計能力。
6樓:唯武德馨一般幾
當然可以同時進行,兩個獨立的定時器
7樓:
可以的,這兩個部分是獨立的
微控制器定時器t0和t1有什麼區別呀?求助~~~
8樓:忻憐雲
huststi
有幾句話說的不對,方式3不同。但是t0是被拆分成th0 tl0兩個獨立的8位計數器。
在方式3下 to可以構成2個定時器或者一個定時器一個計數器。
方式3下 t1是不工作的。。
還有需要補充的是 to和t1所產生的中斷優先順序別不同。 找個你查下中斷優先順序 就知道了。。。
9樓:做而論道
相同點:
都可以工作在:
方式0(13位);
方式1(16位);
方式2(8位,自動恢復初值)。
不同點:
t0能夠工作在方式3(雙8位);
t1能夠當做序列口波特率發生器。
10樓:匿名使用者
t0和t1的工作方式0,1,2相同,方式3不同。t0用的是13位計數器(高三位不用),t1用的是16位計數器。所以兩者的最大即使時間不同。
在處理問題時,可先設定一個時間基準,再乘以倍數達到要求。
11樓:茆清安壽橋
工作方式3不同唄,當m1m0都為1時,為方式3,但僅是適用於t0,t1停止計時;但是(方式0,1,2)t0、t1都是相同的。
12樓:
t0是為了相容以前更早的微控制器的定時器,要不怎麼能排到前面呢
13樓:匿名使用者
huststi 回答的很好
at89c51微控制器設計頻率計,測量0hz--99.99khz的頻率,精度0.1%,分頻是怎麼分的,詳細解釋一下,謝謝啦
14樓:匿名使用者
100k以內,直接用51定時器的計數模式來做,完全能達到0.1%的精度,沒必要分頻。 實在想分頻,那你可以用74系列的計數器比如74hc160來做,可以任意設定你想要的分頻係數。
15樓:qq稱
at89c51微控制器設計頻率計,測量0hz--99.99khz的頻率,精度0.1%,如果您方便
可以合作
16樓:做而論道
1000hz 以上,使用計數法,以下,應用測周法。
我想做一個用微控制器頻率計,用t0計數,t1定時1s,數碼管顯示,但當頻率大於10khz 時顯示就不行了,求指教!
用51微控制器寫一個簡單的脈衝計數程式
17樓:匿名使用者
你好!相當於一個簡易的頻率計
測周法測頻率怎麼用微控制器實現。 5
18樓:胖大海君
主要是利用微控制器的定時器計時,測量2個時間引數t1和t2,即如下所示:
計算訊號的一個波形的週期 t=t1+t2 則可以求出頻率f=1/t
微控制器頻率計如何計算更精確,用51微控制器做的頻率計為什麼會有誤差?
1全部100ms,測量一次,顯示一次,顯示數值跳動,是正常的。可以把四次的數值,取平均值,每隔400ms,顯示一次 這樣,跳動的現象就會明顯減小。如果把八次的數值,取平均值,每隔800ms,顯示一次 這時,顯示的就會很穩定了,但是,也顯得 遲鈍 和 冷漠 多了。每隔400ms,顯示一次平均值,效果最...
求助 用微控制器制作遙控電動小車,求助 用微控制器制作一個遙控電動小車
這個分幾大模組。搖控模組 這一部分要用到無線裝置,有用紅外線的,而我作的時候用的是ptr8000是用nrf905晶片整合的一塊模板,要一次一對,具體命令廠家提供 電機驅動模組 電機有選用四電機,雙電機,還有單電機的,我用過的是雙電機,一個電機控制一百的輪子,也就是說一個控制左邊一個控制右邊,而電機用...
51微控制器產生一定佔空比和頻率的PWM
程式修改了一下,試試,ucount是字元變數而且也只能是字元變數,所以不能大於255.include define count 50 define th m1 65536 count 256 設定定時器t0的定時時間 define tl m1 65536 count 256 設定定時器t0的定時時間...