Курсовая работа по предмету "Радиоэлектроника, компьютеры и переферийные устройства"


Устройство ввода и отображения информации на базе БИС КР580ВВ79

Национальный технический университет Украины "Киевский политехнический институт" КУРСОВОЙ ПРОЕКТ по курсу "Вычислительные микропроцессорные средства и системы" Тема: "Устройство ввода и отображения информации на базе
БИС КР580ВВ79 с подключением к параллельному порту ЭВМ (LPT)" Допущено к защите: "_____"__________________2000г. Защищено с оценкой: Выполнил: ст. гр. ДК –71 ІІІ курса ФЭЛ Кузин Евгений Андреевич Преподаватель: "_____"__________________2000г. Корнев В. П. Киев - 2000 СОДЕРЖАНИЕ Введение 3 1. Описание контроллера КР580ВВ79 3 1. 1. Структура контроллера КР580ВВ79. 4 1. 2. Связь с системной шиной 6 1. 3. Программирование 6 1. 4. Работа БИС КР580ВВ79 7 1. 5. Интерфейс клавиатуры 9 1. 6. Интерфейс дисплея. 11 2. Описание параллельного интерфейса ввода-вывода ЭВМ. 13 3. Описание разрабатываемого устройства 15 4. Разработка программного обеспечения 15 5. Выбор элементной базы. 17 выводы 17 ЛИТЕРАТУРА. 18 Приложение 1. Листинг управляющей программы. 19 Введение
Микропроцессорные системы в зависимости от их функционального назначения используют различные устройства ввода и отображения (УВО) информации. Несмотря на то, что в настоящее время любоая ЭВМ может быть оснащена достаточным набором стандартных устройств ввода и отображения информации (многофункциональные клавиатуры, символьно-графические дисплеи на ЭЛТ, другие манипуляторы), в некоторых случаях возникает необходимость использования нестандартных устройств ввода и отображения информации, выполняющих ограниченный набор функций, но при этом более компактных и приспособленных для работы в специфических условиях. Наличие у современных ЭВМ стандартизированных каналов (портов) ввода-вывода позволяет при наличии соответствующего програмного обеспечения обеспечить взаимодействие таких специализированных устройств с програмно-аппаратным комплексом ЭВМ. Примером таких устройств могут быть внешние блоки охранных систем, ситстем управления различным оборудованием и многое другое. Для вышеописанных целей отечественной промышленностью был разработан ряд устройств, обеспечивающих функции ввода и отображения информации и ряд других вспомогательных функций. Одним из таких устройств является БИС КР580ВВ79, входящая в состав микропроцессорного комплекта КР580. Несмотря на то, чо данная БИС разрабатывалась для использования совместно с микропроцессором из комплекта КР580, данное устройство можно с успехом использовать и с другими устройствами, в частности с ЭВМ типа IBM-PC, используя параллельный интерфейс (LPT). Целью данного курсового проекта является разработка устройства ввода и отображения информации на базе БИС КР580ВВ79. 1. Описание контроллера КР580ВВ79
БИС КР580ВВ79 – программируемое устройство, предназначенное для построения систем (подсистем) отображения информации на основе дисплеев (индикаторов) различных типов, а также ситем (подсистем) ввода информации из различного типа клавиатур (рис. 1, табл. 1). Эта БИС позволяет автоматически сканировать клавиатуру, определить и выдать код позиции клавиши, нажатой в матрице клавиатуры, подавить помехи дребезга контактов клавиатуры, а также регененерировать изображение на дисплее (индикаторе). Программирование восьми режимов ввода и четырех режимов вывода обеспечивает широкие возможности для пользователя при вводе и отображении информации. Вводимая информация может накапливаться в обратном магазине (ОМ) ОЗУ датчиков с доступом "первый вошел-первый вышел" емкостью 8слов Х 8разрядов (8 байт). При наличии информации в ОМ ОЗУ датчиков микросхема вырабатывает запрос прерывания, а в случае ввода или чтения более восьми символов – сигналы ошибок переполнения или переопустошения в слове состояния. Для регенерации изображения на дисплее (индикаторе) в микросхеме имеется ОЗУ отображения объемом 16 слов Х 8 разрядов. Время сканирования клавиатуры и регенерации изображения задается программным способом. По электрическим параметрам БИС КР580ВВ79 полностью совместима с микросхемами серии ТТЛ. Конструктивно выполнена в пластмассовом корпусе типа 2123. 40-2 ГОСТ 17467-79.
Рис. 1. Условное графическое обозначение (а) и назначение выводов (б) БИС КР580ВВ79. 1. 1. Структура контроллера КР580ВВ79.
БИС КР580ВВ79 организована на базе внутренней шины. В ее состав входят (рис. 2): ОМ ОЗУ датчиков со схемой управления и устранения дребезга клавиатуры, буферами клавиатуры и датчиков и схемой анализа состояния ОМ ОЗУ датчиков; схема управления и синхронизации со счетчиком сканирования; ОЗУ отображения с регистрами адреса и данных; средства сопряжения с системной шиной – буферы канала данных и схема управления чтением-записью. ОМ ОЗУ датчиков обеспечивает хранение инфомрмации, поступающей со входов RET7…RET0, и выдачу ее в микропроцессор через внутраннюю шину данных и буферы канала данных по командам чтения. В этом блоке используются следующие сигналы: RET7…RET0 – информация, вводимая с клавиатуры или матрицы датчиков. За счет внутренних нагрузок на этих выводах постоянно обеспечивается состояние лог. 1 до появления входных сигналов низкого уровня. SH – входной сигнал, используемый в режиме сканирования клавиауры для расширения (увеличения числа) функций клавиш (вывод SH также имеет внутреннюю нагрузку. - входной сигнал, назначение которого определяется режимом работы в режиме сканирования (состояние лог. 1) увеличивает число конфигураций клавиатуры; в режиме сканирующего ввода (состояние лог. 0) используется как строб для ввода информации с линий возврата RET0…RET7 в ОМ ОЗУ датчиков по фронту сигнала (вывод также имеет внутреннюю нагрузку). INT – выходной сигнал, переходит в состояние лог. 1: в режиме сканирования клавиатуры при наличии данных в ОМ ОЗУ датчиков; в режиме сканирования матрицы датчиков при обнаружении изменения в датчиках. Схема управления и синхронизации программно задает скорость ввода-вывода и синхронизирует работу всех узлов контроллера. Необходимая скорость ввода-вывода создается от деления частоты входной синхронизации на программно задаваемое число, лежащее в диапазоне 2…31. При работе схемы используются сигналы сброс SR, тактовый С и BD, блокирующий индикатор (дисплей в момент смены кодов символов. Счетчик сканирования – 4-разрядный двоичный счетчик сканирует строки клавиатурной матрицы и регенерирует изображения на дисплее (индикаторе). Программно счетчик можно установить в кодированный или декодированный (дешифрированный режим работы. В кодированном режиме он выдает на линии сканирования S3…S0 4-разрядный двоичный код от 00002 до 11112, который дешифрируется внешними дешифраторами; в декодированном режиме он выдает два младших разряда кода, а на линии сканирования S3…S0 4- разрядный унитарный код (активный уровень – лог. 0). Внешних дешифраторов в этом случае не требуется, однако клавиатура может иметь не более четырех строк клавиш, а дисплей не более четырех знакомест при 8-разрядном коде символа и восемь знакомест при 4-разрядном коде. Буферное ОЗУ отображения – ОЗУ с произвольным доступом, хранит коды символов, отображаемых на дисплее. Каждый байт может рассматриваться как два независимых полубайта. Это позволяет обслужить дисплей с большими функциональными возможностями – на 16 знакомест при восьмиразрядном коде символа и на 32 знакоместа при 4-разрядном коде символа. ОЗУ доступно для записи и чтения информации. Регистр адреса ОЗУ отображения может быть прогаммно установлен в режим автоинкрементирования. В процессе регенерации отображения на дисплее информация из ОЗУ отображения на дисплее циклически выдается на выходы DSPA3…DSPA0 и DSPB3…DSPB0, причем бит DSPA3 соответствует биту D7 шины данных, а DSPB0 – биту D0. Буфер канала данных – двунаправленный трехстабильный, осуществляет стыковку внутренней шины данных БИС КР580ВВ79 с системной шиной данных с помощью линий D7… D0. Схема управления чтением-записью управляет блоками контроллера при приеме информации с системной шины данных и выдаче информации на эту шину. Для управления схемой используются следуюшие сигналы: - разрешают проведение операций чтение-запись, выдачу информации на системную шину данных, прием информации с системной шины данных соответственно; - определяет передачу комманд и слов сотояния (INS=1) или передачу данных (=0). 1. 2. Связь с системной шиной
Операции чтения-записи выполняются в зависимости от состояния управляющих сигналов (табл. 1) Таблица 1. Входные сигналы Вид операции 1 1 0 0 Запись комманды 0 1 0 0 Запись данных 1 0 1 0 Чтение слова состояния 0 0 1 0 Чтение данных Х Х Х 1 Микросхема отключена от системной шины Примечание: Х – безразличное состояние. 1. 3. Программирование
Центральный процессор управляет контроллером с помощью комманд (табл. 2), которые передаются по системной шине данных при = 0 , INS=1 и загружаются по нарастающему фронту сигнала . Комманда "Режим работы" устанавливает режим работы клавиатуры (табл. 3) и дисплея (табл. 4). Таблица 2. Комманда D7 D6 D5 D4 D3 D2 D1 D0 Режим работы 0 0 0 К4 К3 К2 К1 К0 Программирование скорости ввода-вывода 0 0 1 Р4 Р3 Р2 Р1 Р0 Чтение ОМ ОЗУ датчиков 0 1 0 А4 Х А2 А1 А0 Чтение ОЗУ отображения 0 1 1 А4 А3 А2 А1 А0 Гашение – запрет отображения 1 0 1 Х Г3 Г2 Г1 Г0 Сброс 1 1 0 С4 С3 С2 С1 С0 Сброс INT – установка режима обнаружения ошибок 1 1 1 Е Х Х Х Х Примечание: Х – безразличное состояние. Таблица 3. Код Режим клавиатуры К2 К1 К0 0 0 0
Кодированное сканирование с обнаружением одноклавишных сцеплений (устанавливается после сброса) 0 0 1
Декодированное сканирование с обнаружением одноклавишных сцеплений 0 1 0
Кодированное сканирование с обнаружением N-клавишных сцеплений 0 1 1
Дешифрированное сканирование с обнаружением N-клавишных сцеплений 1 0 0 Кодированное сканирование матрицы датчиков 1 0 1 Дешифрированное сканирование матрицы датчиков 1 1 0 Ввод по стробу, кодированное сканирование дисплея 1 1 1 Ввод по стробу, дешифрированное сканирование дисплея Таблица 4. Код Режим дисплея К4 К3 0 0 8-8 битовых символов на дисплее, ввод слева 0 1
16-8 битовых символов на дисплее, ввод слева (устанавливается после сброса SR) 1 0 8-8 битовых символов на дисплее, ввод справа 1 1
16-8 битовых символов на дисплее, ввод справа (устанавливается после сброса SR) 1. 4. Работа БИС КР580ВВ79
Информация в БИС КР580ВВ79 вводится через линии возврата RET7…RET0. В кодированном (дешифрированном) режиме сканирования с обнаружением одноклавишных сцеплений по нажатии клавиши срабатывает логика подавления дребезга. Другие нажатия клавиш обнаруживаются в течение следующих двух сканирований. Если это единственная нажатая клавиша и ОМ ОЗУ датчиков было пусто, то ее позиция записывается в ОМ ОЗУ датчиков вместе с содержимым линий и SH а сигнал INT устанавливается в состояние лог. 1, сообщая центральному процессору (ЦП) о вводе информации в ОМ ОЗУ датчиков из клавиатуры. Если ОМ ОЗУ датчиков было заполнено полностью, то информация с клавиши не будет введена и установится флаг ошибки D5 в слове состояния. В случае одновременного нажатия нескольких клавиш код ни одной из них не будет записан в ОМ ОЗУ датчиков. Код клавиши записывается в ОМ ОЗУ датчиков только одиночным нажатием. В кодированном (дешифрированном) режиме с обнаружением N-клавишных сцеплений каждое нажатие клавиши обрабатывается независимо от всех остальных. При нажатии клавиши схема подавления дребезга ожидает два цикла сканирования и проверяет достоверность нажатия клавиши. При подтверждении нажатия в двух циклах код клавиши записывается в ОМ ОЗУ датчиков. Если встретится одновременное нажатие, то коду клавиш будут распознаны и введены в соответствии с порядком сканирования клавиатуры сигналами S3…S0. В кодированном (декодированном) режиме с обнаружением N-клавишных сцеплений с помощью комманды "сброс INT – установка режима обнаружения ошибок" можно запрограммировать специальный режим обнаружения ошибок. Распознавание и подавление дребезга клавиши происходит, как в обычном N-клавишном режиме. Если в течение одного цикла подавления дребезга две клавиши будут обнаружены нажатыми, то это распознается как одновременные нажатия и устанавливается в регистре слово состояния разряд D6 – флаг ошибки. Указанный флаг запрещает дальнейшую запись в ОМ ОЗУ датчиков и устанавливает на выводе INT состояние лог. 1 (если оно до этого еще не было установлено). В кодированных (дешифрированных) режимах сканирования клавиатуры символы, вводимые в ОМ ОЗУ датчиков, соответствуют позиции датчика в клавиатуре и значению сигналов SH и (неинвертированным). - старший значащий бит, SH- следующий. Далее три бита указывают строку, в которой находится нажатая клавиша. Последние три бита и указывают, к какой линии (RET7…RET0) подсоединена нажатая клавиша. В кодированном (дешифрированном) режиме сканирования матрицы датчиков логика подавления дребезга заблокирована и состояние ключей датчиков вводится непосредственно в ОЗУ датчиков. Хотя подавление дребезга не обеспечивается, этот режим имеет то преимущество, что ЦП "знает" как долго датчик находится в замкнутом состоянии и когда он был разомкнут. Клавиатурные режимы могут только отобразить действительное замыкание. Для упрощения программного обеспечения разработчик должен функционально сгруппировать датчики в строки в том формате, вкотором ЦП будет их читать. Вывод INT устанавливается в состояние лог. 1 (если обнаружено изменение состояния датчика) в конце сканирования матрицы датчиков. В состояние лог. 0 INT переходит после первой операции чтения данных, если перед чтением данных была записана команда "чтение ОМ ОЗУ датчиков", а во время записи команды разряд слова состояния (D4) находился в состоянии лог. 0 или при подаче комманды "сброс INT-установка обнаружения ошибок" (Е=1). В кодированном (дешифрированном) режиме сканирования матрицы датчиков данные с линий возврата RET7…RET0 вводятся прямо в строку ОЗУ датчиков, соответствующую строке матрицы датчиков, которая сканируется. Таким образом, каждая позиция датчика отображается прямо в позиции матрицы ОЗУ датчиков. Входы и SH в этом режиме не используются. Заметим, что к линиям возврата могут быть подключены не только контакты. Любая логика, фиксирующаяся линиями сканирования, выдает данные на входы RET7…RET0. В режиме "ввод по стробу с кодированным (дешифрированным) сканированием дисплея" данные также вводятся в ОМ ОЗУ датчиков через линии возврата RET7…RET0. Данные записываются нарастающим фронтом строб-импульса на линии . Они могут приходить от любой кодированной клавиатуры или матрицы датчиков. Режим 16(8) – битовых символов на дисплее, ввод слева – простейший формат отображения в котором каждой позиции дисплея определена строка (полоустрока) в ОЗУ отображения. Адресу 0 в этом ОЗУ соответствует карйний слева символ дисплея, а адресу 15 в 16-разрядном дисплее или адресу 7 в 8-разрядном – крайний справа символ. Вывод символов начиная с нулевой позиции, вызывает запонение дисплея слева направо. Символ 17-й или 9-й будет в этом случае вводиться снова в крайнюю слева позицию дисплея и т. д. Вывод в произвольную позицию дисплея при установке режима вывод слева направо без сдвига приводит к нежелательным побочным эффектам и результата при этом предсказуем. В этом режиме адресация ОЗУ отображения используется с автоинкрементированием и без инкремента. Инкрементирование способствует увеличению адреса, по которому будет производиться следующая запись, на единицу, и символ появляется в следующей позиции. Без инкремента оба ввода произойдут в один и тот же адрес ОЗУ отображения и позицию дисплея. Режим 16(8)-8 битовых символов на дисплее ввода справа используются в большинстве электронных калькуляторов. Первый введенный символ помещается в правую позицию дисплея. Следующий вводимый символ также помещается в правую позицию дисплея, но после того, как сдвинется все отображение на одну позицию влево. Крайний слева символ при этом сдвигается за край дисплея и теряется. В режиме ввода справа со сдвигом нет прямого соответствия между позицией дисплея и адресом строки ОЗУ отображения. Следовательно, ввод какого-либо символа в некоторую произвольную позицию дисплея не допускается, так как это может привести к неопределенным результатам. Рекомендуется последовательный ввод, начиная с нулевой позиции в режиме автоинкрементирования. Если режим дисплея установлен на восемь символов, то цикл подсвета вдвое меньше, чем он был бы для 16-символьного дисплея, т. е. время сканирования для 8-символьных дисплеев 5, 12 мс и 10, 24 мс для 16-символьных дисплеев при внутренней частоте синхронизации 100 кГц. Слово состояния используется в режимах опроса контроллера для индикации количества символов в ОМ ОЗУ датчиков D3…D0, а также для индикации ошибок при вводе информации по стробу и из клавиатуры. Имеются два типа ошибок – это переполнение и переопустошение. Переполнение D5 возникает, когда предпринимается попытка записи еще одного символа в заполненное ОМ ОЗУ датчиков. Переопустошение D4 происходит, когда ЦП пытается читать пустое ОМ ОЗУ датчиков. Слово состояния также имеет бит D7, указывающий, что ОЗУ отображения занято, так как команды сброс дисплея или общий сброс не завершили оперецию сброса ОЗУ отображения до конца. В кодированном (дешифрированном) сканировании матрицы датчиков в слове состояния устанавливается бит D6, указывающий, что по крайней мере один контакт замкнут в ситуации заполненного ОЗУ датчиков. В N-клавишном специальном режиме устанавливается бит D6 в слове состояния, указывающий, что встретились ошибки нажатия более одной клавиши. 1. 5. Интерфейс клавиатуры
При вводе информации с клавиатуры необходимо обеспечить опрос и анализ состояния датчиков, устранение дребезга, определение кодов датчиков, буферирование введенной информации, сервис (выбор способов опроса и анализа состояний, формирование запросов прерываний и т. п. ). Для упрощения интерфейсов устройств ввода и отображения информации (УВО) обычно применяют мультиплексный опрос датчиков клавиатуры и такое же отображение информациина дисплее. Это, в свою очередь, позволяет объединить функции регенерации изображения и опроса клавиатуры. Датчики клавишного или сенсорного типа, фиксирующие нажатие или касание пальцем, являются основным элементом клавиатуры. Наиболее распространены механические клавишные датчики, изменяющие при нажатии свое сопротивление. Основные их достоинства – невысокая стоимость и возможность прямого подключения к интерфейсам, а недостатки – сравнительно низкая надежность и дребезг контактов. Наряду с механическими используются и другие клавишные датчики: емкостные (изменяющие при нажатии емкость), интегральные (например, работающие на эффекте Холла), механические со встроенными схемами антидребезга, оптические и другие. В отличие от клавишных сенсорные датчики не имеют двигающихся частей и "чувствуют" касание пальца по вносимой емкости или наводкам переменного напряжения, изменению сопротивления сенсорного элемента и т. п. Такие датчики изготавливаются, как правило, в виде элементов топологии печатных плат. К недостаткам сенсорных датчиков относятся отсутствие механической обратной связи, затрудняющее определение оператором факта срабатывания датчика, необходимость в схемах сопряжения, слабая помехоустойчивость, чувствительность к загрязненности сенсорного элемента. Для мультиплексного опроса датчики объединяются в матрицу. Анализ информации о состоянии датчиков, полученный в ходе опроса матрицы, и подготовка информации о сработавших датчиках для ввода в ЭВМ проводятся различными способами в зависимости от требований, предъявляемых к работе клавиатуры. Контроллер клавиатуры и дисплея КР580ВВ79 позволяет программно выбрать один из шести режимов сканирования клавиатуры. Буферирование введенной информации, подготовленной для выдачи в ЭВМ после анализа состояния матрицы, необходимо вводить из-за асинхронности моментов фиксации срабатывания датчиков и считывания данных о них МП БИС. Для фиксации кодов сработавших датчиков используют регистр или ОЗУ, организованное как стек, а для фиксации состояния всей матрицы – обычное ОЗУ. Извещение ЭВМ о наличии готовых к вводу данных в интерфейс клавиатуры обеспечивает схема формирования запроса прерывания и/или регистр состояния буферного ОЗУ. Последний, при отсутствии формируемых интерфейсом прерываний, может использоваться для организации ввода данных в ЭВМ по опрсу как в произвольные моменты, так и по прерываниям от задатчика интервалов времени. В БИС КР580ВВ79 для этих целей служат: буферное ОЗУ (8х8 бит), которое работает как стек FIFO на восемь символов в режимах 1…3, 5 и как ОЗУ датчиков в режиме 4; регистр слова состояния стека – ОЗУ датчиков; выход запроса прерывания, формируемого схемой интерфейса клавиатуры. Доступ к буферному ОЗУ возможен после аппаратного сброса или выполнения комманды "Чтение стека – ОЗУ датчиков". Для регламентации обмена данными между стеком БИС и ЭВМ можно пользоваться словом состояния. Его разряды D0…D3 отражают число кодов в стеке, причем D3=1 указывает на то, что в стеке находится восемь символов, и если данные из него не будут считаны, то информация о следующих сработавших датчиках будет утеряна. Об ошибочных попытках чтения чтения данных из пустого стека и ввода в полный стек очередного кода свидетельствуют флаги переопустошения D4=1 и переполнения D5=1. После чтения слова состояния разряды D4 и D5 автоматически сбрасываются. Одновременно с записью первого кода в стек устанавливается запрос прерывания на выходе INT БИС. Запрос снимается во время чтения очередного кода из стека и устанавливается вновь после окончания чтения, если стек еще не пуст. Кроме этого, возможен аппаратный или программный сброс запроса прерывания. 1. 6. Интерфейс дисплея.
Интерфейс дисплея должен выполнять следующие функции: регенерацию изображения, буферирование отображаемой информации, декодирование информации для знакосинтезирующих индикаторов (ЗСИ), сервис (очистка дисплея, запрет отображения, установка порядка вывода информации на дисплей и способа доступа к буферному ОЗУ дисплея). Сложность интерфейса определяется видом отображаемой информации и физическим принципом действия ЗСИ. Сравнивая характеристики различных типов ЗСИ (табл. ) можно заключить, что наиболее просто с ТТЛ микросхемами сопрягаются полупроводниковые индикаторы. Таблица 5. Тип ЗСИ Параметры питающих напряжений Достоинства Недостатки Полупроводниковые Напряжение питания – 2…5 В Максимальный постоянный ток сегмента – 4…25 мА Импульсный ток сегмента – 200…300 мА
Быстродействующие (время включения 10 нс), долговечность, высокая механическая стойкость, малые габариты, три цвета свечения Высокая потребляемая мощность, большая стоимость Вакуумные люминесцентные Напряжение питания нака-ла – 0, 7…5, 5 В Ток потребления накала – 50…100 мА Импульсное напряжение питания сетки – 20…70 В Импульсный ток потребле-ния сетки – 2, 5…45 мА Импульсное напряжение питания анодов сегментов – 20…70 В
Импульсный ток потребле -ния анодов сегментов – 0, 1…1, 3 мА
Высокая яркость, долговечность, малая потребляемая мощность, несколько цветов свечения Несколько источников питания, низкая механическая стойкость Вакуумные накаливаемые Импульсное напряжение питания сегмента – 20…300 В Эффективное напряжение питания сегмента – 4, 5…7, 0 В Ток потребления сегмента – 20…50 мА Ток потребления сегмента в момент включения – 70…150 мА Дешевизна, стабильность параметров
Инертность, (время включения 25…50 мс), низкие вибростойкость и механическая прочность, высокое потребление один цвет свечения Газоразрядные сегментные постоянного тока Напряжение поджига разряда – 190…220 В Напряжение поддержания разряда – 120…170 В Ток потребления сегмента – 25…40 мкА Малая потребляемая мощность Высокое питающее напряжение, низкая механическая стойкость
При мультиплексном отображении информации (динамическая индикация) выбор знакоместа, на которое она будет выводиться в текущий момент времени, осуществляется сигналами сканирования. Устойчивое изображение на дисплее получается при условии регенерации с частотой, большей 40 Гц. В интерфейсах на основе БИС КР580ВВ79 мультиплексное отображение информации осуществляется под управлением счетчика сканирования. При дешифрированном режиме работы счетчика непосредственно на выводах БИС формируется четыре сигнала сканирования, что дает возможность использовать до четырех знакомест в одной группе. В случае кодированного сканирования в зависимости от запрограммированного режима работы дисплея можно получить с помощью внешней схемы формирования сигналов сканирования до восьми или шестнадцати таких сигналов. Буферирование отображаемой информации при динамической индикации необходимо для хранения информации, выводимой МП БИС на дисплей и выдачи в нужный момент при сканировании. Для буферирования выводимой на дисплей информации в БИС КР580ВВ79 служит внутреннее ОЗУ отображения объемом 16 байт. С помощью комманды "Гашение – запрет записи" пользователь может организовать запись в ОЗУ как целыми байтами, так и отдельными тетрадами (чтение кода всегда осуществляется только побайтно). Это позволяет подключить вторую группу знакомест дисплея, удваивая их число с помощью дешифратора кодов. Данные для дисплея выдаются из ОЗУ отображения на выходы DSPB0…DSPB3 (тетрада В, разряды D0…D3 ОЗУ) и DSPA0…DSPA3 (тетрада А, разряды D4…D7). Чтобы исключить влияние переходных процессов в дешифраторе кодов интерфейса или подсветки индикаторов при переключениях сканирующих импульсов на качество изображения, БИС формирует сигнал запрета отображения . Если этот сигнал активен, то на выходы DSP БИС выдается код очистки дисплея. Его значение устанавливается программно командой "Сброс". При аппаратном сбросе устанавливается код очистки 00, а содержимое ОЗУ отображения не изменяется. На время подачи сигнала сброса на вход CLR БИС ее выходы и DSP устанавливаются в состояние лог. 0. При необходимости (например, для устранения мигания дисплея в случае изменения МП БИС всего содержимого ОЗУ отображения) БИС позволяет запрещать отображение тетрад А и/или В с помощью команды "Гашение – запрет записи". На погашенные тетрады постоянно выдается код очистки дисплея. Для организации правильного вывода информации на дисплей необходимо учитывать установленные режимы работы счетчика сканирования и дисплейной части БИС, а также используемый способ доступа к ОЗУ отображения. Если режим работы задан таким образом, что формируется шестнадцать сигналов сканирования дисплея, то каждому знакоместу ставится в соответствие одна ячейка ОЗУ отображения. Соответствие будет однозначным, (номер знакоместа совпадает с адресои ячейки ОЗУ), если не использовалась автоинкрементная запись при вводе справа со сдвигом. В противном случае соответствие нарушается. Из-за сложности определения адреса ячейки ОЗУ отображения конкретного знакоместа для правильного размещения информации на дисплее при ее обновлении удобнее вначале восстановить соответствие между ними, очистить дисплей выдачей комманды "Сброс" или заново запрограммировать режим работы БИС. Следует отметить, что в случае работы БИС с формированием восьми сигналов сканирования, запись в ячейки с адресами к и к+8 (к=0…7) приведет к выводу информации на одно и то же знакоместо независимо от установленного порядка отображения, а информация, заносимая в любую из этих ячеек, запишется и в остальные. При дешифрированном сканировании дисплея каждому знакоместу поставлены в соответствие четыре ячейки ОЗУ отображения с адресами к, к+4, к+8, к+0Сh (к=0…3). 2. Описание параллельного интерфейса ввода-вывода ЭВМ.
На сегодняшний день каждый IBM-совместимый компьютер комплектуется параллельным интерфейсом ввода-вывода типа "Centronics" (порт LPT), позволяющим организовать обмен данными с максимум тремя внешними устройствами. Чаще всего к указанному порту подключают печетающие устройства и устройства сканирования изображения (сканеры), что, впрочем, не мешает использовать его для подключения других, дополнительных устройств ввода-вывода. Устройство печати IBM PC-подобных компьютеров обычно подключается к параллельному интерфейсу. Для подключения используется стандартный разъем Centronix, имеющий 36 контактных выходов (отечественный аналог ИРПР-М). Допускается три варианта подключения принтеров к ПЭВМ:
- адаптер принтера может находится на одной плате с адаптером монохромного дисплея, при этом используются порты 3BCh - 3BEh;
- к ПЭВМ могут подключены два отдельных адаптера для управления принтерами, использующие порты 378h - 37Ah (первый адаптер) и 278h - 27Ah (второй адаптер).
При программировании принтера важно знать адрес базового порта ввода-вывода (первого порта из трех); адреса базовых портов хранятся в области данных BIOS, начиная с адреса 0: 408h(LPT1) и далее по слову на принтер до LPT4. Дальнейшее описание предполагает, что базовый адрес принтера равен 378h. Порт Операция Описание
--------------------------------------------------------------- 378h Запись Регистр данных - сюда засылается байт, посылае мый на печать Чтение Регистр данных - позволяет считать последний байт, переданный принтеру 379h Чтение Регистр состояния принтера: 7 6 5 4 3 2 1 0 ---T--T--T--T--T-T-T-¬ ¦ ¦ ¦ ¦ ¦ ¦X¦X¦X¦ Биты: LT-+T-+T-+T-+T-+-+-+-- ---- ¦ ¦ ¦ ¦ L---------> 3: 0=при печати возникла ошибка ¦ ¦ ¦ L------------> 4: 0=принтер в автономном режиме ¦ ¦ L---------------> 5: 1=сигнал "конец бумаги" ¦ L------------------> 6: 0=принтер готов к печати ¦ следующего символа L---------------------> 7: 0=принтер занят, находится в автономном режиме или произошла ошибка 37Ah Чтение/ Регистр управления принтером: Запись 7 6 5 4 3 2 1 0 --T-T-T--T--T--T--T--¬ ¦X¦X¦X¦ ¦ ¦ ¦ ¦ ¦ Биты: L-+-+-+T-+T-+T-+T-+T-- ---- ¦ ¦ ¦ ¦ L---> 0: бит запуска печати ¦ ¦ ¦ L------> 1: 1=после возврата каретки выводить ¦ ¦ ¦ перевод строки (в MS-DOS должен ¦ ¦ ¦ быть сброшен) ¦ ¦ L---------> 2: 1=инициализировать принтер ¦ L------------> 3: 1=разрешить вывод на печать (должен ¦ быть всегда установлен) L---------------> 4: 1=разрешить прерывания от принтера
Для управления разрабатываемым устройством можно использовать указанные регистры. 3. Описание разрабатываемого устройства
Разрабатываемое устройство ввода и отбражения информации предназначено для использования в системах безопасности различного уровня в комплекте с персональной ЭВМ, оборудованной другими средствами управления системами безопасности (электронные замки, видеокамеры, другие устройства наблюдения). Устройство представляет собой единый блок, работающий автономно от подключаемой ЭВМ (с собственным блоком питания), и оснащенный шестнадцатисимвольным дисплеем (16 семисегментных индикаторов) и шестнадцатиклавишной клавиатурой, предназначенной для ввода информации и обеспечивающей некоторые функции управления. Программное обеспечение, разработанное для обслуживания блока, обеспечивает чтение символов с клавиатуры с последующим их отображением на дисплее. Считанная последовательность символов воспринимается программным обеспечением как код (пароль), который может быть использован для управления другими устройствами (к примеру, электронным замком). Назначение клавиш следующее: Таблица 6. Обозначение на схеме Наименование Функция SB1…SB13 "0"…"9", "A", "B", "С" Ввод кода (пароля) SB14 "ВВОД" Сигнал завершения ввода SB15 "СБРОС" Ввод кода заново SB16 "ЗВОНОК" Подача звукового сигнала
Как видно из таблицы, вводимый код определяется тринадцатью символами, что значительно усложняет подбор пароля и увеличивает количество комбинаций кода. Вводимая информация отображается на дисплее, при неправильном вводе пароля выводится сообщение об ошибке. Назначение выводов устройства следующее: Таблица 7. Наименование вывода Назначение вывода Вход Выход DAT0…DAT7 Шина данных + + INS/D Передача данных/передача команд + - IORC Разрешение чтения + - IOWC Разрешение записи + - RESET Аппаратный сброс устройства + - PCLK Синхровход + - IRQ Запрос на прерывание - - 4. Разработка программного обеспечения
Программа для управления разрабатываемым устройством выполняет следующие функции: Первичная инициализация устройства; Синхронизация работы устройства и ЭВМ.
Чтение служебной информации из устройства (чтение слова состояния); Чтение данных с клавиатуры устройства и их последующая обработка; Запись обработанной информации в устройство для вывода ее на дисплей; Управление работой устройства.
Программа написана на языке Turbo Pascal 7. 0 и предназначена для работы с операционной системой MS-DOS версии 6. 22 и выше. Управление устройством производится с помощью записи в соответствующие порты ввода-вывода комманд и управляющих сигналов. Состояния выводов соответствующих портов и используемые при работе комманды приведены в табл... Запись и чтение данных производится через порт данных принтера (378h), управляющие сигналы (INS/D, IORC, IOWC, RESET, PCLK, IRQ) передаются устройству через порт управления (37Ah), запрос на прерывание передается контроллером через порт статуса (379h). Таблица 8. Управление устройством. Команда LPT 37Ah 378h X X X INS/D IORC IOWC RESET PCLK DAT7 DAT6 DAT5 DAT4 DAT3 DAT2 DAT1 DAT0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Программирование режима работы X X X 1 1 0 0 1 0 0 0 1 1 0 0 1 Чтение клавиатуры (выбор первого ряда “0”…”7”) X X X 1 1 0 0 1 0 1 0 0 0 0 0 0 Чтение клавиатуры (выбор второго ряда) X X X 1 1 0 0 1 0 1 0 0 0 0 0 1 Чтение клавиатуры (прием данных) X X X 0 0 1 0 1 ? ? ? ? ? ? ? ? Сброс INT X X X 1 1 0 0 1 1 1 1 1 0 0 0 0 Сброс контроллера (аппаратный) X X X Х Х Х 1 1 X X X Х Х Х Х Х Сброс контроллера (програмный) X X X 1 1 0 0 1 1 1 0 1 0 0 1 1 Сброс после вывода на дисплей X X X 1 1 0 0 1 1 1 0 1 0 0 1 0 Запись для вывода на дисплей X X X 0 1 0 0 1 ? ? ? ? ? ? ? ? Чтение слова состояния X X X 1 0 1 0 1 ? ? ? ? ? ? ? ?
Примечание. Х – безразличное состояние; ? – передаваемые либо принимаемые данные. Таблица кодов символов, выводимых программой на дисплей. A B C D E F G H Nh 1 0 1 1 0 0 0 0 0 60 2 1 1 0 1 1 0 1 0 DA 3 1 1 1 1 0 0 1 0 F2 4 0 1 1 0 0 1 1 0 66 5 1 0 1 1 0 1 1 0 B6 6 1 0 1 1 1 1 1 0 BE 7 1 1 1 0 0 0 0 0 E0 8 1 1 1 1 1 1 1 0 FE 9 1 1 1 1 0 1 1 0 F6 0 1 1 1 1 1 1 0 0 FC A 1 1 1 0 1 1 1 0 EE b 0 0 1 1 1 1 1 0 3E E 1 0 0 1 1 1 1 0 9E r 1 0 0 0 1 1 0 0 8C Коды клавиш, получаемые ЭВМ от устройства. Клавиша b0 b1 b2 b3 b4 b5 b6 b7 Nh "0", "8" 1 0 0 0 0 0 0 0 80 "1", "9" 0 1 0 0 0 0 0 0 40 "2", "А" 0 0 1 0 0 0 0 0 20 "3", "В" 0 0 0 1 0 0 0 0 10 "4", "С" 0 0 0 0 1 0 0 0 8 "5", "ВВОД" 0 0 0 0 0 1 0 0 4 "6", "СБРОС" 0 0 0 0 0 0 1 0 2 "7", "ЗВОНОК" 0 0 0 0 0 0 0 1 1 Текст программы приведен в приложении 1. 5. Выбор элементной базы.
Для создания разрабатываемого устройства были использованы ИМС микропроцессорного комплекта КР580 как наиболее совместимые с контроллером ввода-вывода КР580ВВ79. Остальные ИМС (инвертор и дешифратор) были выбраны из соображений электрической совместимости и надежности разрабатываемого устройства. Другие полупроводниковые приборы (транзисторы и светоизлучающие диоды) были выбраны из соображения их максимальной электрической совместимости с выходными характеристиками ИМС, несмотря на их относительно большое энергопотребление по сравнению с другими светоизлучающими знакогенерирующими приборами. Резисторы С2-23 были выбраны, исходя из соображений рационального сочетания цены и стабильности их параметров. Переключатели малогабаритные МП10 были выбраны, исходя из таких их преимуществ, как малые габариты и большая надежность, а следовательно, и наработка на отказ. выводы
Разработанное в данном курсовом проекте устройство ввода и отображения информации на базе контроллера КР580ВВ79 является полезным устройством при проектировании систем безопасности на базе обычных персональных ЭВМ типа IBM PC. Разработанное устройство не требует для подключения никаких дополнительных устройств и имеет достаточно гибкое, легко настраиваемое под конкретные потребности програмное обеспечение. Кроме того, возможности ввода данного устройства могут быть значительно расширены за счет неполного использования матрицы датчиков, причем добавлены могут быть не только кнопочные датчики, а например, температурные либо оптические. Это не потребует дополнения схемы устройства, а только соответствующей доработки программного обеспечения. Исходя из выше сказанного, можно утверждать, что разработанное устройство вполне можно применять в составе различных систем, где кроме стандартных устройств ввода и отображения (а также последующего анализа) информации необходимы дополнительные, компактные и многофункциональные устройства. Несмотря на некоторую моральную устарелость БИС КР580ВВ79, устройства на ее основе вполне можно применять в тех областях, где скорость работы и энергопотребление не играют решающей роли. ЛИТЕРАТУРА.
1. Лю Ю-Чжен, Гибсон Г. Микропроцессоры семейства 8086/8088. Архитектура, программирование и проектиро вание микропроцессорных систем. , Пер. с англ. , М. : Р и С, 1987г. 2. Аналоговые и цифровые интегральные схемы. Под ред. С. В. Якубовского, Радио и связь, 1980. 3. Микропроцессорные средства и системы, журнал. Приложение 1. Листинг управляющей программы.
{программа управления устройством ввода и отображения информации на базе БИС КР580ВВ79 Разработка: Кузин Е. А. } program KR580; uses crt, dos;
const Recode: array[1...16] of byte = ($01, $02, $04, $08, $10, $20, $40, $80, $03, $05, $09, $0B, $12, $22, $42, $82); {код}
Code: array[1...16] of integer = (1, 2, 3, 3, 3, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0); var i, k: integer; Display: array[1...16] of integer; tmp: byte; OK : boolean; label NEW, AGAIN; procedure OutByte(portN, bte: byte); {вывод байта в порт} begin case portN of $378: asm mov al, bte out $378, al end; $37A: asm mov al, bte out $37A, al end; end(*case*); Delay(10); end; function InByte(portN: byte): byte; {чтение байта из порта} begin case portN of $378: asm in al, $378 end; $379: asm in al, $379 end; $37A: asm in al, $37A end; end(*case*); asm mov InByte, al end; Delay(10); end; procedure Init; {первичная инициализация устройства} begin OutByte($37A, $03); {aппаратный сброс} OutByte($37A, $19); {программирование режима } OutByte($378, $19); {работы } end; procedure Wait; {ожидание прерывания от устройства} begin repeat until InByte($379) 0; end;
procedure OutToDisplay(Symbol: integer); {вывод символа на дисплей} {таблица перекодировки выводимых символов}
const Recode: array[1...15] of byte = ($60, $da, $f2, $66, $b6, $be, $e0, $fe, $f6, $fc, $ee, $3e, $9c, $9e, $8c); begin OutByte($37A, $09); OutByte($378, Recode[Symbol]); end; function StatusWord: boolean; {чтение слова состояния} var SW: byte; begin StatusWord : = false; OutByte($37A, $15); SW : = InByte($378); if SW 0 then StatusWord : = TRUE; end; procedure ResetINT; {сброс INT} begin OutByte($37A, $19); OutByte($378, $F0); end; procedure ResetDSPL; {сброс после вывода на дисплей} begin OutByte($37A, $19); OutByte($378, $D2); end; procedure Bell; {подача звукового сигнала} begin Sound(1200); Delay(1000); NoSound; end; function GetChar: byte; {чтение символа с клавиатуры} begin If not StatusWord then begin OutByte($37A, $19); OutByte($378, $40); OutByte($37A, $05); GetChar : = Inbyte($378); if GetChar = 0 then begin OutByte($37A, $19); OutByte($378, $41); OutByte($37A, $05); GetChar : = Inbyte($378)+2; end else begin Bell; Bell; WriteLN('аппаратная ошибка ! !! '); end; ResetINT; end; begin AGAIN: Init; k : = 0; repeat begin Wait; tmp : = GetChar; i : = 0; repeat inc(i); until Recode[i] = tmp; inc(k); case i of 1...13: begin Display[k] : = i; OutToDisplay(i); end; {цифры} 14: k: =16; {ВВОД} 15: goto AGAIN; {СБРОС} 16: Bell; {ЗВОНОК} end(*case*); end; until k=16; for i: =0 to 16 do
if Display[i] Code[i] then OK : = true; {ПРОВЕРКА ПАРОЛЯ} if OK then Exec('proc. exe, ''); {пароль проверен, запуск другой программы} goto AGAIN; end. описание работы схемы.
Управление устройством осуществляется с помощью пяти управляющих сигналов, которые передаются устройству по линиям, подключенным к порту 37Аh параллельного порта (см. принципиальную схему) и составляют канал управления устройством (см. структурную схему). Схема подключения следующая: Сигнал Назначение сигнала № бита № контакта INS/D Прием комманд / прием данных 4 18 IORC Чтение 3 20 IOWC Запись 2 21 RESET Аппаратный сброс 1 9 PCLK Синхронизация 0 11
К каналу статуса (см. структурную схему) подключена линия INT, сигнал на которой появляется, когда нажата одна из кнопок на клавиатуре. Это служит сигналом управляющей программе к началу обработки данных. Линия подключена к выводу 6 разъема (бит 3 порта 379h). Канал данных (контакты 1…8, биты 0…7 порта 378h) служит для приема данных с клавиатуры и передачи устройству комманд и данных. Следует отметить, что для функционирования устройства параллельный порт компьютера должен поодерживать спецификацию ЕРР, которая предусматривает двунаправленную передачу данных по каналу порта 378h. Управляющие сигналы подаются непосредственно на БИС КР580ВВ79 (D3), а данные и комманды передаются и принимаются через буферный регистр D1 (см. принципиальную схему), что необходимо для синхронизации работы устройства и подключаемой ЭВМ. Клавиатурная часть устройства состоит из матрицы клавиш, подключенной непосредственно к линиям возврата RET7…RET0 и линиям выбора S3…S0 БИС КР580ВВ79. Одна из линий клавиш выбирается подачей сигнала высокого уровня на одну из линий вывода. Т. к. в разрабатываемом устройстве используется только 2 ряда по восемь клавиш, для выбора ряда используются только линии S0 и S1. Информация с клавиатуры в виде позиционного кода подается на линии возврата. Дисплейная часть устройства организована следующим образом. Информация из ОЗУ отображения БИС КР580ВВ79 по линиям DSPA3…DSPA0 и DSPA3…DSPA0 последовательно выводится в регистр D5 и отображается на том из индикаторов (HG1…HG16), номер которого, преобразованный в позиционный код с помощью дешифратора D4, выставлен на линиях выбора S3…S0. Также в схеме предусмотрен блок индикации готовности устройства к передаче данных, выполненный на элементах D2. 3, HL1, R42. описание работы программы
Работа программы управления основана на записи и чтении данных (байтов) из портов, составляющих параллельный интерфейс ЭВМ (378h, 379h, 37Ah). Чтение и запись данных в соответствующие порты ввода-вывода осуществляется с помощью процедуры OutByte (выдача байта в порт) и функции InByte, возвращающей значение прочитанного из соответствующенго порта байта. Все остальные управляющие процедуры выполняют свои функции на основании этих двух процедур. Их назначение следующее: Имя процедуры Выполняемая функция Init
Первичная инициализация устройства: аппаратный сброс, выбор режима работы. Wait Ожидание сигнала INT OutToDisplay Вывод символа на дисплей StatusWord
Чтение слова состояния (булева функция, возвращает ИСТИНА, если в слове состояния есть единицы, т. е. при вводе были обнаружены ошибки) ResetINT Сброс сигнала INT ResetDSPL Очистка дисплея, подготовка к новому вводу Bell Подача звукового сигнала GetChar
Чтение символа с клавиатуры (функция, возвращает значение (позиционный код) прочитанного байта, если он прочитан с первой линии клавиш, и значение (позиционный код) увеличенный на два, если чтение произведено со второго ряда)
Разработанная программа начинает свою работу с первичной инициализации (Init), далее происходит цикл ожидания нажатия клавиши (Wait) с последующим чтением кода нажатой клавиши (GetChar) и перекодировкой полученного кода в число, соответствующее номеру клавиши (от 1 до 16, с помощью таблицы перекодировки Recode) и занесение полученного результата в массив Display. Далее происходит проверка прочитанного кода на соответствие необходимому, хранящемуся в массиве Code. Если коды совпадают, булева переменная ОК принимает значение ИСТИНА, и происходит запуск другой программы, выполняющей некоторую сервисную функцию, определяемую пользователем (proc. exe). После выполнения программы програма управления начинается сначала. Поз. позначення Найменування Кіл. Примітка Микросхемы. D1 КР580ВА86 1 D2 К555ЛН1 1 D3 КР580ВВ79 1 D4 К155ИД3 1 D5 КР580ИР82 1 Резисторы С2-23 ОЖО468354ТУ R1 0, 125-10 кОм ±10% 1 R2…R9 0, 125-330 Ом ±10% 8 R10…R25 0, 125-3, 3 кОм ±10% 16 R26…R41 0, 125-10 кОм ±10% 16 R42 0, 125-1 кОм ±10% 1 Транзисторы ОЖО433261ТУ VT1…VT16 КТ350А 16 Светодиоды ОЖО471221ТУ HL1 АЛ307 1 HG1…HG16 АЛС314А 16 Переключатели ОЖО412233ТУ SB1…SB16 МП10 16 ДК 71. 711200 Аркуш 1 Зм Арк. № докум. Підпис Дата


Не сдавайте скачаную работу преподавателю!
Данную курсовую работу Вы можете использовать для написания своего курсового проекта.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем курсовую работу самостоятельно:
! Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ.
! Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу.
! Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться.
! План курсовой работы Нумерованным списком описывается порядок и структура будующей работы.
! Введение курсовой работы Что пишется в введении, какой объем вводной части?
! Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать.
! Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа.
! Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема.
! Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом.
! Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ.

Читайте также:
Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия.
Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта.
Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты.
Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести.
Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя.
Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика.

Сейчас смотрят :

Курсовая работа Суд присяжных: особенности судопроизводства
Курсовая работа Исследование самооценки и уровня притязаний современной молодежи
Курсовая работа Организация процесса управления кредитным риском в коммерческом банке
Курсовая работа Дидактические игры как средство развития познавательного интереса на уроках обучения грамоте
Курсовая работа Формирование спроса на предприятиях общественного питания
Курсовая работа Разработка бизнес-плана на примере ООО "Макин и компания"
Курсовая работа Организационная культура
Курсовая работа Злоупотребление должностными полномочиями
Курсовая работа Планирование себестоимости продукции
Курсовая работа Рекламные агентства
Курсовая работа Уголовная ответственность несовершеннолетних и ее особенности
Курсовая работа Организация маркетинговых исследований на предприятии
Курсовая работа Государственное пенсионное страхование
Курсовая работа Имидж руководителя государственного учреждения и негосударственных структур
Курсовая работа Анализ материальных ресурсов ОАО "Фабрика"