新聞中心

延遲使用8051定時(shí)器

作者: 時(shí)間:2023-04-10 來(lái)源:電子產(chǎn)品世界 收藏

在這個(gè)項(xiàng)目中,我將討論一下中的,以及如何使用生成一個(gè)延遲。

本文引用地址:http://m.butianyuan.cn/article/202304/445432.htm

時(shí)間延遲的產(chǎn)生是嵌入式系統(tǒng)中最重要的概念。大多數(shù)情況下,我們需要在任何應(yīng)用中的兩個(gè)動(dòng)作之間產(chǎn)生精確的時(shí)間延遲。我們可以使用像LOOPs這樣的技術(shù)或使用內(nèi)置的延遲函數(shù)來(lái)產(chǎn)生時(shí)間延遲。

但這些都不是產(chǎn)生時(shí)間延遲的精確方法,因此我們將使用來(lái)產(chǎn)生精確的時(shí)間延遲。這個(gè)概念類似于時(shí)間延遲繼電器的概念。

項(xiàng)目背后的原理

大多數(shù)的控制器都有內(nèi)置的定時(shí)器。這些定時(shí)器不僅用于產(chǎn)生時(shí)間延遲,而且還用于計(jì)數(shù)目的。當(dāng)一個(gè)動(dòng)作或事件發(fā)生時(shí),計(jì)數(shù)器的值會(huì)遞增1。

另一方面,定時(shí)器被用來(lái)產(chǎn)生延遲。中的定時(shí)器是由SFRs(特殊功能寄存器)控制的。不同操作模式下的定時(shí)器是由特殊功能寄存器配置的。

這個(gè)項(xiàng)目的主要原理是在特殊功能寄存器的幫助下,用計(jì)時(shí)器產(chǎn)生一個(gè)延遲。

Delay using 8051 Timers Image 1

使用8051定時(shí)器的 圖像1

Delay using 8051 Timers Image 2

使用8051定時(shí)器的 圖片2

電路圖 

盡管外部元件(除了振蕩器)在產(chǎn)生延遲方面沒有什么作用,但我還是做了一個(gè)簡(jiǎn)單的電路,我將用1秒的延遲來(lái)閃爍一個(gè)LED,這個(gè)延遲將在8051定時(shí)器的幫助下產(chǎn)生。

Delay using 8051 Timers Circuit Diagram

使用8051定時(shí)器的電路圖所需元件

AT89C51單片機(jī)

8051編程器

編程電纜

LED

330Ω 電阻器

2 - 10KΩ 電阻器

10μF/16V 電容

2 - 33pF 電容

11.0592MHz晶體

按鈕 

電路設(shè)計(jì)

這個(gè)電路的主要部件是AT89C51控制器。8051微控制器的復(fù)位電路是由一個(gè)按鈕、一個(gè)10KΩ電阻和一個(gè)10μF電容組成的。

一個(gè)11.0592MHz的uartz晶體和兩個(gè)33pF的陶瓷電容組成了8051微控制器的振蕩器電路,并連接到第18和19腳。

最后,一個(gè)LED通過(guò)一個(gè)330Ω的電阻連接到P2.0上,以顯示時(shí)間延遲。

8051定時(shí)器 寄存器描述

TMOD 寄存器

TMOD Register

上位數(shù)(TMOD.7至TMOD.4)用于配置定時(shí)器1,下位數(shù)(TMOD.3至TMOD.0)用于配置定時(shí)器0。

GATE:如果該引腳為高電平,那么當(dāng)微控制器的相應(yīng)INT引腳出現(xiàn)中斷時(shí),相應(yīng)的定時(shí)器就會(huì)被激活。

C/T:該引腳用于選擇定時(shí)器或計(jì)數(shù)器。如果該引腳為高電平,則作為一個(gè)計(jì)數(shù)器來(lái)計(jì)算外部事件。如果該引腳為低電平,則作為定時(shí)器使用,產(chǎn)生時(shí)間延遲。

