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

Спецификация элементов

Обозначение на                схеме

Тип элемента

Количество

Примечание

Интегральные микросхемы

D1

MAX809

1

D2

АТ90S2313

1

D3, D6

130ЛР1

2

D4, D5

4N35

2

            D7           

ADM202

1

D8

LM7805

1

DA1

LM7805

1

VT1, VT2

КТ807Б

2

Резисторы

Обозначение на                схеме

Тип элемента

Количество

Номинал

Примечание

R1-R14, R16, R19

1

4700 Ом

Конденсаторы

С1-C2

2

22пФ

С3-C6

4

0.1мкФ

С7

1

0.33мкФ

С8

1

0.1мкФ

Кварцевый резонатор

ZQ1

HC49S

1

20МГц

Программное обеспечение МК

Блок-схема программы МК:


Листинг программы:

.INCLUDE "2313def.inc"

; r17 - временный регистр

; r18, r19 - используются в вычислении логических условий

; r25 - код текущей нажатой клавиши

; r20 - код предыдущей нажатой клавиши

; r23 - текущее состояние четырех логических входов МК

; В r1 записываются данные, полученные через UART

; В r24 записываются данные, передаваемые через UART

.CSEG

; Таблица векторов прерываний

rjmp INIT

reti

reti

reti

reti

reti

reti

rjmp RxD        ; Прерывание - прием данных

reti

rjmp TxD        ; Прерывание - окончание передачи данных

reti

INIT:

ldi   r17,  0x80; Инициализация стека

out   SPL,  r17

ldi   r17,  0x00; Установка направлений выводов порта B

out   DDRB, r17

ldi   r17,  0x0C; Установка направлений выводов порта D

out   DDRD, r17

ldi   r17,  25  ; Установка скорости передачи данных через UART 2400 БОД

out   UBRR, r17

ldi   r17,  0xD4; Включение UART и прерываний по окончанию приема/передачи

out   UCR,  r17

ldi   r17,  0x80; Разрешение обработки прерываний

out   SREG, r17

ldi   r24,  0x00; Инициирование отправки данных по интерфейсу RS-232

out   UDR,  r24

LOOP:

; Функция обработки логического условия

in    r17,  PORTB; Запись содержимого порта B в регистр N25

mov   r23,  r17 ; Запоминаем состояние входного порта на момент начала проверки условий

; -------- ПРОВЕРКА ПЕРВОГО УСЛОВИЯ --------

andi  r17,  0x7F;

ldi   r18,  0;

cpi   r17,  0x30;

brlo  Z11LOW

inc   r18;

Z11LOW:

out   PD3,  r18;

; -------- ПРОВЕРКА ВТОРОГО УСЛОВИЯ --------

andi  r17,  0x5F;

ldi   r18,  0;

cpi   r17,  0x10;

brlo  Z12LOW

inc   r18;

Z12LOW:

out   PD4,  r18;

; -------- ОПРОС КЛАВИАТУРЫ --------

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

out   DDRB, r17

out   PB0,  r17;

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

andi  r18,  0x06

eor   r19,  r19

ROT1LOOP:; Преобразование полученных данных для записи в общий байт статуса клавиатуры

rol   r18

inc   r19

cpi   r19,  4

brlo  ROT1LOOP

mov   r25,  r19

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

out   DDRB, r17

ldi   r17,  0x01;

out   PB2,  r17;

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

andi  r18,  0x03 

eor   r19,  r18

ROT2LOOP:; Преобразование полученных данных для записи в общий байт статуса клавиатуры