КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Пример программы формирования сигнала произвольной формы; Период повторения сигнала - 8 Гц ; Количество уровней на периоде - 250 ; Шаг квантования - 1/(8 * 250) = 0.0005 с = 500 мкс ; Форма сигнала задана таблицей в ПЗУ ; ======================================= ; Константы Tic EQU -(500-20) ; 500 мкс с поправкой ; Основная программа call InitTimer ; Нстройка таймера
MainLoop: call Vawe ; Вывод сигнала 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 ; Подпрограмма формирования сигнала Vawe: mov DPTR,#VaweTbl ; Загрузка адреса таблицы 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
VaweTbl: db 1,2,3,4,5,6,7,8,8,8 db 8,8,8,8,8,8,8,8,8,8 db 9,9,9,9,9,9,9,9,9,9 db 10,10,10,10,10,10,10,10,10,10 db 10,10,10,10,10,10,10,10,10,10
db 50,60,70,80,90,100,100,100,100,100 db 100,100,100,100,100,100,100,100,100,100 db 150,150,150,150,150,150,150,150,150,150 db 150,150,100,100,100,100,100,100,100,100 db 100,100,100,100,100,100,100,100,100,100
db 100,100,100,100,100,100,100,100,100,100 db 100,100,100,100,100,100,100,100,100,100 db 100,100,100,100,100,100,100,100,100,100 db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,90,90,90,90,90,90,90
db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,90,90,90,90,90,90,90
db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,90,90,90,90,90,90,90 db 90,90,90,80,70,30,10,5,2,1
END ЛАБОРАТОРНАЯ РАБОТА № 4 ИСПОЛЬЗОВАНИЕ ПРЕРЫВАНИЙ ПРИ ФОРМИРОВАНИИ СИГНАЛОВ
Цель работы Целью данной работы является изучение системы прерываний микроконтроллера серии МК51. Рабочее задание 1. Разработать программу в соответствии с вариантом рабочего задания. 2. Добиться безошибочной трансляции программы в среде mVision. 3. В режиме отладки осуществить пошаговое выполнение программы. При проверке работоспособности программы воспользуйтесь логическим анализатором среды mVision. 4. Ответить на контрольные вопросы. Контрольные вопросы 1. Какую функцию выполняет система прерывания в микропроцессорных системах? 2. В какой последовательности микропроцессор обрабатывает прерывание? 3. Что такое приоритет прерывания? 4. Что такое векторные и радиальные прерывания? 5. В чем различие вызова подпрограмм обработки прерываний и обычных подпрограмм? 6. Как обрабатываются прерывания в микроконтроллерах серии МК51? 7. В чем различия команд RET и RETI микроконтроллера серии МК51? 8. В чем различие в обработке внешних прерываний при их формировании по фронту и по уровню? 9. Какими средствами можно вызвать подпрограмму обработки внешнего прерывания? Варианты заданий 1. Программа формирования ШИМ сигнала с коэффициентом заполнения 0,4 и 0,6, задаваемым по внешнему прерыванию от двух сигналов, и с периодом 5 кГц. ШИМ сигнал формируется по прерыванию от таймеров. 2. Программа измерения длительности одиночного импульса. Диапазон измерения 100... 200000 мкс. Для измерения использовать внешний запуск таймера и внешнее прерывание от измеряемого импульса. Результат измерения хранится в переменной. 3. Программа формирования прерывистого звукового сигнала частотой 1 кГц с длительностью звучания 200 мс и паузой 100 мс. Сигнал запускается от внешнего прерывания. 4. Программа формирования ШИМ сигнала с пилообразным изменением коэффициента заполнения. Формирователь запускается по внешнему прерыванию. Частота сигнала 1 кГц.
|