Разработка системы сбора данных на базе МК АТ90S2313, страница 4

rol   r18

inc   r19

cpi   r19,  3

brlo  ROT2LOOP

or    r25,  r18 ; Добавление данных в байт статуса клавиатуры

ldi   r17,  0x02; Установка направлений выводов порта В для опроса второго ряда

out   DDRB, r17

ldi   r17,  0x01;

out   PB1,  r17;

in    r18,  PORTB; Получение информации о нажатии последних 3 клавиш

andi  r18,  0x05

or    r25,  r18 ; Добавление данных в байт статуса клавиатуры

                ; Код нажатой клавиши получен в регистре N25

                ; сравним с константой для каждой клавиши.

cp    r25,  r20 ; Проверка на "залипание" клавиши

breq  DONE

cpi   r25,  0x20; ; Кнопка 1

brne  K2

rjmp Button1

K2:

cpi   r25,  0x40  ; Кнопка 2

brne  K3

rjmp Button2

K3:

cpi   r25,  0x60; ; Кнопка 3

brne  K4

rjmp Button3

K4:

cpi   r25,  0x18; ; Кнопка 4

brne  K5

rjmp Button4

K5:

cpi   r25,  0x08; ; Кнопка 5

brne  K6

rjmp Button5

K6:

cpi   r25,  0x10; ; Кнопка 6

brne  K7

rjmp Button6

K7:

cpi   r25,  0x01; ; Кнопка 7

brne  K8

rjmp Button7

K8:

cpi   r25,  0x05; ; Кнопка 8

brne  K9

rjmp Button8

K9:

cpi   r25,  0x04; ; Кнопка 9

brne  DONE

rjmp Button9

DONE:                  ;

; В r25 находится код нажатой кнопки. Перенесем в R20 во избежание повторов от «зажатия»

mov   r20,  r25;

rjmp loop;

Button1: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 1

Button2: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 2

Button3: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 3

Button4: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 4

Button5: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 5

Button6: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 6

Button7: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 7

Button8: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 8

Button9: rjmp DONE  ; ToDo: Процедура обработки нажатия кнопки 9

; Процедура вызывается после завершения отправки байта по RS-232

TxD:

; -------- ПОДГОТОВКА ДАННЫХ ДЛЯ ОТПРАВКИ В RS-232 --------

mov   r24,  r23;

andi  r24,  0xF0;  ; Байт для отправки содержит данные 4-х входов

; В R24 хранятся данные, которые будут отправляться на хост

; ------------------ ОТПРАВКА ДАННЫХ -----------------

out   UDR,  r24

reti

; Процедура вызывается после завершения приема байта по RS-232

RxD:

; -------- ПРИЕМ ДАННЫХ ИЗ RS-232 В РЕГИСТР R1 --------

in    r1,   UDR;

sbic  USR,  4     ; Если установлен 4-й бит USR - принятые данные не достоверны.

reti              ; => Выход из функции обработки прерывания

; ToDo: Здесь размещается обработка принятых данных

reti


Заключение

          В представленной курсовой работе была разработана система сбора данных на основе микроконтроллера, который может применяться для управления различными исполнительными механизмами. Например, электродвигателями и электромагнитными реле. Управление системой осуществляется через девятикнопочную клавиатуру, интерфейс RS 232 и четырехразрядный дискретный вход.

Список использованных ресурсов

1.PDF документация на линейный стабилизатор LM7805

2.PDF документация на микроконтроллер AT90S2313

www.ATMEL.com

3. «Индикаторы» http://www.sibsuits.ru/~mavr/digital/indic.htm

4. Полупроводниковые приборы: Транзисторы. П53 Справочник /В.Л.Аронов, А.В.Баюков, А.А.Зайцев и др.Под общ. ред. Н.Н.Горюнова.-М.: Энергоатомиздат,1983.-904с.,ил

5. Голубцов М. С. «Микроконтроллеры AVR: от простого к сложному» (М, Солон-пресс 2003)

6. Еленычев С. В. Курс лекций по дисциплине «Микроконтроллеры», 2006-2007 уч. год.