Автор: Пользователь скрыл имя, 06 Марта 2013 в 12:00, лабораторная работа
Светодиод должен мигать с периодом T=0.4сек+0.05*N сек, где N номер по журналу.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Снежинский физико-технический институт -
филиал федерального государственного автономного образовательного учреждения высшего профессионального образования
«Национальный
исследовательский ядерный
(СФТИ НИЯУ МИФИ)
Кафедра АИВС
(наименование кафедры)
Лабораторная работа №1
по курсу: «Микропроцессорные системы»
г. Снежинск, 2012г.
Задание: Светодиод должен мигать с периодом T=0.4сек+0.05*N сек, где N номер по журналу.
не=0
не=0
не=0
Текст программы:
; Требуемые файлы: P18F4520.INC
LIST P=18F4520, F=INHX32 ; процессор и формат файла
#include <P18F4520.INC> ; определение процессорно-ориентированных переменных
COUNT_DEL0 EQU 0x30 ; Счётчик внутреннего цикла
COUNT_DEL1 EQU 0x31 ; Счетчик среднего цикла
COUNT_DEL2 EQU 0x32 ; Счетчик внешнего цикла
DEL_0 EQU .165 ; 165*3 + 5 = 500 ~ 250 мкс
DEL_1 EQU .40 ; 250 мкс * 40 ~ 10 мс (10.002 мс)
DEL_2 EQU .55 ; 10 мс * 55 ~ 0.55 с (550.112 мс) (N=3)
DEL_2 EQU .85 ; 10 мс * 85 ~ 0.85 с (850.112 мс) (N=9)
Main
;Инициализация порта А
CLRF PORTA ; очистка регистров-защелок
CLRF LATA
MOVLW 0x0F ; настройка АЦП
MOVWF ADCON1, 0
BCF TRISA, RA0, 0 ; настройка канала RA0 на вывод
BSF PORTA, RA0, 0 ; установка вывода на RA0 в "1"
;Три цикла симуляции задержки
MET3 MOVLW DEL_2 ; начало цикла, инициализация внешнего из трех циклов
MOVWF COUNT_DEL2
MET2 MOVLW DEL_1 ; начало внешнего цикла, инициализация среднего цикла
MOVWF count2
MOVWF COUNT_DEL1
MET1 MOVLW DEL_0 ;начало внутреннего цикла
MOVWF COUNT_DEL0
MET0 DECFSZ COUNT_DEL0,f,0
BRA MET0
DECFSZ COUNT_DEL1,f,0
BRA MET1
DECFSZ COUNT_DEL2,f,0
BRA MET2
BTG PORTA,RA0,0 ; спустя DEL1 обработок среднего цикла, инверсия вывода на RA0
BRA MET3
END