Mga timer at counter sa 8051 Microcontroller at ang mga Application nito

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Marami sa mga aplikasyon ng microcontroller nangangailangan ng pagbibilang ng mga panlabas na kaganapan tulad ng dalas ng mga tren ng pulso at pagbuo ng tumpak na pagkaantala ng panloob na oras sa pagitan ng mga pagkilos ng computer. Ang parehong mga gawaing ito ay maaaring ipatupad ng mga diskarte sa software, ngunit ang mga loop ng software para sa pagbibilang, at ang tiyempo ay hindi magbibigay ng eksaktong resulta sa halip na mas mahalagang mga pagpapaandar ay hindi tapos. Upang maiwasan ang mga problemang ito, ang mga timer at counter sa mga micro-control ay mas mahusay na mga pagpipilian para sa mga simple at murang aplikasyon. Ang mga timer at counter na ito ay ginagamit bilang nakakagambala sa 8051 microcontroller .

Mayroong dalawang 16-bit timer at counter sa 8051 microcontroller : timer 0 at timer 1. Ang parehong mga timer ay binubuo ng 16-bit register kung saan ang mas mababang byte ay nakaimbak sa TL at ang mas mataas na byte ay nakaimbak sa TH. Maaaring gamitin ang timer bilang isang counter pati na rin para sa pagpapatakbo ng tiyempo na nakasalalay sa mapagkukunan ng mga pulso ng orasan sa mga counter.




Mga timer at counter

Mga timer at counter

Ang mga counter at timer sa 8051 microcontroller ay naglalaman ng dalawang espesyal na rehistro ng pag-andar: TMOD (Timer Mode Register) at TCON (Timer Control Register), na ginagamit para sa pag-aktibo at pag-configure timer at counter .



Control ng Timer Mode (TMOD): Ang TMOD ay isang 8-bit na rehistro na ginagamit para sa pagpili ng timer o counter at mode ng mga timer. Ang mas mababang 4-bits ay ginagamit para sa kontrol ng pagpapatakbo ng timer 0 o counter0, at ang natitirang 4-bits ay ginagamit para sa kontrol ng operasyon ng timer1 o counter1. Ang rehistro na ito ay naroroon sa rehistro ng SFR, ang address para sa rehistro ng SFR ay ika-89.

Control ng Timer Mode (TMOD)

Control ng Timer Mode (TMOD)

Gate: Kung ang bit ng gate ay nakatakda sa '0', pagkatapos ay maaari naming simulan at ihinto ang timer ng 'software' sa parehong paraan. Kung ang gate ay nakatakda sa '1', pagkatapos ay maaari naming maisagawa ang hardware timer.

C / T: Kung ang C / T bit ay '1', pagkatapos ito ay kumikilos bilang isang counter mode, at katulad din kapag itinakda ang C +
= / T bit ay '0' kumikilos ito bilang isang mode ng timer.


Mga piling piraso ng mode: Ang M1 at M0 ay mga mode select bit, na ginagamit upang piliin ang mga pagpapatakbo ng timer. Mayroong apat na mga mode upang mapatakbo ang mga timer.

Mode 0: Ito ay isang 13-bit mode na nangangahulugang ang pagpapatakbo ng timer ay nakumpleto ng mga '8192' na pulso.

Mode 1: Ito ay a16-bit mode, na nangangahulugang nakumpleto ang operasyon ng timer ng maximum na mga pulso ng orasan na '65535'.

Mode 2: Ang mode na ito ay isang 8-bit auto reload mode, na nangangahulugang ang pagpapatakbo ng timer ay nakumpleto na may lamang '256' na mga pulso ng orasan.

Mode 3: Ang mode na ito ay isang split-timer mode, na nangangahulugang ang mga halaga ng paglo-load sa T0 at awtomatikong sinisimulan ang T1.

Mga Pinili ng Mode

Mga Pinili ng Mode

Pagpili ng mode Mga halaga ng timer at counter sa 8051

Mga halaga ng pagpili ng mode ng mga timer at counter

Mga halaga ng pagpili ng mode ng mga timer at counter

Pagrehistro ng Timer Control (TCON): Ang TCON ay isa pang rehistro na ginagamit upang makontrol ang mga pagpapatakbo ng counter at timer sa mga microcontroller. Ito ay isang 8-bit register kung saan ang apat na upper bits ay responsable para sa mga timer at counter at ang mga lower bit ay responsable para sa mga nakakagambala.

Rehistro ng Timer Control (TCON)

Rehistro ng Timer Control (TCON)

TF1: Ang TF1 ay kumakatawan sa 'timer1' na flag bit. Kailan man kinakalkula ang oras-pagkaantala sa timer1, ang TH1 at TL1 ay umabot sa maximum na halaga na awtomatikong 'FFFF'.

EX: habang (TF1 == 1)

Kailan man ang TF1 = 1, pagkatapos ay i-clear ang flag bit at itigil ang timer.

TR1: Ang TR1 ay nangangahulugang pagsisimula o paghinto ng timer1. Ang pagsisimula ng timer na ito ay maaaring sa pamamagitan ng pagtuturo ng software o sa pamamagitan ng pamamaraan ng hardware.

EX: gate = 0 (simulan ang timer 1 sa pamamagitan ng pagtuturo ng software)
TR1 = 1 (Start timer)

TF0: Ang TF0 ay nangangahulugang flager-bit ng 'timer0'. Kailan man kinakalkula ang pagkaantala ng oras sa timer1, ang TH0 at TL0 ay umabot sa isang maximum na halaga na 'FFFF', awtomatikong.

