Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

микропроцессоры лаба 2

.doc
Скачиваний:
17
Добавлен:
26.03.2015
Размер:
39.94 Кб
Скачать

Лабораторная работа №2

Дискретный вывод и индикация

Обозначение в задании светодиодов привязаны к именам цепей на

принципиальной схеме.

Дано:

- четыре светодиода: VD0, VD1, VD2, VD3 - красный, обозначаемый далее буквой R, желтый (Y),

зеленый (G) и голубой (B).

Требуется:

написать программу, инициализирующую порты и выполняющую циклически управление светодиодами.

Программа не должна использовать таймера и прерывания. Подсчет времени сделать на основании

анализа времени выполнения программы и проверить в симуляторе.

В таблице вариантов задания в колонке через двоеточие указаны светодиоды и время, на которое

их надо включить. Например, строка

Вариант №2

B:0.2 Y:5 G:0.5 R,B:3 G,B:2

Текст программы:

.nolist

.include “micdef.inc”

.list

Reset: ldi r16, high(RAMEND)

out sph, r16

ldi r16, low(RAMEND)

out spl, r16

;Настройка портов А4, А5, D4, D5 на вывод

sbi DDRA, 4

sbi DDRA, 5

sbi DDRD, 4

sbi DDRD, 5

;Подпрограмма задержки в 0.1с в r16 * 0.1с. Погрешность устновки не более 10 тактов

delay: ldi r17, SFC -

ldi r18, S5F > = 22180

ldi r19, S03 -

loop subi r17, 1 ;вычитаем r17-1 в r17

sbci r18, 0 ;вычитаем r18-1 в r18

sbci r19, 0 ;вычитаем r19-1 в r19

brcc loop ;переход если нет перехода

dec r16

brne delay

ret

repeat: sbi PORTA, 5

ldi r16, 2

call delay

cbi PORTA, 5

sbi PORTD, 4

ldi r16, 50

call delay

cbi PORTD, 4

sbi PORTA, 4

ldi r16, 5

call delay

cbi PORTA, 4

sbi PORTA, 5

sbi PORTD, 5

ldi r16, 30

call delay

cbi PORTD, 5

sbi PORTA, 4

ldi r16, 20

call delay

cbi PORTA, 5

cbi PORTA, 4

rjmp repeat

Текст программы с комментриями:

.nolist

.include “micdef.inc”

.list

Reset: ldi r16, high(RAMEND)

out sph, r16

ldi r16, low(RAMEND)

out spl, r16

sbi DDRA, 4

sbi DDRA, 5

sbi DDRD, 4

sbi DDRD, 5

delay: ldi r17, SFC

ldi r18, S5F

ldi r19, S03

loop subi r17, 1

sbci r18, 0

sbci r19, 0

brcc loop

dec r16

brne delay

ret

repeat: sbi PORTA, 5 ; вкл. синий

ldi r16, 2 ; 2*0.1с= 0.2с

call delay ; вызов

cbi PORTA, 5 ;выкл. синий

sbi PORTD, 4 ;вкл. желтый

ldi r16, 50 ; 50*0.1с=5с

call delay ; вызов

cbi PORTD, 4 ; выкл. желтый

sbi PORTA, 4 ; вкл. зеленый

ldi r16, 5 ; 5*0.1с=0.5с

call delay ; вызов

cbi PORTA, 4 ; выкл. зеленый

sbi PORTA, 5 ; вкл. синий

sbi PORTD, 5 ; вкл. красный

ldi r16, 30 ; 30*0.1с=3с

call delay ; вызов

cbi PORTD, 5 ; выкл. красный

sbi PORTA, 4 ; вкл. зеленый

ldi r16, 20 ; 20*0.1с=2с

call delay ; вызов

cbi PORTA, 5 ; выкл. синий

cbi PORTA, 4 ; выкл. красный

rjmp repeat ; переход на повтор

БГТУ «ВОЕНМЕХ» имени Устинова

Микропроцессорная техника

Лабораторная работа №2

Дискретный вывод и индикация

Студент:Орлов Е.Ю.

Группа:ВА-316

Руководитель:Романов Сергей Леонидович