Сведения о работе с контроллером, приёмы создания и отладки программного обеспечения

Лабораторная работа 1

Цель работы: изучение программно-аппаратной поддержки работы со встроенными устройствами, клавиатурой и дисплеем при реализации систем управления.

Задание:

1. Составьте программу для ввода символов с помощью матричной клавиатуры и вывода их в терминал и на ЖК-дисплей;

2. Измените программу таким образом, чтобы нажатие на клавишу матричной клавиатуры вызывало или однократное, или последовательное срабатывание; переключение режимов должно осуществляться клавишей «*».

Программа, версия 1:

//Блокируем сторожевой таймер

outp(0xFFE6, 0xAAAA);

outp(0xFFE6, 0x5555);

outp(0x82, 0x40); //Режим матричной клавиатуры

//Инициализируем ЖК-дисплей

__asm mov ax, 0083h //Загружаем в регистр-аккумулятор номер функции

__asm int 10h //Вызываем прерывание

while(1) {

k = inp(0x82); //Считываем код нажатой клавиши

switch(k){

case 0x18:printf("1");break; //Клавиша "1"

case 0x14:printf("2");break; //Клавиша "2"

case 0x12:printf("3");break; //Клавиша "3"

case 0x28:printf("4");break; //Клавиша "4"

case 0x24:printf("5");break; //Клавиша "5"

case 0x22:printf("6");break; //Клавиша "6"

case 0x38:printf("7");break; //Клавиша "7"

case 0x34:printf("8");break; //Клавиша "8"

case 0x32:printf("9");break; //Клавиша "9"

case 0x48:printf("*");break; //Клавиша "*"

case 0x44:printf("0");break; //Клавиша "0"

case 0x42:printf("#");break; //Клавиша "#"

case 0x31:printf(".");break; //Клавиша "."

}

}

Программа, версия 2:

//Блокируем сторожевой таймер

outp(0xFFE6, 0xAAAA);

outp(0xFFE6, 0x5555);

outp(0x82, 0x40); //Режим матричной клавиатуры

//Инициализируем ЖК-дисплей

__asm mov ax, 0083h //Загружаем в регистр-аккумулятор номер функции

__asm int 10h //Вызываем прерывание

m = 0; //Инициализируем переменную m; m - режим срабатывания клавиатуры

while(1) {

k = inp(0x82); //Считываем код нажатой клавиши

switch(k){

case 0x18:printf("1"); if (m == 0) break; //Клавиша "1"

case 0x14:printf("2"); if (m == 0) break; //Клавиша "2"

case 0x12:printf("3"); if (m == 0) break; //Клавиша "3"

case 0x28:printf("4"); if (m == 0) break; //Клавиша "4"

case 0x24:printf("5"); if (m == 0) break; //Клавиша "5"

case 0x22:printf("6"); if (m == 0) break; //Клавиша "6"

case 0x38:printf("7"); if (m == 0) break; //Клавиша "7"

case 0x34:printf("8"); if (m == 0) break; //Клавиша "8"

case 0x32:printf("9"); if (m == 0) break; //Клавиша "9"

case 0x48:printf("*");if (m == 0) {m = 1;} else {m = 0;} if (m == 0) break; //Клавиша "*"; Переключаем режим ввода символов

case 0x44:printf("0"); if (m == 0) break; //Клавиша "0"

case 0x42:printf("#"); if (m == 0) break; //Клавиша "#"

case 0x31:printf("."); if (m == 0) break; //Клавиша "."

}

}

Контрольные вопросы:

1. Состав порта управления LCD, адресация и назначения регистров.

Порт управления LCD содержит два байтовых регистра – данных (80h) и управляющих сигналов (81h), в котором используются 4-й, 5-й и 7-й разряды. Управление портом осуществляется с помощью драйверов (например, powertip.com).

2. Какие параметры передаются драйверу powertip.com.

Параметры драйвера powertip.com:

- первый параметр X – количество строк дисплея;

- второй параметр Y – количество столбцов дисплея;

- третий параметр – тип знакогенератора: EA – латинский, SH, ZH – латинский / русский, H2 – латинский / русский (только прописные);

- /SCROLL – включить прокрутку дисплея;

- /SLOW – уменьшить скорость реакции дисплея.

3. Какие основные характеристики микроконтроллера Fastwel CPC107? Какова область его применения?

Контроллеры узла сети Fastwel I/O являются полноценными ПЛК, поддерживающими в зависимости от модели протоколы передачи данных CANopen, Modbus RTU, Modbus TCP, DNP3, PROFIBUS DP-V1.

Контроллеры узла сети реализуют исполнение прикладных программ разработанных при помощи адаптированной среды разработки CoDeSys фирмы 3S Smart Software Solutions с использованием пяти языков программирования по МЭК61131-13:

- Список инструкций (IL);

- Диаграммы функциональных блоков (FBD);

- Релейно-контактные схемы (LD);

- Структурированный текст (ST);

- Последовательные функциональные схемы (SFC).

Благодаря интегрированной среде разработки CoDeSys контроллер, кроме стандартных функций сбора данных и обмена по сети, имеет возможность выполнять прикладные технологические программы.

4. Как осуществляется подключение контроллера к ПЭВМ?

Подключение контроллера к ПЭВМ осуществляется через последовательный порт. После подключения запускается программа HyperTerminal. В окне программы выбирается порт, к которому подключен к ПЭВМ контроллер. Затем открывается окно терминала MS DOS, в котором можно вводить команды и передавать файлы в контроллер.

5. Состав порта управления матричной клавиатурой, адресация и назначение регистров.

Порт управления клавиатурой находится по адресу 82h. Запись в порт происходит при изменении состояния клавиатуры (нажата или отпущена клавиша). Назначение битов данного порта:

7 – INTK – разрешение прерывания от клавиатуры;

6 – MxKey – признак матричной клавиатуры;

0-3 при чтении – код колонки нажатой клавиши;

4-6 при чтении – код строки нажатой клавиши.