Рисунок не умещается на странице и поэтому сжат! Для того, чтобы просмотреть его полностью, щелкните здесь.
Внимание! На схеме не показаны конденсаторы между линиями питания и земли.
Внешний вид макета
В приёмнике POCSAG кода используется микроконтроллер PIC16F84 (4 МГц) и ЖКИ-дисплей Data Vision на 2 строки по 24 символа (LCD DV-24200 NRB/R). При некоторой доработке программы можно использовать дисплей подобного типа от любого производителя (на базе HD44780), т.к. цоколевка и система команд, как правило, совпадает.
Представляемая программа-прототип, позволяет принимать POCSAG сообщения, записывать их в статическое ОЗУ (32к х 8), отображать на ЖКИ-модуле (2 линии по 24 символа, русифицированный). Изначально она создавалась для проверки разрабатываемого «КОДИРОВЩИКА POCSAG», однако доведена до конца не была. В принципе, существующий вариант полностью работоспособен, хотя и сделан «на скорую руку»...
Как это работает
Программа реализует 3 режима работы: 1. Запись в ОЗУ всех POCSAG-сообщений c любым CAP-кодом 2. Запись в ОЗУ POCSAG-сообщений только c заданным CAP-кодом 3. Просмотр ОЗУ. В режиие просмотра можно задать CAP-код для режима 2
После сброса, программа начинает запись в ОЗУ все поступающие POCSAG-сообщения. На ЖКИ при этом выводится счетчик принятых байт данных — просто для контроля заполнения ОЗУ. Проверки на конец ОЗУ не производится, поэтому после достижения конца ОЗУ, запись продолжается по кругу. Параллельно с записью в ОЗУ и просмотром на ЖКИ, данные выдаются на выход RS232 со скоростью 9600.
Внешний вид платы
При нажатии на кнопку «view» на ЖКИ начинает выводиться содержимое ОЗУ в формате CAP-КОД, собственно сообщение. Листание происходит по кнопке «view». Если просмотрены все сообщения, светодиоды начинают быстро мигать. Следующее нажатие кнопки «view» возвращает в режим записи в ОЗУ всех поступающих сообщений. Если во время просмотра какого-либо сообщения нажать кнопку «set cap», то программа запоминает CAP-код текущего сообщения как образец и переходит в режим записи в ОЗУ сообщений только с таким же CAP-кодом.
Доступ к ячейкам ОЗУ производится через адресные счетчики (176ие2). Поэтому возможно только последовательное заполнение и считывание ОЗУ. Ввиду недостаточного количества линий ввода-вывода у PIC16F84, был применен внешний регистр 561ир6а. Вообще говоря, примененный процессор мало подходит для решения данной задачи, однако применен он был лишь потому, что для него был доступен код декодера POCSAG и уже были готовы все драйвера (LCD и т.д.).
Вы можете загрузить следующие файлы, относящиеся к проекту: rxpocsag.zip — архив файлов программы, включающий:
RXPOCSAG.ASM — основная программа MACROS.MAC — используемые макросы PICREG.H — имена регистров (там же стандартный файл от Microchip) LCD_C.H — команды для LCD RUSDEF.H — запись русских букв в виде retlw INTER.H — обработчик прерываний SCAN.H — кусок программы (декодирование POCSAG) DATARX.H — кусок программы (декодирование POCSAG) BIN_BCD.H — часть можно убрать (bcd) CRC.H — подсчет КС (отключено для высвобождения места) CRC_POZ.H — подсчет КС (отключено для высвобождения места) TEXT.H — надписи, которые выводим на ЖКИ CHANGE_1.H — таблица перекодировки PAGER -> ЖКИ CHANGE_2.H — таблица перекодировки PAGER -> ЖКИ LCD_DRIV.H — драйвер ЖКИ