ВЗАИМОДЕЙСТВИЕ МИКРОКОНТРОЛЛЕРА С КНОПКАМИ И СВЕТОДИОДАМИ

March 18, 2011 by admin Комментировать »

Подготовить программу, которая при нажатии кнопки START выполняет поочередное переключение светодиодов, при нажатии кнопки STOP останавливает переключение и возобновляет при повторном нажатии кнопки START.

Пример программы приведен далее. В программе для микроконтроллера AT90S8515 используется файл определений 8515defAnc, для ATmega8515 – m8515defAnc.

в программе линии порта РВ использованы для индикации и, следовательно, проинициализированы на вывод, а линии О и 1 порта PD, соединяемые с кнопками, – на ввод. После нажатия кнопки START начинается последовательное переключение свето- диодов с задержкой и проверка состояния кнопки STOP.

Программа 2.1

;Программа 2.1 для микроконтроллеров АТх8515: ;переключение светодиодов (СД) при нажатии на кнопку START ;(SWO), после нажатия кнопки STOP (SW1) переключение ;прекращается и возобновляется с места остановки ;при повторном нажатии на кнопку START

.include "8515def.inc" ;файл определений для AT90S8515 ;.include "m8515def.inc" ;файл определений для ATmega8515 .def temp = г1б                          ;временный регистр

.def reg_led = г20        ;состояние регистра светодиодов

.equ START = О            ;0-й разряд порта PD

.equ STOP =1             ;1-й разряд порта PD

.org $000

rjmp init ;* * *Инициализация* * *

INIT: Idi reg_led,OxFE       ;сброс reg_led.O

; для включения LEDO

sec                            ;C=l

set                   ;Т=1 – флаг направления

ser temp                  ;инициализация

out DDRB^temp           ; порта PB на вывод

out PORTE,temp             ;погасить СД

clr temp                  ;инициализация

out DDRD,temp           ; порта PD на ввод

Idi temp,0x03        ;включение подтягивающих

out PORTD,temp         ; резисторов порта PD

WAITSTART:                      ;ожидание

sbic PIND,START              ; нажатия

rjmp WAITSTART            ; кнопки START

LOOP: out PORTE,reg_led ;включение СД ;***3адержка (два вложенных цикла)***

Idi г17,2 dl:Idi rl8,2 d2:dec rl8 brne d2

dec г17 brne dl

sbic FIND,STOP     ;если замкнута кнопка STOP,

rjmp MM            ; TO переход

rjmp WAITSTART     ; для проверки кнопки START,

MM:ser temp            ;иначе выключение светодиодов

out PORTB,temp

brts LEFT           ;переход, если флаг Т установлен

sbrs reg_led,О     ;пропуск следующей команды, если

; 0-й разряд reg_led установлен set  ;Т=1 – переключение флага

гог reg_led        ;сдвиг reg_led вправо

rjmp LOOP

LEFT: sbrs reg_led,7 ;пропуск следующей команды, если

; 7-й разряд reg_led установлен clt  ;Т=0 – переключение флага

; направления го1 reg_led     ;сдвиг reg_led влево

rjmp LOOP

Задание 1. Проверить работу программы в шаговом режиме работы с помощью симулятора AVR Studio 4. Симуляция замыкания и размыкания кнопок START и STOP осуществляется путем установки О (белый цвет) и 1 (черный цвет) в маленьких квадратиках порта линий интерфейса FIND. Перед прогоном программы установите для обеих кнопок состояние логической 1 (кнопки отжаты).

Убедившись в правильной работе программы, измените параметры циклов задержки, чтобы длительность задержки составила 0,5 с. Проверьте время задержки. Для этого установите контрольные точки {Debug! Toggle Breakpoint) перед началом выполнения программного блока задержки и после выхода из него. Запустив программу в режиме прогона {Debug!Run) с остановом в контрольных точках, оцените время задержки, контролируя либо показания счетчика циклов Cycle Counter в окне Workspace AVR Studio 4 (вкладка I;O, секция Processor), либо показания Stop Watch.

Выполнив трансляцию программы, загрузите hex-файл в STK500. При программировании следите, чтобы тип целевого микроконтроллера, установленного на используемой плате, совпадал с типом микроконтроллера в поле Program. В процессе программирования в окне STK500 появляются сообщения о ходе загрузки программы.

Убедившись в правильности загрузки по выводимым сообщениям, проверьте работу программы на макете. Для этого, выключив питание STK500, с помощью 10-проводного шлейфа соедините выводы разъема порта PD с выводами разъема кнопок общего назначения. С помощью второго 10-проводного шлейфа соедините выводы разъема порта РВ с выводами разъема светодиодов. Включите питание и проверьте работу загруженной программы.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты