ОТЧЕТ
По лабораторной работе №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к |
Вывод очередной точки из таблицы на ЦАП |
Запуск таймера |
НЕТ
ДА
ДА
Вывод очередной точки из таблицы на ЦАП |