Разработка аппаратно-программных средств микропроцессорной системы
Программа
Метка
Команда
Значение
Комментарий
.DSEG
.ORG
0x100
.def
TMP=R16
Регистр для переменной
.def
I=R17
Регистр измерения тока
.def
COL=R18
Регистр для колонки
.def
STR=R19
Регистр для хранения страницы
.def
U=R20
Регистр для значения напряжения
.CSEG
.ORG
a4
CLI
Запрет глобальных прерываний
LDI
TMP,0b 0001 1000
Отключение сторожевого таймера
OUT
WDTCR,TMP
CLR
TMP
OUT
WDTCR,TMP
ldi
TMP,low(RAMEND)
Настройка указателя стека на конец оперативной памяти
out
SPL,TMP
ldi
TMP,high(RAMEND)
out
SPH,TMP
LDI
TMP, 0b 0100 0000
Настройка порта С
OUT
PORTС, TMP
CLI
TMP
OUT
DDRС, TMP
CLR
TMP
настройка порта D для вывода информации на ЖКД
OUT
PORTD, TMP
LDI
TMP,0b 1000 0001
Настройка канала ШИМ OC1A
Режим - fast PWM
8 бит
Тактирование от системного генератора
OUT
TCCR1A,TMP
LDI
TMP,0b 0000 1001
OUT
TCCR1B,TMP
CLR
TMP
OUT
OCR1AL, TMP
LDI
TMP, 0b 1110 0000
Настройка АЦП
ИОН - внутренний
Тактирование 1МГц (1:16)
8 бит
OUT
ADMUX, TMP
LDI
TMP,0b1000 0100
OUT
ADCSRA, TMP
Основная часть программы
Begin:
CLR
STR
Установка начальной страницы
LDI
TMP,0b1011 1000
OUT
DDRB,TMP
LDI
COL,0b 0000 0001
Установка начальной колонки
CLR
U
Установка начального режима ШИМ
GET:
OUT
OCR1AL,U
установка напряжения Uзи
LDI
TMP,0xE0
Выбор канала АЦП
OUT
ADMUX,TMP
LDI
TMP,0x14
Задержка 10 мкс для стабилизации
напряжения на входе блока АЦП
a1:
DEC
TMP
NOP
BRNE
a1
SBI
ADCSRA,6
Запуск преобразования
a2:
SBIS
ADCSRA,4
Ожидание окончания преобразования
RJMP
a2
IN
I,ADCH
Чтение результата преобразования
LSR
I
Установка адреса ОЗУ в ЖКД
LSR
I
AND
I, 0b 0011 1111
ADD
I, 0b 0100 0000
OUT
DDRD,I
LDI
TMP, 0b 0100 0000
Вывод точки на ЖКД
OUT
DDRС, TMP
OUT
DDRD, COL
CLI
TMP
OUT
DDRС, TMP
ROL
COL
Установка следующей колонки
a3:
BRCS
INK
Переход для установки новой страницы
ADD
U,0x4
Увеличение напряжения Uзи
RJMP
GET
INK:
INC
STR
Инкрементирование страницы
CPSE
STR, 0b 0000 0100
Если была последняя страница - то выход
RJMP
a6
a4:
SBIS
DDRA,2
Зацикливание пока не будет нажата кнопка старт
RJMP
a4
LDI
TMP,0x14
Задержка на 10 мкс для исключения дребезга контактов
a5:
DEC
TMP
NOP
BRNE
a5
RJMP
Begin
a6:
ADD
STR, 0b1011 1000
Установка новой страницы ЖКД
OUT
DDRD, STR
RJMP
a3
Заключение
Необходимо рассчитать коэффициент использования аппаратных и программных средств.
Использование аппаратных средств
Кисп. апп. = Nисп. апп./Nобщ апп =
Использование памяти (по результатам компиляции в AVR Studio):
ПЗУ (flash) - 6,2%
ОЗУ (SRAM) - 0,0%
EEPROM - 0, 0%
Использование программных средств
Как видно задача была успешно решена с применением микроконтроллера. Данная система имеет большую способность к модернизации, заложенной в ней аппаратно.