You are on page 1of 8

Universidad Tecnológica de Santiago

(UTESA)
Práctica timers

Por:
Joseph Capellán
1-16-1175

Para:
Ing. Raul Toribio

De la materia:
Microcontroladores II

Dado el día 05 del mes de marzo del año 2022.


Santiago de los Caballeros, República Dominicana.
Diseñe un programa (Time0) que genere una onda cuadrada en
P0.0 de Fosc= 50khz

Periodo de onda:
TH0=?

TL0=?
1 1
𝑇(𝑜𝑛 + 𝑜𝑓𝑓) = 𝐹 𝑇(𝑜𝑛 + 𝑜𝑓𝑓) = 50𝑘ℎ𝑧 = 𝟐𝟎𝒔

1
𝑇𝑜𝑛 ( ) 𝑇𝑜𝑛 (𝟐𝟎𝒔 )
𝑇𝑜𝑓𝑓
= ( 𝐹
2
) 𝑇𝑜𝑓𝑓
= (
2
) = 𝟏𝟎𝒔

Regla de tres:
1 𝑐𝑖𝑐𝑙𝑜 𝑚𝑎𝑞 1𝑠 (10𝑠∗1 𝑐𝑖𝑐𝑙𝑜 𝑚𝑎𝑞)
→ 𝑋= = 𝟏𝟎 𝒄𝒊𝒄𝒍𝒐 𝒎𝒂𝒒
𝑋 𝑇 1𝑠

Modo 0:
Modo 0: TH0.TL0 = 2X.2X = 25 =32

TL0 = 32 – 10 = 2216H

#include <REG51.H>

sbit led_1 = P0^0;

void main(void)

TMOD = 0x00;

TCON = 0X00;

while(1)

TL0 = 0x16; GENERALMENTE HAY QUE OPTIMIZAR


TH0 =0x01;

TR0 = 1;

while(TF0 != 1);

TF0 = 0;

TR0 = 0;

Led_1 =~led_1;}

MODO 1:
Modo 0: TH0.TL0 = 2X.2X = 28 =256

TL0 = 256– 10 = 246F6

#include <REG51.H>

sbit led = P0^0;

void main(void)

TMOD = 0x01;

TCON = 0X00;

while(1)

TL0 = 0XF6; GENERALMENTE HAY QUE OPTIMIZAR

TH0 = 0x01;

TR0 = 1;

while(TF0 != 1);
TF0 = 0;

TR0 = 0;

Led_1 =~led_1;}

MODO 2:

Modo 0: TH0.TL0 = 2X.2X = Valor que quiero iniciar

TL0 = 10A

#include <REG51.H>

sbit led_1 = P0^0;

void main(void)

TMOD = 0x02;

TCON = 0X00;

TH0 = 0xFF;

TL0 = 0xA; GENERALMENTE HAY QUE OPTIMIZAR

while(1)

TR0 = 1;

while(TF0 != 1);

TF0 = 0;

TR0 = 0;
Led_1 =~led_1; }

Diseñe un programa (Timer1) que genere un delay de 0.5seg (LED


ON/OFF)

Regla de tres:
1 𝑐𝑖𝑐𝑙𝑜 𝑚𝑎𝑞 1𝑠 (0.5 ∗ 1 𝑐𝑖𝑐𝑙𝑜 𝑚𝑎𝑞)
→ 𝑋= = 𝟓𝟎𝟎𝒙𝟏𝟎𝟑 𝒄𝒊𝒄𝒍𝒐 𝒎𝒂𝒒
𝑋 𝑇 1𝑠

M0=213

𝟓𝟎𝟎𝒙𝟏𝟎𝟑
= = 𝟔𝟏 → 𝟑𝑫
𝟐𝟏𝟑

Modo 0:
#include <REG51.H>

Int x;

sbit led_1 = P0^0;

void main(void)

TMOD = 0x00;

TCON = 0X00;

while(1)

TH0 = 0;

TL0 = 0;
TR0 = 1;

For(x=0; x<61; x++){

while(TF0 != 1);

TF0 = 0;

TR0 = 0;}

Led_1 =~led_1;}

MODO 1:

M0=213

𝟓𝟎𝟎𝒙𝟏𝟎𝟑
= = 𝟕. 𝟔 → 𝟖
𝟐𝟏𝟔

#include <REG51.H>

sbit led_1 = P0^0;

int x;

void main(void)

TMOD = 0x01;

TCON = 0X00;

while(1)

TH0 = 0;

TL0 = 0; GENERALMENTE HAY QUE OPTIMIZAR

TR0 = 1;
For(x=0; x<8; x++){

while(TF0 != 1);

TF0 = 0;

TR0 = 0;}

Led_1 =~led_1;}

MODO 2:

M0=28

𝟓𝟎𝟎𝒙𝟏𝟎𝟑
= = 𝟏𝟗𝟓𝟑 → 𝟕𝑨𝟏
𝟐𝟖

#include <REG51.H>

Int x;

sbit led_1 = P0^0;

void main(void)

TMOD = 0x02;

TCON = 0X00;

TH0 = 0;

TL0 = 0; GENERALMENTE HAY QUE OPTIMIZAR

while(1)

TR0 = 1;
For(x=0; x<1953; x++){

while(TF0 != 1);

TF0 = 0;

TR0 = 0;

Led_1 =~led_1;}

You might also like