版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢業(yè)設(shè)計(jì)(論文)外文資料翻譯</p><p> 學(xué)院(系): 電子電氣工程學(xué)院 </p><p> 專 業(yè): 電子信息工程 </p><p> 姓 名: </p><p> 學(xué)
2、 號(hào): </p><p> 外文出處: The 8051 Microcontroller </p><p> 附 件: 1.外文資料翻譯譯文;2.外文原文。 </p><p> 附件1:外文資料翻譯譯文</p><p><b> 第四章
3、 定時(shí)器運(yùn)行</b></p><p><b> 4.1定時(shí)器介紹</b></p><p> 在本章中,我們研究了8051的片上定時(shí)器。我們開始簡(jiǎn)化視圖,因?yàn)樗鼈兺ǔS糜谖⑻幚砥骰蛭⒖刂破鞯挠?jì)時(shí)器。</p><p> 一個(gè)系列的定時(shí)器被劃分為兩個(gè)觸發(fā)器,觸發(fā)器的接收輸入信號(hào)作為時(shí)鐘源。時(shí)鐘頻率除以2的時(shí)鐘被應(yīng)用于第一個(gè)觸發(fā)器。第
4、一個(gè)觸發(fā)器的輸出時(shí)鐘為第二個(gè)觸發(fā)器除以2等。由于每個(gè)連續(xù)的階段都除以2,N個(gè)分期定時(shí)器的輸入時(shí)鐘頻率也除以2。最后一個(gè)階段的輸出時(shí)鐘觸發(fā)器,定時(shí)器溢出或者標(biāo)記都是由軟件測(cè)試或產(chǎn)生中斷。從定時(shí)器啟動(dòng)后,定時(shí)觸發(fā)器的二進(jìn)制值可以被看作是一個(gè)“數(shù)量”的時(shí)鐘脈沖(或“事件”)。一個(gè)16位定時(shí)器,例如,將數(shù)從0000H到FFFFH。溢出標(biāo)志設(shè)置的計(jì)數(shù)值為FFFFH-0000H溢出。</p><p> 一個(gè)簡(jiǎn)單計(jì)時(shí)器的操作
5、是在3位定時(shí)器上的,每個(gè)階段是作為一個(gè)類型的三維負(fù)邊沿觸發(fā)觸發(fā)器2分頻模式(即經(jīng)營(yíng)所示的輸出連接到D輸入)。觸發(fā)器的標(biāo)志僅僅是一個(gè)類型D鎖存器,被置于計(jì)時(shí)器的最后階段。它在時(shí)序圖是顯而易見,第一階段是1 / 2的時(shí)鐘頻率,第二階段是時(shí)鐘頻率的1 / 4。十進(jìn)制計(jì)數(shù)顯示,并且很容易通過檢查核實(shí)三個(gè)觸發(fā)器是否過時(shí)。例如,數(shù)“4”發(fā)生時(shí),= 1。 =0,= 0(=)。</p><p> 定時(shí)器是以幾乎所有的
6、控制為導(dǎo)向的應(yīng)用,8051定時(shí)器也不例外。兩個(gè)16位的定時(shí)器有四種操作模式。第三個(gè)16位定時(shí)器的三種操作模式是增加8052。定時(shí)器用于(a)時(shí)間間隔定時(shí),(b)事件計(jì)數(shù),(c)內(nèi)置串行端口的波特率速率生成。每一個(gè)定時(shí)器都是一個(gè)16位的定時(shí)器,因此= 65536除以16就是最后階段的輸入時(shí)鐘頻率。在間隔定時(shí)應(yīng)用時(shí),編程定時(shí)器溢出;在定期的時(shí)間間隔是就要設(shè)置定時(shí)器溢出標(biāo)志。使用該標(biāo)志是同步方案的執(zhí)行,如檢查輸入狀態(tài)或的數(shù)據(jù)發(fā)送到輸出的行動(dòng)。
7、其他的應(yīng)用程序也可以使用計(jì)時(shí)器來(lái)衡量這兩個(gè)條件之間所經(jīng)過時(shí)間的定期時(shí)鐘(例如脈沖寬度測(cè)量)。</p><p> 事件計(jì)數(shù)器是用來(lái)確定事件的發(fā)生次數(shù),而來(lái)衡量事件之間所經(jīng)過的時(shí)間。“事件”是任何外部刺激提供了1到0轉(zhuǎn)換到8051集成電路的引腳。該定時(shí)器還可以提供8051的內(nèi)部串行端口的波特率時(shí)鐘。8051定時(shí)器使用6個(gè)特殊功能寄存器進(jìn)行訪問。另外5個(gè)SFR提供訪問在8052第三定時(shí)器上。</p>&
8、lt;p> 4.2定時(shí)器模式寄存器(TMOD)</p><p> TMOD寄存器包含兩組4位設(shè)置定時(shí)器0和1的操作模式。</p><p> TMOD是不可位尋址,也不需要使用譯碼芯片。一般來(lái)說,它是在一個(gè)程序初始化定時(shí)器模式開始通過軟件來(lái)加載。此后,定時(shí)器可以停止,啟動(dòng),并通過訪問其他定時(shí)器的SFR等。 </p><p> 4.3定時(shí)器控制寄存器(TC
9、ON) </p><p> TCON寄存器包含了定時(shí)器0和1的狀態(tài)和控制位。TCON中的高4位(TCON.4 和TCON.7)用于打開和關(guān)閉的定時(shí)器(TR0,TR1)或信號(hào)定時(shí)器溢出(TF0,TF1)。這些高4位被廣泛使用在本章的例子。 </p><p> 較低的4位TCON中的(TCON.0- TCON.3)與定時(shí)器無(wú)關(guān)。它們被用來(lái)檢測(cè)并啟動(dòng)外部中斷。這些較低的4位討論被推遲到第6章
10、,討論中斷。</p><p> 4.4定時(shí)器模式和溢出標(biāo)志</p><p> 每個(gè)定時(shí)器將在下面討論。由于8051有兩個(gè)定時(shí)器,所以符號(hào)“X”是用來(lái)表示定時(shí)器0或定時(shí)器1,因此,“THX”是指定時(shí)器TH1或定時(shí)器TH0。安排顯示定時(shí)器寄存器TLx的THx和定時(shí)器溢出標(biāo)志TFX每種模式。</p><p> 4.4.1 13位定時(shí)器模式(模式0)</p&g
11、t;<p> 模式0是一個(gè)13位定時(shí)器模式,提供和8051的前身8048相同的兼容性。這在新的設(shè)計(jì)中通常不使用這種模式。定時(shí)器的高字節(jié)(THx)級(jí)聯(lián)五個(gè)最低有效位定時(shí)器的(TLx)來(lái)形成一個(gè)13位定時(shí)器。低字節(jié)TLx的上層3位沒有被使用。</p><p> 4.4.2 16位定時(shí)器模式(模式1) </p><p> 模式1是一個(gè)16位定時(shí)器模式,它和模式0相同。除了定
12、時(shí)器是作為一個(gè)完整的16位定時(shí)器操作外, 時(shí)鐘是被應(yīng)用于高位和低位相結(jié)合的定時(shí)器寄存器(TLx/ THx)。由于能接收時(shí)鐘脈沖,因此定時(shí)器計(jì)數(shù):0000H,0001H,0002H等。發(fā)生溢出的計(jì)數(shù)值為FFFFH-0000H過渡,并設(shè)置定時(shí)器溢出標(biāo)志,定時(shí)器繼續(xù)計(jì)數(shù)。溢出標(biāo)志是TCON中的TFx標(biāo)志位通過軟件讀取或編寫出來(lái)的。</p><p> 最重要的位(MSB)是在定時(shí)器寄存器的高字節(jié)THx的第7位和最低有效
13、位(LSB)TLx的第0位。LSB的切換是輸入時(shí)鐘頻率除以2,而MSB切換是輸入時(shí)鐘頻率除以65536(即)。定時(shí)器寄存器(TLx/ THx),它可被讀取或隨時(shí)由軟件寫入。</p><p> 4.4.3 8位自動(dòng)重裝模式(模式2)</p><p> 模式2是8位自動(dòng)重裝載模式。作為一個(gè)8位定時(shí)器,該定時(shí)器的低字節(jié)(TLx)運(yùn)行,而定時(shí)器的高字節(jié)(THX)擁有重載值。當(dāng)計(jì)數(shù)從FFH到0
14、0H溢出時(shí),不僅是計(jì)時(shí)器標(biāo)志設(shè)置,THx的值被裝入至TLx時(shí)繼續(xù)計(jì)數(shù),從這個(gè)值FFH -00H過渡到下一個(gè)值等。這種模式是便捷的,因?yàn)橐坏㏕MOD和THX被初始化,定時(shí)器溢出就發(fā)生在具體的周期間隔。</p><p> 4.4.4 斯普利特定時(shí)器模式(模式3) </p><p> 模式3是分割定時(shí)器模式它不同于每個(gè)定時(shí)器。在模式3中,定時(shí)器0分成兩個(gè)8位定時(shí)器。TL0和TH0分別
15、設(shè)置TF0和TF1位獨(dú)立的定時(shí)器溢出行為。 </p><p> 一旦定時(shí)器1在模式3中停止后可以啟動(dòng)切換到其他模式之一。 唯一的限制是通常的定時(shí)器1溢出標(biāo)志位。TF1不是受到定時(shí)器1溢出的影響,因?yàn)樗沁B接到TH0中。 </p><p> 模式3本質(zhì)上提供了一個(gè)額外的8位定時(shí)器。 8051還有第三個(gè)計(jì)時(shí)器。當(dāng)定時(shí)器0處于模式3時(shí),定時(shí)器1可開啟和關(guān)閉并切換到自己的模式3。它仍然可以用作
16、串行端口的波特率發(fā)生器,它也可以在任何不要求中斷的方式使用(因?yàn)樗辉龠B接到TF1)。</p><p> 4.5 時(shí)鐘源 </p><p> 如圖4-2,不顯示的定時(shí)器的時(shí)鐘。有兩種可能的時(shí)鐘源,定時(shí)器初始化時(shí)通過寫在TMOD位計(jì)數(shù)器/定時(shí)器()被選定。事件計(jì)數(shù)器的其他時(shí)鐘源之一被用于時(shí)間間隔的時(shí)序。 </p><p> 4.5.1 時(shí)間間隔的時(shí)序&l
17、t;/p><p> 如果= 0,連續(xù)定時(shí)器操作是選擇從片上振蕩器提供時(shí)鐘和計(jì)時(shí)器。分頻的12階段被添加到減少時(shí)鐘頻率值對(duì)于大多數(shù)應(yīng)用程序都是合理的。 </p><p> 當(dāng)選擇連續(xù)定時(shí)器操作時(shí),定時(shí)器用于時(shí)序時(shí)間間隔。定時(shí)器寄存器(TLx的/ THx)的頻率增量是片上振蕩器的1/12速率,因此,一個(gè)12 MHz晶體將產(chǎn)生1 MHz的時(shí)鐘速率。定時(shí)器溢出后,會(huì)出現(xiàn)一個(gè)固定數(shù)目的時(shí)鐘,根據(jù)初始
18、值加載到定時(shí)器寄存器,至TLx/ THX。 </p><p> 4.5.2 事件計(jì)數(shù) </p><p> 如果= 1,定時(shí)器來(lái)自于外部信號(hào)源。在大多數(shù)應(yīng)用中,這種外部源供應(yīng)的定時(shí)器與后一個(gè)“事件”的發(fā)生脈沖定時(shí)器都是事件計(jì)數(shù)器。定時(shí)器寄存器TLx的/ THx事件的數(shù)量是通過軟件讀取來(lái)確定。 16位值在這些寄存器中的每個(gè)事件遞增。</p><p> 外部時(shí)鐘源
19、是通過端口3引腳的復(fù)用功能的方式實(shí)現(xiàn)的。在這種情況下端口3位4(P3.4)作為定時(shí)器0的外部時(shí)鐘輸入端“T0”。P3.5或“TL”,是TIMET1的時(shí)鐘輸入。</p><p> 在計(jì)數(shù)器的應(yīng)用中,1到0的轉(zhuǎn)換是通過外部輸入TX定時(shí)器寄存器來(lái)遞增。外部輸入在每個(gè)機(jī)器周期的S5P2期間被采樣,因此,當(dāng)輸入顯示在一個(gè)周期為高,則在下一個(gè)周期為低,并且計(jì)數(shù)遞增。定時(shí)器周期的S3P1期間出現(xiàn)的新值是在寄存器以后的過渡期中
20、被檢測(cè)到的。 由于識(shí)別1到0的跳變需要兩個(gè)機(jī)器周期(2 us),最大的外部頻率為500kHz(假設(shè)12 MHz運(yùn)行)。</p><p> 4.6 啟動(dòng),停止,控制定時(shí)器</p><p> 圖2說明了定時(shí)器寄存器的TLx,THx和定時(shí)器溢出標(biāo)志位TFx的各種配置。定時(shí)器計(jì)時(shí)兩種性能,如圖4-3所示。我們現(xiàn)在演示如何啟動(dòng)停止和控制定時(shí)器。 </p><p> 最
21、簡(jiǎn)單的方法是啟動(dòng)和停止定時(shí)器運(yùn)行控制位,TRx位在TCON中。當(dāng)TRx明確后,系統(tǒng)復(fù)位,因此定時(shí)器默認(rèn)情況下禁用(停止)。TRx置位通過軟件來(lái)啟動(dòng)定時(shí)器。</p><p> 由于TRx的位尋址在寄存器TCON,它就很容易在一個(gè)程序中啟動(dòng)和停止定時(shí)器。例如,啟動(dòng)定時(shí)器0 </p><p> SETB TR0</p><p><b> 停止定時(shí)器
22、0</b></p><p> CLR TR0</p><p> 匯編器將從“TR0”到正確的位地址執(zhí)行必要符號(hào)轉(zhuǎn)換。SETB TR0和SETB 8通道是完全一樣的。</p><p> 定時(shí)器控制的另一種方法是在TMOD的GATE位和外部輸入的。當(dāng)設(shè)置GATE = 1時(shí),允許定時(shí)器控制。如下對(duì)于脈沖寬度測(cè)量,這是有用的。假設(shè)是低,但經(jīng)過一段時(shí)
23、間的測(cè)量后為高。初始化定時(shí)器0模式2,當(dāng)16位定時(shí)器模式與TL0/TH0=0000H,GATE = 1時(shí),則TR0= 1。當(dāng)為高電平時(shí),定時(shí)器是“門控開”和速度主頻為1 MHz。當(dāng)變低電平時(shí),定時(shí)器是“門控關(guān)閉”,而且微秒脈沖的持續(xù)時(shí)間是在TL0和TH0計(jì)數(shù),(當(dāng)它返回低電平時(shí),可以編程產(chǎn)生一個(gè)中斷)。</p><p> 定時(shí)器1作為模式1是一個(gè)16位定時(shí)器,以及定時(shí)器寄存器TL1/TH1和溢出標(biāo)志位TF1。圖
24、中顯示的時(shí)鐘源是啟動(dòng),停止和控制定時(shí)器的幾種可能。</p><p> 4.7 初始化和訪問定時(shí)器寄存器</p><p> 通常定時(shí)器在程序設(shè)置正確的操作模式時(shí)開始初始化一次。此后,內(nèi)部機(jī)體的一個(gè)程序有定時(shí)器啟動(dòng),停止,測(cè)試和清零標(biāo)志位,定時(shí)器寄存器讀取或更新所需的應(yīng)用程序。</p><p> 由于TMOD設(shè)置的運(yùn)作模式,所以它是第一個(gè)寄存器初始化的。例如,下
25、面的指令是初始化定時(shí)器1作為一個(gè)16位定時(shí)器時(shí)鐘(模式1)的片上振蕩器(間隔計(jì)時(shí)):MOV TMOD#00010000B</p><p> 此指令的作用是設(shè)置M1= 0和M0= 1為MODE1, 脫離= 0和GATE= 0的內(nèi)部時(shí)鐘則就清除定時(shí)器0的模式位。當(dāng)然,定時(shí)器不開始計(jì)時(shí),直到其運(yùn)行控制位TR1設(shè)置。</p><p> 如果初始計(jì)數(shù)是必要的,定時(shí)器寄存器TL1/TH1也必須
26、被初始化。記住定時(shí)器計(jì)數(shù),并設(shè)置FFFFH-0000H過渡溢出標(biāo)志, 100 us的時(shí)間間隔可以定時(shí)初始化TL1/TH1到100計(jì)數(shù)要比0000H少。正確的值是- 100或FF9CH。下面的指令完成這項(xiàng)工作:</p><p> MOV TL1, #9CH</p><p> MOV TH1, #0FFH</p><p> 然后啟動(dòng)定時(shí)器運(yùn)行控制位設(shè)置如下
27、:</p><p><b> SETB TR 1</b></p><p> 4.7.1 讀定時(shí)器的“飛行”模式</p><p> 在某些應(yīng)用中,它是必要的讀取定時(shí)器值寄存器“飛行”模式。有一個(gè)潛在的問題很簡(jiǎn)單來(lái)防止軟件對(duì)抗。由于兩個(gè)定時(shí)器寄存器必須先讀取,所以“相位誤差”可能會(huì)出現(xiàn)在兩個(gè)讀操作之間的低字節(jié)到高字節(jié)溢出位??梢员蛔x的A值從
28、來(lái)就不存在;解決的辦法是先讀高字節(jié)的第一位,其次讀低字節(jié),然后再讀取高字節(jié)。如果高字節(jié)發(fā)生了變化,重復(fù)進(jìn)行讀取操作。下面的指令是讀取定時(shí)器的內(nèi)容從寄存器TL1/TH1到寄存器R6/R7來(lái)正確處理這個(gè)問題。</p><p> AGAIN: MOV A, THl</p><p> MOV R6, TL1</p><p> CJNE A , THl,
29、 AGAIN</p><p> MOV R7, A</p><p><b> 附件2:外文原文</b></p><p><b> 4 </b></p><p> TIMER OPERATION</p><p> 4.1 INTRODUCTIONIn this
30、 chapter we examine the 8051's on-chip timers. We begin with a simplified view of timers as they are commonly used with microprocessors or microcontrollers. A timer is a series of divide-by-two flip-flops that r
31、eceive an input signal as a clocking source. The clock is applied to the first flip-flop, which divides the clock frequency by 2. The output of the first flip-flop clocks the second flip-flop, which also divides by 2 and
32、 so on. Since each successive stage divi</p><p> Timers are used in virtually all control-oriented applications, and the 8051 timers are no exception. There are two 16-bit timers each with four modes of ope
33、ration. A third 16-bit timer with three modes of operation is added on the 8052. The timers are used for (a) interval timing, (b) event counting, or (c) baud rate generation for the built-in serial port. Each is a 16-bit
34、 timer, therefore the 16th or last stage divides the input clock frequency by = 65536. </p><p> In interval timing applications, a timer is programmed to overflow at a regular interval and set the timer ov
35、erflow flag. The flag is used to synchronize the program to perform an action such as checking the state of inputs or sending data to outputs. FIGURE 4-1 </p><p> A 3-bit timer. (a) Schematic (b) Timing d
36、iagram.</p><p> Other applications can use the regular clocking of the timer to measure the elapsed time between two conditions (e.g. pulse width measurements).</p><p> Event counting is used
37、to determine the number of occurrences of an event, rather than to measure the elapsed time between events. An "event" is any external stimulus that provides a 1-to-0 transition to a pin on the 8051 IC. The tim
38、ers can also provide the baud rate clock for the 8051 's internal serial port.</p><p> The 8051 timers are accessed using six special function registers. (See Table 4-1.). An additional 5 SFRs provide a
39、ccess to the third timer in the 8052.</p><p> 4.2 TIMER MODE REGISTER (TMOD)</p><p> The TMOD register contains two groups of four bits that set the operating mode for Timer 0 and Timer 1. (Se
40、e Table 4-2 and Table 4-3.). </p><p> TMOD is not bit-addressable, nor does it need to be. Generally, it is loaded once by software at the beginning of a program to initialize the timer mode. Thereafter, th
41、e timer can be stopped, started, and so on by accessing the other timer SFRs.</p><p> 4.3 TIMER CONTROL REGISTER (TCON)</p><p> The TCON register contains status and control bits for Timer 0 a
42、nd Timer 1 (see Table 4-4). The upper four bits in TCON (TCON.4-TCON.7) are used to turn the timers on and off (TR0, TR1),or to signal a timer overflow (TF0, TF1).These bits are used extensively in the examples in this c
43、hapter.</p><p> The lower four bits in TCON (TCON.0-TCON.3) have nothing to do with the timers. They are used to detect and initiate external interrupts. Discussion of these bits is deferred until chapter 6
44、, when interrupts are discussed.</p><p> 4.4 TIMER MODES AND THE OVERFLOW FLAG</p><p> Each timer is discussed below .Since there are two timers on the 8051,the notation "x" is used
45、to imply either Timer 0 or Timer 1;thus, "THx" means either TH1 or TH0 depending on the timer.</p><p> The arrangement of timer registers TLx and THx and the timer overflow 1 flags TFx is shown in
46、 Figure 4-2 for each mode.</p><p> 4.4.1 13-Bit Timer Mode (Mode 0)</p><p> Mode 0 is a 13 bit timer mode that provides compatibility with the 8051’s predecessor the 8048. It is not generally
47、used in new designs. (See Figure 4-2a.). The timer high- byte (THx) is cascaded with the five least-significant bits of the timer low-byte (TLx) to form a 13-bit timer. The upper three bits of TLx are not used.</p>
48、<p> 4.4.2 16-Bit Timer Mode (Mode 1)</p><p> Mode 1 is a 16-bit timer mode and is the same as mode 0. except the timer is operating as a full 16-bit timer. The clock is applied to the combined high
49、 and low timer registers (TLx/THx). As clock pulses are received, the timer counts up: 0000H, 0001H, 0002H,etc. An overflow occurs on the FFFFH-to-0000H transition of the count and sets the timer overflow flag.
50、 </p><p> The timer continues to count. The overflow- flag is the TFx bit in TCON that is read or written by software. (See Figure 4-2b)</p><p> The most-significant bit (MSB)o
51、f the value in the timer registers is THx bit 7, and the least-significant bit (LSB) is TLx bit 0. The (LSB)toggles at the input clock frequency divided by 2, while the MSB toggles at the input clock frequency divided by
52、 65536 (i.e ,).The timer registers (TLx/THx)may he read or written at any time by software.</p><p> 4.4.3 8-Bit Auto-Reload Mode (Mode 2)</p><p> Mode 2 is 8-bit autoreload mode. The timer low
53、-byte (TLx) operates as an 8 bit timer while the timer high-byte (THx) holds a reload value. When the count overflows from FFH to 00H, not only is the timer flag set, but the value in THx is loaded into TLx; counting con
54、tinues from this value up to the next FFH-to-00H transition, and so on. This mode is convenient, since timer overflows occur at specific, periodic intervals once TMOD and THx are initialized. (See Figure 4-2c.)</p>
55、<p> 4.4.4 Split Timer Mode (Mode 3)</p><p> Mode 3 is the split timer mode and is different for each timer. Timer 0 in mode 3 is split into two 8-bit timers. TL0 and TH0 act as separate timers with
56、 overflows setting the TF0 and TF1 bits respectively.</p><p> Timer 1 is stopped in mode 3. but can be started by switching it into one of the other modes. The only limitation is that the usual Timer 1 over
57、flow flag. TF1, is not affected by Timer 1 overflows, since it is connected to TH0.</p><p> Mode 3 essentially provides an extra 8-bit timer. The 8051 appears to have a third timer. When Timer 0 is in mode
58、3. Timer I can he turned on and off by switching it out of and into its own mode 3. It can still be used by the serial port as a baud rate generator, or it can be used in any way not requiring interrupts (since it is no
59、longer connected toTF1).</p><p> 4.5 CLOCKING SOURCES</p><p> Figure 4-2 does not show how the timers are clocked. There are two possible clock sources, selected by writing to the counter / ti
60、mer () bit in TMOD when the timer is initialized. One clocking source is used for interval timing, the other for event counting.</p><p> 4.5.1 Interval Timing</p><p> If = 0, continuous timer
61、 operation is selected and the timer is clocked from the on-chip oscillator. A divide-by-12 stage is added to reduce the clocking frequency to a value reasonable for most applications.</p><p> When continuo
62、us timer operation is selected, the timer is used for interval timing.The timer registers (TLx/THx) increment at a rate of 1/12th the frequency of the on-chip oscillator; thus, a 12 MHz crystal would yield a clock rate o
63、f 1 MHz. Timer overflows occur after a fixed number of clocks, depending on the initial value loaded into the timer registers, TLx/THx.</p><p> 4.5.2 Event Counting</p><p> If =1, the timer
64、is clocked from an external source. In most applications, this external source supplies the timer with a pulse upon the occurrence of an "event"—the timer is event counting. The number of events is determined i
65、n software by reading the timer registers TLx/THx. since the 16-bit value in these registers increments for each event.</p><p> The external clock source comes by way of the alternate functions of the port
66、3 pins. Port 3 bit 4(P3.4) serves as the external clocking input for Timer 0 and is known as"T0" in this context. P3.5,or "Tl," is the clocking input for Timet 1. (See Figure 4-3.)</p><p>
67、; In counter applications. The timer registersare incremented in response to a 1-to-0 transition at the external input. Tx. The external input is sampled during S5P2 of every machine cycle; thus, when the input shows a
68、high in one cycle and a low in the next,the count is incremented. The new value appears in the timer registers during S3P1 of the cycle following the one in which the transition is detected. Since it takes two machine cy
69、cles (2 us) to recognize a 1-to-0 transition, the maximum exter</p><p> 4.6 STARTING, STOPPING. AND CONTROLLING THE TIMERS</p><p> Figure 4 2 illustrates the various configurations for the tim
70、er registers, TLx and THx, and the timer overflow flags, TFx. The two possibilities for clocking the timers are shown in Figure 4-3. We now demonstrate how to start stop, and control the timers.</p><p> The
71、 simplest method for starting and stopping the timers it with the run control bit ,TRx, in TCON. TRx is clear after a system reset, thus, the timers are disabled (stopped) by default .TRx is set by software to start the
72、timers (See Figure 4-4 ).</p><p> Since TRx is in the bit-addressable register TCON, it is easy to start and stop thetimers within a program. For example ,Timer 0 is started by</p><p> SETB
73、 TR0</p><p> and stopped by</p><p> CLR TR0</p><p> The assembler will perform the necessary symbolic conversion from "TRO" to the correct bit address. SETB TR0 is
74、 exactly the same as SETB 8 CH.</p><p> Another method for controlling the timers is with the GATE bit in TMOD and the external input . Setting GATE= 1 allows the timer to be controlled by . This is useful
75、for pulse width measurements as follows. Assume is low but pulses high for a period of time to be measured. Initialize Timer 0 for mode 2,16-bit timer mode, with TL0/TH0 =0000H, GATE=1, and TRO=1. When goes high, the t
76、imer is "gated on" and is clocked at a rate of 1 MHz. When goes low, the timer is "gated off " and the duration o</p><p> To complete The picture, Figure 4-5 illustrates. Timer 1 operat
77、ing in mode 1 as a 16-bit timer . As well as the timer registers TL1/TH1 and the overflow flag TF1, the diagram shows the possibilities for the clocking source and for starting, stopping, and controlling the timer.</p
78、><p> 4.7 INITIALIZING AND ACCESSING TIMER REGISTERS</p><p> The timers are usually initialized once at the beginning of a program to set the correct operating mode. Thereafter, within the body o
79、f a program, the timers are started, stopped, flag bits tested and cleared, timer registers read or updated, and so on. as required in the application.</p><p> TMOD is the first register initialized. Since
80、it sets the mode of operation . For example, the following instruction initializes Timer 1 as a 16-bit timer (mode 1) clocked by the on-chip oscillator (interval timing):</p><p> MOV TMOD#00010000B</p&
81、gt;<p> The effect of this instruction is to set M1= 0 and M0=1 for mode1, leave = 0 and GATE=0 for internal clocking, and clear the Timer 0 mode bits (See Table 4-2). Of course, the timer does not actually begin
82、 timing until its run control bit. TR1 is set.</p><p> If an initial count is necessary, the timer registers TL1/TH1 must also be initialized. Remembering that the timers count up and set the overflow flag
83、on an FFFFH-to-0000H transition ,a 100 us interval could be timed by initializing TL1/TH1 to 100 counts less than 0000H .The correct value is - 100 or FF9CH. The following instructions do the job:</p><p> M
84、OV TL1, #9CH</p><p> MOV TH1, #0FFH</p><p> The timer is then started by selling the run control bit as follows:</p><p><b> SETB TR 1</b></p><p> 4.
85、7.1 Reading a Timer "On the Fly"</p><p> In some applications, it is necessary to read the value in the timer registers "on the fly." There is a potential problem that is simple to gua
86、rd against in software. Since two timer registers must be read, a "phase error'' may occur if the low-byte overflows into the high-byte between the two read operations. A value may be read that never existed
87、. The solution is to read the high-byte first, then the low-byte, and then read the high-byte again. If the high-byte has changed, repeat the read ope</p><p> AGAIN: MOV A, THl</p><p> MOV
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論