Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ВЫЧ.ТЕХ / Лабораторные работы(Борисов) / Исследование таймеров

.docx
Скачиваний:
41
Добавлен:
11.04.2015
Размер:
39.97 Кб
Скачать

Федеральное агентство связи РФ

Сибирский Государственный Университет

Телекоммуникаций и Информатики

Кафедра САПР

Лабораторная работа №4

«Изучение таймеров микроконтроллера»

Выполнил:

Лупашко Е.М. гр. Р-73

Проверил:

Борисов А.В.

Новосибирск 2011

1 Цели работы

1 Изучить особенности работы таймеров микроконтроллера. 2 Изучить методику конфигурирования таймеров. 3 Научиться формировать с помощью таймера временные интервалы. 4 Изучить способы отладки программ на учебном лабораторном стенде LESO1.

2 Структурная схема таймера

Рисунок 2.1 – Структурная схема Таймера 0 в режиме 1.

3 Расчет начальных значений счетных регистров

4 Обоснование выбора значения регистра TMOD

7

6

5

4

3

2

1

0

Gate

C/T

M1

M0

Gate

C/T

M1

M0

Биты управления Таймером 1

Биты управления Таймером 0

Рисунок 4.1 – Назначение бит регистра TMOD

Поскольку в работе используется Таймер 0 – биты 4-7 не используются. Таймер 0 работает в режиме таймера (подсчет импульсов внутреннего генератора), поэтому биту 2 присваивается 0. В режиме таймера бит Gate не используется, поэтому биту 3 также присваивается 0. Таймер 0 работает в режиме 1, поэтому битам 1 и 0 присваивается значение 01.

5 Графическая схема алгоритма программы

6 Исходный текст программы

int I;

sbit P00=0x80; //LED

sfr TMOD=0x89;

sfr TCON=0x88;

sbit TF0=0x8D;

sbit TR0=0x8C;

sfr TL0=0x8A;

sfr TH0=0x8C;

delay() { //30 ms delay-function beinning

TMOD=0x01; //timer initialization

TH0=0x0A;

TL0=0x3D;

TR0=1; //timer starts

while(!TF0);

TF0=0;

} //30 ms delay-function ending

main() {

while(1) { //eternal cycle

P00=1; //LED switches on

for (I=1; I<200; I++) //6 sec delay

{delay();}

P00=0; //LED switches off

for (I=1; I<200; I++) //6 sec delay

{delay();}

}}

7 Файл листинга

C51 COMPILER V8.12 LAB4 11/18/2011 18:33:14 PAGE 1

C51 COMPILER V8.12, COMPILATION OF MODULE LAB4

OBJECT MODULE PLACED IN Lab4.OBJ

COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE Lab4.c BROWSE DEBUG OBJECTEXTEND SYMBOLS

line level source

1 int I;

2 sbit P00=0x80; //LED

3 sfr TMOD=0x89;

4 sfr TCON=0x88;

5 sbit TF0=0x8D;

6 sbit TR0=0x8C;

7 sfr TL0=0x8A;

8 sfr TH0=0x8C;

9 delay() { //30 ms delay-function beinning

10 1 TMOD=0x01; //timer initialization

11 1 TH0=0x0A;

12 1 TL0=0x3D;

13 1 TR0=1; //timer starts

14 1 while(!TF0);

15 1 TF0=0;

16 1 } //30 ms delay-function ending

17 main() {

18 1 while(1) { //eternal cycle

19 2 P00=1; //LED switches on

20 2 for (I=1; I<200; I++) //6 sec delay

21 2 {delay();}

22 2 P00=0; //LED switches off

23 2 for (I=1; I<200; I++) //6 sec delay

24 2 {delay();}

25 2 }}

C51 COMPILER V8.12 LAB4 11/18/2011 18:33:14 PAGE 2

NAME CLASS MSPACE TYPE OFFSET SIZE

==== ===== ====== ==== ====== ====

delay. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----

main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----

P00. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0080H 1

TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1

I. . . . . . . . . . . . . . . . . . . PUBLIC DATA INT 0000H 2

TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1

TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1

TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1

TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1

MODULE INFORMATION: STATIC OVERLAYABLE

CODE SIZE = 81 ----

CONSTANT SIZE = ---- ----

XDATA SIZE = ---- ----

PDATA SIZE = ---- ----

DATA SIZE = 2 ----

IDATA SIZE = ---- ----

BIT SIZE = ---- ----

END OF MODULE INFORMATION.

C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)

8 Выводы

В ходе выполнения данной лабораторной работы я познакомился с особенностями таймеров микроконтроллера ADuC842.

- изучил структурную схему таймеров данного микроконтроллера и их назначение;

- изучил различные режимы работы таймеров и область их применения;

- научился конфигурировать таймеры при помощи регистра специальных функций TMOD;

- научился управлять работой таймера при помощи регистра специальных функций TCON;

- приобрел навыки по формированию временных интервалов произвольной длительности при помощи таймеров;

- оценил погрешность формирования временного интервала. Величина погрешности: