Итак, осталось подключить клавиатуру. Для этого подключим выход PD2 через резистор R8 к питанию, затем соединим через шину PD2 и элемент «И», к которому подключаем строки клавиатуры. Затем через шину подключим столбцы клавиатуры к старшим битам порта B, а к младшим 4 битам подключим строки (рисунок 2.22).

Рисунок 2.22 – Соединение выводов микроконтроллера и выводов клавиатуры с шиной данных
Программно установив на столбцы низкий уровень, а на строки высокий уровень получим ситуацию, при которой если нажать клавишу, возникнет соединение между каким-либо столбцом и строкой. В результате этого на линии строки появится низкий уровень, который передастся на элемент "И" и на входе INT0 также появится низкий уровень и вызовет прерывание, в чем и заключалась задача.
Сохраняем разработанное устройство и переходим в Bascom для разработки программы управления микроконтроллера.
3 РАЗРАБОТКА ПРОГРАММЫ УПРАВЛЕНИЯ МИКРОКОНТРОЛЛЕРА НА ОСНОВЕ ПРИБОРНООРИЕНТИРОВАННОГО АЛГОРИТМИЧЕСКОГО ЯЗЫКА BASCOM-AVR
3.1 Описание программы Bascom-AVR
Для того что бы упростить работу с языками программирования при работе с микроконтроллерами была разработана программная среда Bascom-AVR. Она реализует возможность разработки программ для микроконтроллеров фирмы Atmel, основанную на языке программирования высокого уровня, близкому к стандартному Basic или Visual Basic. Она имеет достаточно простой интерфейс, несложную настройку, встроенные компилятор и программатор, построчный отладчик-симулятор (с программными эмуляторами терминала, символьного ЖКИ, матрица клавиатуры, EERPOM и SRAM, светодиодами – пинами портов, ADC и компаратором). В общем, Bascom пожалуй самая универсальная и удобная программа для написания программы и её отладки.
Итак, Bascom позволяет:
Писать программы на Бейсике; Переводить эти программы в машинные коды (формат, понятный МК); Симулировать скомпилированный код; Программировать микроконтроллер с помощью внешних утилит или непосредственно из среды разработки.Иными словами Bascom переводит программу, написанную на языке программирования Basic на язык, понятный микроконтроллеру.
В Bascom имеются операторы для работы с устройствами, находящимися в кристалле микроконтроллера, и внешними переферийными устройствами, наиболее часто используемыми в микропроцессорных системах. Особое внимание уделено работе с символьным индикатором и последовательным портом. Операторы Bascom-AVR рассчитаны на работу со всеми типами памяти данных.
Помимо всего вышеперечисленного, программа обеспечивает существенное сокращение затрат времени на программирование. По сравнению с компиляторами языка Си, Bascom дает намного более компактный код, что тоже является немаловажным фактором.
Компилятор позволяет создавать программы для всех моделей микроконтроллеров AVR, также предусмотрены средства настройки компилятора под любую модель микроконтроллера. В результате компиляции могут быть получены файлы исполняемого кода в бинарном виде или HEX-формате.
Программный комплекс Bascom поставляется в трех вариантах:
- Bascom-LT для микроконтроллеров серии AT89Cx051 фирмы Atmel; Bascom-8051 для микроконтроллеров серии 8051; Bascom-AVR для микроконтроллеров серии AVR фирмы Atmel.
Так как в проекте используется микроконтроллер Atmega88 из серии Atmel AVR, следовательно, программа будет разрабатываться в Bascom-AVR.
В общем и целом, разработку программ для микроконтроллерных устройств можно разделить на 4 этапа:
Физический – определение конкретной модели микроконтроллера исходя из необходимого количества линий ввода-вывода и других специфических условий, а так же составление принципиальной схемы; Логический – постановка требуемых задач и анализ возможных путей их решения; Программный – написание программы, компиляцией и проверкой на симуляторе; Практический – сборка, программирование микроконтроллера, отладка и проверка при самых неожиданных для прибора условиях, как со стороны окружающей среды, так и со стороны непредсказуемых действий пользователя.Задачами программного этапа можно считать:
Настройка программы Bascom-AVR в соответствии с ранее разработанной в программной среде Proteus схемой формирователя сигналов взаимодействия на основе микроконтроллера; Реализация программы опроса клавиатуры при прерывании по кнопке; Реализация программы формирования строки тонового номера; Реализация набора номера и сброса по кнопке.3.2 Настройка проекта
Открываем программу Bascom-AVR и создаём новый проект
(рисунок 3.1).

