русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Временная задержка малой длительности.


Дата добавления: 2015-08-31; просмотров: 935; Нарушение авторских прав


Предположим, в основной программе необходимо реализовать задержку 1000 мкс. Фрагмент программы требуется оформить в виде подпрограммы т.к. предполагается, что основная программа будет к ней многократно обращаться.

;************************************************

Delay_1ms Подпрограмма формирования задержки 1 мс

;************************************************

X EQU D’249’ ; параметр задачи

COUNT EQU H’20’ ; счетчик цикла

 

DELAY

MOVLW .X ;1м.ц.

MOVWF COUNT ;1м.ц.

AGAIN

DECFSZ COUNT,f ;1м.ц.

GOTO AGAIN ;2м.ц.

RETURN ;1м.ц.

Рис.9.3. Программа задержки малой длительности

Для того, чтобы вычислить общее число машинных циклов, которые тратятся на выполнение подпрограммы, и таким образом определит величину Х, нужно оценить сколько времени исполняется та или иная команда подпрограммы:

1. Команда CALL DELAY_1ms, используемая для перехода к подпрограмме, выполняется за 2 мкс

2. Команда MOVLW, предшествующая входу в цикл, выполняется за 1 мкс

3. Команда MOVWF также заминает 1 мкс

4. Команда DECFSZ декрементирующая состояние счетчика, затрачивает Х циклов (Х проходов цикла), выполняется за 1 мкс

5. Команда GOTO выполняется тоже Х раз, каждое её выполнение занимает 2мкс

6. Поскольку выход из цикла происходит за счет пропуска команды GOTO последний раз она исполняется за 1 мкс. Таким образом, общая задержка, вносимая командами DECFSZ и GOTO составит (1+2)Х–1 мкс

7. Заключительная команда RETURN выполняется за 1 мкс

Таким образом, общее число циклов равно

2 (CALL)+1 (MOVLW)+1(MOVWF)+[1(DECFSZ)+2(GOTO)–1]X+1(RETURN)

Т=2+1+1+(1+2)Х–1+1 мкс

Т=4+3Х мкс

Приравняв это число1000, получим

Т=4+3Х=1000

3Х=996

Х=332

Величина задержки в подпрограмме DELAY_1ms Рис.9.3. ограничена тем, что любой регистр данных микроконтроллера (счетчик) является 8-ми битным, т.е. максимальное значение Х=255. Каким образом. Максимальная величина задержки подпрограммы составляет 4+3*255=770.



Задержку можно немного увеличить Рис. 9.4,добавив в тело цикла команды NOP. Каждая команда добавляет один машинный цикл. Таким образом, вставка перед командой DECFSZ одной команды дает суммарную задержку длительностью

Т=4+4Х мкс

4=4Х=1000

4Х=996

Х=249

;************************************************

Delay_1ms Подпрограмма формирования задержки 1 мс

;************************************************

X EQU D’249’ ; параметр задачи

COUNT EQU H’20’ ; счетчик цикла

 

DELAY_1ms

MOVL X ; загрузка

MOVWF COUNT ; счетчика цикла

LOOP

NOP ; пустая команда

DECFSZ COUNT,f ; ЕСЛИ содержимое счетчика не0

GOTO LOOP ;ТО цикл

RETURN ; ИНАЧЕ выход из процедуры

Рис. 9.4. Программа увеличения времени задержки

Примечание: все, сказанное выше, относится и к команде INCFSZ. Отличие - только в направлении счета (+1).



<== предыдущая лекция | следующая лекция ==>
ГЛАВА 9. МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ | Временная задержка длительностью 1с.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.109 сек.