Пятница, 26.04.2024, 03:37 Приветствую Вас Гость

Автозапуск за 1500р. на ЛЮБОЙ сигнализации?! -> at13.ru

Главная | Регистрация | Вход | RSS

Каталог статей


BASCOM AVR - инициализация, начало работы.
.

Сразу хочу напомнитть, что у нас существует статья Пишем программу для AVR – делаем бегущие огни. где сывается процесс создания простой мигалки, расписана работа с портами.

Порты микроконтроллера могут работать как входы или как выходы, если порт должен работать как выход, нужно настроить соответствующее направление инструкцией CONFIG

PORT:
Config Portb = Output


Если нужно установить порт контроллера как вход то пишут Input

Можно также устанавливать направление соответствующих линий порта с помощью установки регистра DDRB. Для примера инструкция:

DDRB = &B00001111

повлечет запись числа 15 в регистр направления порта B, и 4 старших бита (PORTB.7 до PORTB.4) будут выходами, а 4 младшие (PORTB.3 до PORTB.0) входами. Можно также определить направление работы для каждого вывода порта отдельно. С этой целью нужно использовать инструкцию CONFIG PIN.

Например:

Config PinB.0 = Input

Инициализация программы языка BASCOM.

BASCOM компилятор устанавливает особый порядок инициализации, которая отвечает за сброс всех ячеек памяти. Его можно выключить помещая в начале программы директиву $NORAMCLEAR. Эта процедура, также выполняет инициализацию дисплея, UART, если в программе существуют инструкции INPUT, PRINT, LCD, и т.д...

Регистры могут использоваться как обычные переменные типа Byte.

Например:

Portb = $H28

повлечет установку числа 40 в регистре порта B.

Внимание! Имена регистров и битов зарезервированы, и, следовательно, не могут стать именем переменной, определяемой пользователем!


Например:

Dim SREG As Byte

Буквенно-цифровой ЖК-дисплей

Буквенно-цифровой ЖК-дисплей может быть подключен в двумя способами:

• Непосредственным соединением выводов LCD с выводами портов микроконтроллера
Этот способ называемый Pin Mode. При этом оставлена полная свобода при соединении выводов LCD к портам процессора. Таким образом упрощается создание печатной платы,за счёт увеличения размера программного кода.
• Соединением выводов (данные) дисплея к системной шине, которая доступна на системах с внешней памятью данных XRAM . Это так называемый режим Bus Mode.

Пример подключения ЖК дисплея к портам микроконтроллера ниже:



Этот способ подключения оставляет выводы PORTB.1, PORTB.0 а также весь PORTD свободными. Очевидно, как упомянуто выше, способ подключения произволен. Его можно определить в меню Options | Compiler, или в программе инструкцией CONFIG LCDPIN.

Когда дисплей подключен к системной шине данных - второй способ - все выводы данных дисплея (DB7-DB0) должны быть подключены к шине данных. Передача, в 8-битном режиме.
Управлением линиями E и RS занимается декодер адресов, чтобы не было конфликтов с внешней памятью. Адреса, обращение к которым на адресной шине, вызывает установку или сброс линии Е или RS, нужно установить с помощью директив $LCDRS и $LCD.

Язык BASCOM BASIC предлагает много инструкций, обслуживающих дисплеи LCD. Однако, для того, чтобы иметь полный контроль над дисплем может быть использована ассемблерная процедура.

Вот пример:

$ASM
Ldi _temp1, ' команда для загрузки кода в R24
Rcall _Lcd_control ' отправить команду на ЖК

Ldi _temp1, ' загрузка в R24 код символа (буквы)
Rcall _Write_lcd 'отправить на ЖК как данные
$END ASM


Внимание! Названия _Lcd_control а также _Write_lcd являются адресами процедур в ассемблере, возможных к вызову из языка BASCOM BASIC. Чтобы они были доступны нужно в программе сконфигурировать дисплей или использовать какие-либо инструкции связанные с ним.

Дополнительную информацию на тему программирования дисплея LCD на низком уровне нужно искать в документации его производителя.

Категория: BASCOM AVR | Добавил: Advanced (07.06.2012)
Просмотров: 6774 | Комментарии: 3 | Теги: BASOM AVR | Рейтинг: 5.0/1
Всего комментариев: 3
3 amv2000  
Внутри микроконтроллера выводы портов пронумерованы в следующем порядке – 76543210, соответственно (PORTB.3 до PORTB.0) выхода, (PORTB.7 до PORTB.4) входа

2 max  
все правильно должно быть

1 amv2000  
DDRB = &B00001111

повлечет запись числа 15 в регистр направления порта B, и 4 старших бита (PORTB.7 до PORTB.4) будут выходами, а 4 младшие (PORTB.3 до PORTB.0) входами.
Не ошиблись ?здесь все наоборот.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Источники питания и приборы
Охрана и контроль доступа
Измерительные устройства
Часы, таймеры, счетчики
Световые эффекты
Защита и контроль
Для начинающих
Разное
BASCOM AVR
Информация по МК, FAQ
Поиск
Вход на сайт
Наш опрос
Какие схемы вас больше всего интересуют?
Всего ответов: 144
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Друзья сайта