Рисунок 3.1 – Окно программы Bascom-AVR
Настройку программы Bascom-AVR можно произвести двумя способами:
Помещение всех настроек прямо в исходный код программы; Путём открытия настроек проекта.Воспользуемся вторым способом, для этого необходимо в меню программы нажать Options->Compiler->Chip (рисунок 3.2).

Рисунок 3.2 – Открытие опций проекта
Далее в окне опций проекта необходимо поменять ряд параметров:
Во вкладке Compiler->Chip необходимо выбрать Chip (рисунок 3.3);

Рисунок 3.4 – Изменение параметров проекта
Во вкладке Compiler->Communication необходимо выбрать Baudrate и Frequency (рисунок 3.5);

Рисунок 3.5 – Изменение параметров проекта
Во вкладке Compiler->LCD необходимо выбрать LCD type и расставить пины LCD (рисунок 3.6);

Рисунок 3.6 – Изменение параметров проекта
Во вкладке Communication необходимо выставить параметры соединения (рисунок 3.7);

Рисунок 3.7 – Изменение параметров проекта
Настройка программы завершена [7].
3.3 Пояснения к программе
Перейдём к реализации программы опроса клавиатуры.
Идея опроса клавиатуры в следующем:
Программно установив на столбцы низкий уровень (логический ноль), а на строки высокий уровень (логическая единица) получим ситуацию, при которой если нажать клавишу, возникнет соединение между каким-либо столбцом и строкой. В результате этого на линии строки появится низкий уровень, который передастся на элемент "И" и на входе INT0 также появится низкий уровень и вызовет прерывание. Чтобы определить нажатую кнопку необходимо определить в какой из строк клавиатуры объявился логический ноль. Для этого необходимо считать параметры порта (Keycoderow = Pinb) в ранее объявленную переменную. Это будет восьмибитная комбинация двоичного кода. Аналогично (Keycodecol = Pinb) находим в каком из столбцов появился низкий уровень, предварительно поменяв настройки порта на противоположные. Для удобства мы сдвигаем комбинацию столбцов на пять символов вправо (Shift Keycodecol, Right, 5). По получившимся комбинациям через функцию Lookupstr мы вынимаем заведомо заложенную комбинацию кнопки [8]. Программная реализация этой идеи реализована в подпрограмме Button.
Для реализации тонового набора необходимо сначала определить нажатую кнопку. После этого в зависимости от нажатой кнопки происходят необходимые действия. Реализация тонового набора представлена в подпрограмме Tone.
Полный текст программы тонового набора телефона представлен в приложении Б.
На рисунке 3.8 можно увидеть текст программы в окне редактора Bascom-AVR.

Рисунок 3.8 – Окно Bascom-AVR с текстом разработанной программы
3.4 Компиляция программы и подготовка файла для программирования микроконтроллера
После того как программа готова, необходимо выполнить процесс компиляции (F7), то есть перевести написанную программу в шестнадцатеричный машинный код, понятный микроконтроллеру. Из рисунка 3.9 видно, что скомпилированная программа занимает 19% энергозависимой (Flash) памяти микроконтроллера.

Рисунок 3.9 – Компиляция программы
После того, как программа скомпилирована, нужно запустить программатор и, если нет ошибок, он автоматически определит модель контроллера и выдаст в рабочее окно скомпилированный машинный код в шестнадцатеричной системе счисления, готовый для загрузки в микроконтроллер.
Из рисунка 3.10 видно, что скомпилированная программа занимает 8 килобайт энергозависмой памяти (Flash ROM) и 512 килобайт памяти постоянного запоминающего устройства (EEPROM).

Рисунок 3.4 – Окно программы с шестнадцатеричным машинным кодом.
На это работа в Bascom завершена. Можно проверить работу разработанного устройства, запустив симуляцию. Если все работает, то на экране дисплея появится меню набора номера (PRINT NUMBER) Теперь можно подключить телефон и приступать к испытаниям с телефоном.
4 ПРОВЕДЕНИЕ НАТУРАЛЬНЫХ ИСПЫТАНИЙ В СРЕДЕ PROTEUS
4.1 Настройка оборудования
Для проведения натуральных испытаний потребуется ПК, на котором будет установлен Proteus и подключенный посредством COM-кабеля с интерфейсом RS-232 мобильный телефон Siemens C45.
Для корректной работы COM-кабеля необходимо установить соответствующее программное обеспечение – драйверы. Дело в том, что на ОС Windows 10 предложенный драйвер для данного COM-кабеля версии 3.6.81.357 работает некорректно, вследствие чего COM-кабель не работает должным образом. В результате в диспетчере устройств ОС наблюдается неопознанное устройство (рисунок 4.1).

Рисунок 4.1 – Состояние диспетчера устройств до обновления драйвера
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 |


