Спецификация элементов
Обозначение на схеме |
Тип элемента |
Количество |
Примечание |
|||||
Интегральные микросхемы |
||||||||
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:; Преобразование полученных данных для записи в общий байт статуса клавиатуры
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.