МІНІСТЕРСТВО ОСВІТИ УКРАІНИ
Національний Технічний Університет „ХПІ”
Кафедра обчислювальної техніки та програмування.
Лабораторна робота №3
з мікроконтролерів та мікроЕОМ
тема:
«Формування часових інтервалів.
Сторінкова організація пам'яті»
Виконала:
Студентка групи КІТ-11б
Крашеніннікова Вікторія
Перевірили:
Скородєлов В.В.
Даниленко О.Ф.
Харків 2004.
Тема: Формування часових інтервалів. Сторінкова організація пам'яті
Мета: Вивчити способи формування часових інтервалів різної тривалості,
організацію сторінкової пам'яті програм і даних.
Індивідуальне завдання:
На виводі RB1 мікроконтролера сформувати імпульс тривалістю t1, реалізувати часову затримку заданої тривалості, на виводі RB1 мікроконтролера сформувати імпульс заданої тривалості, на виводі RB2 мікроконтролера сформувати імпульс тривалістю t2.
Реалізувати часову затримку заданої тривалості без використання таймера у вигляді підпрограми і розташувати її за адресою 0x123 у пам'яті програм, на виводі RB2 мікроконтролера, сформувати імпульс заданої тривалості. Виклик підпрограм робити явно, на виводі RB3 мікроконтролера сформувати імпульс тривалістю t3.
Реалізувати часову затримку заданої тривалості з використанням таймера у вигляді підпрограми і розташувати її за адресою 0x234 у пам'яті програм, на виводі RB3 мікроконтролера сформувати імпульс заданої тривалості. Виклик підпрограм робити неявним чином.
Зауваження: Конфігурацію пристроїв мікроконтролера зробити без використання команд TRIS і OPTION, використовуючи спеціальні регістри банку 1.
Алгоритми програм:
Схема алгоритму головної підпрограми:
Рис.1 Схема алгоритму роботи головної підпрограми.
Схема алгоритму підпрограми d_2 :
Рис.2 Схема алгоритму роботи підпрограми d_2.
Схема алгоритму підпрограми d_3 :
Рис.3 Схема алгоритму роботи підпрограми d_3.
Порядок дій :
1. Секція заголовку де описуються всі змінні.
2. Далі йде робоча секція де:
2.1. Налаштування портів, формування режиму роботи таймеру, вибір банку , настройка преддільника на роботу з таймером
2.2. Формується „0” на першому розряді порту В.
2.3. Затримка.
2.4. Формується „1” на першому розряді порту В.
2.5. Виклик підпрограми d_2 ( реаліз. Затримки в 32 цикла ):
2.5.1. Формується „0” на другому розряді порту В.
2.5.2. Ініціалізація рахівника.
2.5.3. Цикл до обнуління рахівника.
2.5.4. Формується „1” на другому розряді порту В.
2.6. Виклик підпрограми d_3:
2.6.1. Формування старших розрядів програмного рахівника.
2.6.2. Формування молодших розрядів програмного рахівника.
2.6.3. Затримка в 3000 циклів.
2.6.4. Формується „0” на третьому розряді порту В.
2.6.5. Скидання флагу переповнення від таймера.
2.6.6. Формування константи для таймера.
2.6.7. Аналіз флагу переповнення від таймера.
2.6.8. Формується „1” на третьому розряді порту В.
3. Секція завершення. Тут відбувається завершення програми.
Текст програми:
list p=16f84 ; тип используемого ОМК
#include <p16f84.inc> ; подключение описаний регистров ОМК
COUNT equ 0Ch ;описание переменной
org 00h ; адрес программы в памяти программ
bsf STATUS, RP0 ; выбор банка 1
clrf TRISB ; настройка порта В на вывод
movlw b'00000110' ; настройка предделителя
movwf OPTION_REG ; на работу с таймером 1:128
bcf 0 ; выбор банка 0
movlw 0FFh ; формирование '1'
movwf PORTB ; на выводах порта В
d_1 ; начало рабочей части программы
bcf PORTB, 1 ; формирование '0' на первом разряде порта В
nop ; формирование задержки в 1 цикл
bsf PORTB, 1 ; формирование '1' на первом разряде порта В
call d_2 ; вызов подпрограммы d_2
call d_3 ; вызов подпрограммы d_3
org 123h ; подпрограмма реализации
d_2 ; задержки в 35 цикла
bcf PORTB, 2 ; формирование '0' на втором разряде порта В
movlw 11h ; инициализация
movwf COUNT ; счетчика
repeat ; цикл до
decfsz COUNT, 1 ; обнуления
goto repeat ; счетчика
bsf PORTB, 2 ; формирование '1' на втором разряде порта В
return ; возврат из подпрограммы
d_3 ; неявный вызов подпрограммы
movlw 02h ; формирование старших
movwf PCLATH ; разрядов программного счетчика
movlw 34h ; формирование младших
movwf PCL ; разрядов программного счетчика
org 234h ; подпрограмма реализации задержки в 3000 циклов
bcf PORTB, 3 ; формирование '0' на третьем разряде порта В
bcf INTCON, T0IF ; сброс флага переполнения от таймера
movlw 0E9h ; формирование
movwf TMR0 ; константы для таймера
wait ; анализ
btfss INTCON, T0IF ; флага
goto wait ; переполнения от таймера
bsf PORTB, 3 ; формирование '1' на третьем разряде порта В
return ; возврат из подпрограммы
end ; конец программы
Скорочений вміст файлу лістінгу програми:
MPASM 02.20 Released Vika3.ASM 4-1-2004 20:30:46 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 list p=16f84 ; тип используемого ОМК
00002 #include <p16f84.inc> ; подключение описаний регистров ОМК
00001 LIST
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.