找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2824|回復: 4
收起左側

關于單片機計數(shù)器的問題

[復制鏈接]
ID:253022 發(fā)表于 2017-12-12 12:18 | 顯示全部樓層 |閱讀模式
關于單片機計數(shù)器賦初值的問題。初值應該是(2^n-1)(n是所選擇的定時器以及工作方式所選擇的位數(shù))。
可是今天看到一段代碼,大家?guī)兔聪逻@有沒有問題的,還是說這樣也可以。
TMOD=0x05
TH0=0;
        TL0=0;  //(不應該是256嗎?)
        TR0=1;

同時還有個問題,就是EA=1;在啟用計數(shù)功能時需要加這一局嗎?
大家一起討論一下

回復

使用道具 舉報

ID:111634 發(fā)表于 2017-12-12 18:05 | 顯示全部樓層
先學理論,打基礎,就不會有這么多問題了,本壇至少有50%的問題屬于此類情況。
回復

使用道具 舉報

ID:164602 發(fā)表于 2017-12-13 10:15 | 顯示全部樓層
同學,二樓說得好,好好學習基礎知識,不然這個就搞不懂!
我來解釋一下吧(沒有看到程序全部,只能以我的經(jīng)驗來解釋了)
第一:此程序設置的是計數(shù)器。即P3^4口(通常的51單片機此口為定時/計數(shù)器0)計數(shù)外部脈沖個數(shù)。
第二:計數(shù)器有很多不同的用法,這里說兩種:①計數(shù)固定脈沖數(shù),就可以打開中斷允許,ET0=1,當然要開總中斷允許,EA=1。②如果計數(shù)脈沖不確定,要分情況,則可以不用中斷,所以也就不開中斷了。
第三:定時/計數(shù)器,都是溢出產(chǎn)生中斷標志。你給的程序,選用了定時/計數(shù)器工作方式1,即16位定時/計數(shù)器。對于需要中斷的情況,舉例:要測量脈沖100,則初值計算65536-100=65436=0xFF9C(自己用計算器算算,可不是什么都是256哦)。對于不需要中斷的情況,這個初值一般都賦為零,如此程序中的初值,只要在程序中用判斷語句,當TH0、TL0分別為多少時做什么什么,就可以了,并不需要它溢出,也不需要計算初值。我做過智能小車,在控制它轉動角度時,就這樣用的,脈沖多少次,就說明小車已經(jīng)轉動相應的角度。

不知道我的講解清楚不。
回復

使用道具 舉報

ID:260584 發(fā)表于 2017-12-13 11:11 | 顯示全部樓層
基礎打好你就不會有那么多問題了
回復

使用道具 舉報

ID:261022 發(fā)表于 2017-12-13 11:22 | 顯示全部樓層
HC6800-ES-V2.0 發(fā)表于 2017-12-13 10:15
同學,二樓說得好,好好學習基礎知識,不然這個就搞不懂!
我來解釋一下吧(沒有看到程序全部,只能以我的 ...

學習了
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表