EX: habang (TF0 == 1)
Kailan man ang TF0 = 1, pagkatapos ay i-clear ang flag bit at itigil ang timer.

TR0: Ang TR0 ay nangangahulugang pagsisimula o paghinto ng 'timer0' sa pagsisimula ng timer na ito ay maaaring sa pamamagitan ng pagtuturo ng software o sa pamamagitan ng pamamaraan ng hardware.

EX: gate = 0 (simulan ang timer 1 sa pamamagitan ng pagtuturo ng software)
TR0 = 1 (Start timer)

Mga Pagkalkula ng Pagkaantala sa Oras para sa 8051 Microcontroller

Gumagana ang 8051 microcontroller na may dalas na 11.0592 MHz.

Dalas 11.0592MHz = 12 pules

1 orasan pulso = 11.0592MHz / 12

F = 0.921 MHz

Pag-antala ng oras = 1 / F

T = 1 / 0.92MHz

T = 1.080506 sa amin (para sa ‘1’ cycle)

1000us = 1MS

1000ms = 1sec

Pamamaraan upang Kalkulahin ang Program ng pagkaantala

1. Una dapat nating mai-load ang halaga ng rehistro ng TMOD para sa 'Timer0' at 'Timer1'in sa iba't ibang mga mode. Halimbawa, kung nais nating patakbuhin ang timer1 sa mode1 dapat itong mai-configure bilang 'TMOD = 0x10'.

2. Sa tuwing pinapatakbo namin ang timer sa mode 1, kinukuha ng timer ang maximum na pulso na 65535. Kung gayon ang kinakalkula na pulso ng pagkaantala ng oras ay dapat ibawas mula sa pinakamataas na pulso, at pagkatapos ay mai-convert sa hexadecimal na halaga. Ang halagang ito ay dapat na mai-load sa timer1 mas mataas na bit at mas mababang mga piraso. Ang operasyon ng timer na ito ay na-program na gamit naka-embed na C sa isang microcontroller .

Halimbawa: pagkaantala ng 500us oras

500us / 1.080806us

461pulses

P = 65535-461

P = 65074

65074 na naipaabot ng hexa decimal = FE32

TH1 = 0xFE

TL1 = 0x32

3. Simulan ang timer1 'TR1 = 1'

4. Subaybayan ang flag bit 'habang (TF1 == 1)'

5. I-clear ang bit ng flag na 'TF1 = 0'

6. I-clear ang timer na 'TR1 = 0'

Mga Halimbawang Programa:

Programa- 1

Programa- 1

Programa- 2

Programa- 2

Programa- 3

Programa- 3

Mga counter sa 8051

Maaari kaming gumamit ng isang counter sa pamamagitan ng pagpapanatiling medyo mataas ang C / T, ibig sabihin, ang lohika na '1' sa rehistro ng TMOD. Para sa mas mahusay na pag-unawa, nagbigay kami ng isang programa na gumagamit ng timer 1 bilang isang counter. Dito nakakonekta ang mga LED sa 8051 Port 2, at ang switch sa timer1 pin P3.5 at samakatuwid, kung ang switch ay pinindot, ang halaga ay mabibilang. Kung hindi man, isang panlabas na konektado na sensor sa counter pin na ito bilang input ay ginagawa ang pagpapatakbo ng pagbibilang na ito.

Counter Program

Counter Program

Mga aplikasyon ng timer at counter sa 8051

Digital Counter na may 8051

Ang Digital counter na may 8051 ay nakakamit sa pamamagitan ng pagprograma ng microcontroller tulad ng tinalakay sa itaas at sa pamamagitan ng paglakip ng isang sensor system dito. Ang object counter na ito ay gumagamit ng IR sensor na nakakakita ng balakid na malapit dito at nagbibigay-daan din sa pin ng microcontroller 06. Kapag ang isang bagay ay dumaan sa mga sensor, pagkatapos ang microcontroller ay nakakakuha ng isang nakakagambala signal mula sa mga IR sensor at nadagdagan ang bilang na ipinapakita sa7-segment na display.

Digital Counter na may 8051

Digital Counter na may 8051

Circuit ng pagkaantala ng oras Paggamit ng 8051 microcontroller

Ipinapakita ng figure sa ibaba kung paano maipatutupad ang pagpapatakbo ng timer para sa paglipat ng mga LED sa isang mabisang paraan. Ang operasyon ng pagkaantala ng oras para sa hanay ng mga LED ay naka-program sa isang microcontroller sa paraang tinalakay sa itaas. Dito, isang hanay ng mga LED ay konektado sa port 2 na may isang karaniwang sistema ng supply. Kapag ang circuit na ito ay naka-on batay sa pagkaantala ng oras programa sa microcontroller Naaangkop, ang mga LED na ito ay nakabukas.

Circuit ng pagkaantala ng oras

Circuit ng pagkaantala ng oras

Ito ay tungkol sa 8051 timer at mga counter ng microcontroller na may pangunahing pag-program at mga circuit ng application. Inaasahan namin na ang impormasyon ng artikulong ito ay maaaring magbigay sa iyo ng sapat na data upang maunawaan ang konsepto nang mas mabuti. Bukod dito, ang anumang mga pang-teknikal na pagdududa sa pagprograma 8051 at mga circuit nito, maaari kang makipag-ugnay sa amin sa pamamagitan ng pagkomento sa ibaba.

Mga Kredito sa Larawan:

  • Digital Counter na may 8051 ni circuitstoday
  • Oras ng pagkaantala ng circuit sa pamamagitan ng vshamu