M1和M0:這些位用于選擇不同的定時(shí)器模式。

M1 and M0 Bits

M1和M0位

13位定時(shí)器:該模式使用高字節(jié)的8位和低字節(jié)的其余5位。在這種模式下,定時(shí)器的值從0000H到1FFFH。

16位定時(shí)器:這種模式最常用于產(chǎn)生時(shí)間延遲。在這種模式下,所有的16位都用于定時(shí)器,值從0000H到FFFH不等。

如果數(shù)值XXXXH被加載到定時(shí)器寄存器中,那么產(chǎn)生的時(shí)間延遲等于[(FFFH-XXXXH+1)*(一個(gè)時(shí)鐘脈沖的周期)]。

一個(gè)時(shí)鐘脈沖的時(shí)間周期等于1.085μs的11.0592MHz頻率。

8位自動(dòng)重新加載: 在這種模式下,初始值被加載到高字節(jié),同樣的值被加載到低字節(jié)。計(jì)時(shí)器的值從00H到FFH。該模式用于設(shè)置串行通信的波特率。

分割模式: 在這種模式下,定時(shí)器被分成兩個(gè)8位定時(shí)器。這些8位定時(shí)器可以從00H到FFH計(jì)數(shù)。這種模式用于我們需要額外的8位定時(shí)器或計(jì)數(shù)器的應(yīng)用中。

TCON寄存器

這是一個(gè)特殊功能的寄存器,用于控制定時(shí)器的運(yùn)行。在這個(gè)寄存器中,只有上面的幾位是用來(lái)控制定時(shí)器的,其余的位是用來(lái)控制中斷的。

TCON Register

TF1: 該位在定時(shí)器1溢出時(shí)被自動(dòng)設(shè)置為1。

TR1:該位用于啟用定時(shí)器1。該引腳必須為高電平才能啟用定時(shí)器1。

TF0:當(dāng)定時(shí)器0溢出時(shí)自動(dòng)設(shè)置為1。

TR0:在此位上置1,以啟用定時(shí)器0。

使用8051定時(shí)器產(chǎn)生精確延時(shí)的步驟

為了準(zhǔn)確地產(chǎn)生時(shí)間延遲、用定時(shí)器的時(shí)鐘周期來(lái)劃分時(shí)間延遲。

NNNN=時(shí)間延遲/1.085μs

從65536中減去結(jié)果值。

MMMM=65536-NNN

將差值轉(zhuǎn)換為十六進(jìn)制形式。

MMMMd=XXYYh

將此值加載到定時(shí)器寄存器中。

TH=XXh

TL=YYh

產(chǎn)生1ms延遲的延遲函數(shù)

為了產(chǎn)生1ms的延遲,使用上述步驟的計(jì)算方法如下。

NNNN=1ms/1.085μs≈922。

MMMM = 65536-922 = 64614

64614的十六進(jìn)制=FC66h

用0xFC加載TH,用0x66加載TL

下面的函數(shù)將使用8051定時(shí)器0產(chǎn)生一個(gè)1ms的延遲。

使用定時(shí)器進(jìn)行LED閃爍的代碼

為了演示使用8051定時(shí)器的延遲功能,我將閃爍一個(gè)周期為2秒的LED,即LED將被打開1秒和關(guān)閉1秒。

如何操作?

首先將程序刻錄到AT89C51控制器上

按照電路圖的要求進(jìn)行連接

打開電源,現(xiàn)在你可以觀察到LED的切換,有一定的時(shí)間延遲。

如果你把輸出連接到示波器,你可以觀察到方波。

電路應(yīng)用

在嵌入式系統(tǒng)應(yīng)用中,我們需要精確的時(shí)間延遲。

這個(gè)系統(tǒng)用來(lái)產(chǎn)生方波。

在超聲波模塊應(yīng)用中使用



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