Алгоритм работы программы

ОТЧЕТ

По лабораторной работе №8

«Использование таймера при формировании сигналов заданной формы»

Вариант №9

Студент группы 08-РС

Тарасов А.Е.

Преподаватель

Пугачев А.А.

 

Брянск 2011

Цель работы

Целью данной работы является изучение таймера и портов ввода-вывода микроконтроллера серии МК51.

Задание

Программа формирования синусоидального сигнала с частотой 8 Гц.

 

Листинг программы

; Количество уровней на периоде - 250

; Шаг квантования - 1/(8 * 250) = 0.0005 с = 500 мкс

; Форма сигнала задана таблицей в ПЗУ

; =======================================

; Константы

Tic EQU -(500-20) ; 500 мкс с поправкой

; Основная программа

call InitTimer ; Настройка таймера

 

MainLoop:

call Wave ; Вывод сигнала

jmp MainLoop ; Зациклить на выводе

 

; Подпрограммы

; Подпрограмма настройки таймера

InitTimer:

mov TMOD,#00000001b

ret

 

; Подпрограмма временной задержки 500 мкс

Delay:

mov TH0,#high(Tic) ; Загрузка таймера

mov TL0,#low(Tic)

setb TR0 ; Запуск таймера

jnb TF0,$ ; Ожидание переполнения

clr TF0 ; Сброс флага переполнения

clr TR0 ; Останов таймера

ret

; Подпрограмма формирования сигнала

Wave:

mov DPTR,#WaveTbl ; Загрузка адреса таблицы

mov R7,#0 ; Обнулить счетчик точек кривой

mov R6,#250 ; Загрузка счетчика цикла

Next:

mov A,R7 ; Номер очередной точки

movc A,@A+DPTR ; Очередная точка кривой

mov P0,A ; Вывести точку в порт (на ЦАП)

inc R7

call Delay

djnz R6,Next

ret

 

WaveTbl:

 

db 50,51,52,53,55,56,57,58,59,61,62,64

db 65,66,67,68,70,71,73,74,75,76,77,78

db 79,80,81,82,83,84,85,86,87,88,89,90

db 90,91,91,92,93,94,95,95,96,96,97,97

db 98,98,98,98,98,98,99,99,99,99,99,100,100,100,100

 

db 100,100,100,100,99,99,99,99,99,98,98,98,98,98,98

db 97,97,96,96,95,95,94,93,92,91,91,90

db 90,89,88,87,86,85,84,83,82,81,80,79

db 78,77,76,75,74,73,71,70,68,67,66,65

db 64,62,61,59,58,57,56,55,53,52,51,50

 

db 50,48,47,45,44,43,42,41,39,38,37,36

db 35,34,33,32,30,29,27,26,25,24,23,22

db 21,20,19,18,17,16,15,14,13,12,11,10

db 10,9,8,7,6,6,5,5,4,4,3,3

db 2,2,2,2,1,1,1,1,1,0,0,0,0,0,0

 

db 0,0,0,0,0,0,1,1,1,1,1,2,2,2,2

db 3,3,4,4,5,5,6,6,7,8,9,10

db 10,11,12,13,14,15,16,17,18,19,20,21

db 22,23,24,25,26,27,29,30,32,33,34,35

db 36,37,38,39,41,42,43,44,45,47,48,50

 

END

 

Результаты работы программы проверяем в окне Logic Analyzer среды uVision. Сформированный синусоидальный сигнал выводится на порт Р0.

 

Рис.1

На рисунке 1 представлен сформированный сигнал. Он соответствует требованиям, предъявляемым в задании: синусоидальный, с частотой 8 Гц (Т=0.125с).

Алгоритм работы программы

Начало
Инициализация
Установка режима работы таймера

 

 


 

 

Прошло 500 мкс   rк
Вывод очередной точки из таблицы на ЦАП
>
Запуск таймера

 

 


 

НЕТ

 

ДА

 

ДА

Вывод очередной точки из таблицы на ЦАП