Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Матричная клавиатура AK1604A-WWBСодержание книги
Поиск на нашем сайте
Клавиатура организована в виде матрицы 4x4. Доступ к колонкам и рядам организован как чтение/запись определенного байта внешней памяти (4 бита соответствуют 4 колонкам, другие 4 бита - рядам). Ряды ROW1..ROW4 подключены к плюсу питания через резисторы. Это обеспечивает наличие логической единицы при отсутствии нажатия. На столбцы клавиатуры подают логический ноль. При нажатии на кнопку, происходит изменение значения сигнала на входе соответствующего ряда с единицы на ноль. Клавиатура подключена через расширитель портов на ПЛИС. Рис. 19. Подключение клавиатуры 1.2.10. Последовательный канал В SDK-1.1 последовательный канал гальванически развязан (рис. 20). Гальваническая изоляция или гальваническая развязка – разделение электрических цепей посредством не проводящего ток материала. Гальваническая изоляция позволяет защитить SDK-1.1 от высоких напряжений, различных наводок и подключать его к ПК во время работы. Реализована гальваническая изоляция на базе двух оптронов U8 и U9 (TLP 181). Оптрон TLP181 состоит из светодиода (выводы 1,3) и фототранзистора (выводы 6,4). Если через светодиод пустить ток, то он начинает излучать свет. Свет падает на PN переход фототранзистора и открывает его. Когда свет гаснет, фототранзистор закрывается. Гальваническая изоляция достигается как раз за счет того, что между двумя элементами оптрона нет никакой связи кроме оптической. Рис 20. Гальванически изолированный последовательный интерфейс SDK-1.1 Выход передатчика последовательного канала TxD попадает на катод оптрона U8. Далее сигнал попадает на двухтактный эмиттерный повторитель сделанный на транзисторах Q1 и Q2. Сигнал TD снимается с эмиттеров транзисторов и далее попадает на ПК. Эмиттерный повторитель питается от двух сигналов RS232поступающих от ПК: +Un получается от CTS, -Un получается от сигнала DSR. Для того чтобы схема заработала, необходимо подать -12 В на выход DTR ПК и +12 В на выход RTS ПК. Рис. 21. Подключение сигналов последовательного порта Схема работает так: когда на базы транзисторов попадает положительный сигнал с оптрона открывается транзистор Q1 и на его эмиттере появляется положительный сигнал. Когда на выходе оптрона отрицательный сигнал (оптрон закрыт), то открывается транзистор Q2. Т.к. выход TxD подключен к катоду оптрона, сигнал в оптроне инвертируется, преобразуя TTL сигнал в сигнал RS232. Входной сигнал RD попадает через защитный диод D2 прямо на оптрон. В оптроне сигнал инвертируется и подается на TTL вход приемника RxD. При программировании последовательного канала под Windows, нужного состояния сигналов RTS и DTR можно добиться с помощью двух строк кода на языке С: EscapeCommFunction(Port, SETRTS); EscapeCommFunction(Port, CLRDTR). 1.2.12. Жидкокристаллический дисплей Жидкокристаллический индикатор (ЖКИ) работает в текстовом режиме (2 строки по 16 символов), имеет подсветку (цвет желто-зеленый). Основные характеристики ЖКИ: • Габариты: 80x36x13.2 мм. • Активная область 56.21x11.5 мм. • Размеры точки 0.56x0.66 мм; размеры символа 2.96x5.56 мм. • Встроенный набор 256 символов (ASCII + кириллица). • Генератор символов с энергозависимой памятью на 8 пользовательских символов. Рис. 22. ЖКИ WH1602B-YGK-CP 1.2.13. Звукоизлучатель В SDK-1.1 используется пьезоэлектрический звукоизлучатель НРА17А (Z1). Выходы SND0..SND2 подключены к расширителю портов на базе ПЛИС. Рис. 21. Звукоизлучатель Порядок выполнения работы 1. Изучите структурную и электрическую принципиальную схемы стенда SDK-1.1. Воспользуйтесь комплектом документации к SDK-1.1 и данным пособием. 2. Изучите описание инструментального программного обеспечения. Воспользуйтесь руководством пользователя SDK-1.1 и справочной системой Keil Software. 3. Изучите структуру STARTUP.A51 и простейшего примера программы на языке С. 3.1. Файл STARTUP.A51 ;STARTUP.А51: Этот код исполняется после рестарта процессора ;Для трансляции этого файла используйте ассемблер А51 ;со следующей командной строкой: А51 STARTUP.A51 ;Для сборки вашего проекта и модифицированного вами файла;STARTUP.OBJ используйте линкер BL51 со следующей командной;строкой. ; BL51 <ваши объектные файлы>, STARTUP.OBJ <опции> ;Определяемая пользователем инициализация памяти после;рестарта. ;С этими константами будет производится инициализация памяти: ;Абсолютный адрес начала памяти IDATA всегда 0 IDATALEN EQU 8ОН;Длина памяти IDATA в байтах. XDATASTART EQU ОН;Абсолютный адрес начала памяти XDATA XDATALEN EQU ОН; Размер памяти XDATA PDATASTART EQU ОН; Абсолютный адрес памяти PDTATA PDATALEN EQU ОН; Размер памяти PDATA ;Инициализация стека ;Следующие константы определяют положение стека необходимого;для работы реентерабельных функций ;Модель SMALL IBPSTACK EQU 0; =1 если используется стек для SMALL. IBPSTACKTOP EQU OFFH+1; установка стека в старшую позицию +1. ;Модель LARGE XBPSTACK EQU 0; =1 если используется стек для LARGE XBPSTACKTOP EQU OFFFFH+1; установка стека в старшую;позицию +1. ;Модель COMPACT PBPSTACK EQU 0; =1 если используется стек для COMPACT PBPSTACKTOP EQU OFFFFH+1; установка стека в старшую;позицию +1. ;Определение PPAGE для модели Compact с 64 Кбайт xdata RAM ;Эти константы определяют положение переменных типа pdata. PPAGEENABLE EQU 0; =1 если pdata используется. PPAGE EQU 0; определяет количество страниц PPAGE. NAME?C_STARTUP ?C_C51STARTUP SEGMENT CODE ?STACK SEGMENT IDATA RSEG?STACK DS 1 EXTRN CODE (?C_START) PUBLIC?C_STARTUP ; Установите 0, если вы компилируете программу для симулятора CSEG AT О ; Установите 2100Н, если вы компилируете программу для SDK1.1 CSEG AT 2100H ?C_STARTUP: LJMP STARTUPl RSEG?C_C51STARTUP STARTUPl: ; Очистка IDATA IF IDATALEN <>0 MOV R0,#IDATALEN-1 CLR A IDATALOOP: MOV @R0,A DJNZ RO,IDATALOOP ENDIF ; Очистка XDATA IF XDATALEN <>0 MOV DPTR,#XDATASTART MOV R7,#LOW(XDATALEN) IF (LOW(XDATALEN)) <>0 MOV R6,#(HIGH XDATALEN)+1 ELSE MOV R6,#HIGH(XDATALEN) ENDIF CLR A XDATALOOP: MOVX @DPTR,A INC DPTR DJNZ R7,XDATALOOP DJNZ R6,XDATALOOP ENDIF IF PPAGEENABLE <>0 MOV P2,#PPAGE ENDIF ; Очистка памяти pdata IF PDATALEN <>0 MOV RO,#PDATASTART MOV R7,#LOW(PDATALEN) CLR A PDATALOOP: MOVX @R0,A INC RO DJNZ R7,PDATALOOP ENDIF ; стек для модели SMALL IF IBPSTACK <>0 EXTRN DATA (?C_IBP) MOV?C_IBP,#LOW IBPSTACKTOP ENDIF ; стек для модели LARGE IF XBPSTACK <>0 EXTRN DATA (?C_XBP) MOV?C_XBP,#HIGH XBPSTACKTOP MOV?C_XBP+l,#LOW XBPSTACKTOP ENDIF ; стек для модели COMPACT IF PBPSTACK <>0 EXTRN DATA (?C_PBP) MOV?C_PBP,#LOW PBPSTACKTOP ENDIF ; Установка указателя стека MOV SP,#?STACK-1 ; Переход к программе инициализации памяти и далее к main() LJMP?C_START END 3.1. Простейшая программа на языке Си Следующая программа на языке Си для стенда SDK-1.1 инициализирует последовательный канал на скорости 9600 бод и выдает в него строчку «SDK 1.1». Текст программы: #include "ADuC812.h" // Включение в текст описания регистров // специального назначения ADuC812 void main(void) { TH1 = OxFD; // Скорость 9600 TMOD = 0x2 0; // Таймер 1 в режиме autoreload TCON = 0x4 0; // Запуск таймера 1 SCON = 0x5 0; //8 bit UART, разрешение приема PCON&= 0x7F; // Отключение дублирования скорости, установленной в // ТН1 ЕА =0; // Запрещение прерываний TI = 0; // Обнуление флага завершения посылки SBUF = 'S'; // Инициация посылки символа «S» while(!Т1); // Ожидание завершения посылки TI = 0; SBUF = 'D'; while(!TI); TI = 0; SBUF = 'K'; while(!TI); TI = 0; SBUF = ' 1'; while(!TI); TI = 0; SBUF while(!TI); TI = 0; SBUF = ' 1'; while(!TI); while (1); // «Завершение» программы. } Необходимо обратить внимание на последний оператор в теле функции main(). Бесконечный цикл while (1); играет роль оператора завершения программы. Так как SDK-1.1 не находится под управлением операционной системы, то простой выход из пользовательской программы приведет к неконтролируемой выборке команд микроконтроллером из памяти, что может вызвать нежелательные последствия и даже привести к выходу стенда из строя. Поэтому рекомендуется все программы либо «завершать» бесконечным циклом, либо строить их таким образом, чтобы они работали по бесконечному алгоритму. Для трансляции программы необходим компилятор С51 фирмы Keil Software. 4. Изучите структуру и назначение объектных файлов, OMF, HEX 5. Изучите переменные окружения, необходимые для нормальной работы компилятора. 6. Разберитесь в командных файлах для трансляции программ и для загрузки программ в SDK-1.1. Для трансляции программы используется пакет Keil Software. Keil Software поддерживает все стадии разработки приложения: создание исходного файла на С или Ассемблере, трансляцию, исправление ошибок, линкование объектных файлов, тестирование приложения. В пакете Keil Software содержатся следующие средства разработки для микроконтроллера 8051: • С51 - компилятор С; • Макроассемблер А51; • Динамический загрузчик/компоновщик BL51; • Конвертер объектных файлов ОС51; • Конвертер объектных и НЕХ-файлов ОН51; • Менеджер библиотек LIB 51; • Симулятор dScope-51 (для Windows); • Отладчик/компилятор ц Vision/51 (для Windows); • Операционная система реального времени (Real-Time Operating System - RTX). 7. Оттранслируйте пример простейшей программы и загрузите ее в SDK-1.1. Изучите назначение каждой строки исходного текста в программе. Измените программу и попробуйте ее оттранслировать и загрузить в SDK-1.1. Для трансляции своей программы запустите командный файл make.bat. Пример командного файла: @echo off rem стираем загрузочный модуль Del test.hex rem Транслируем стартовый модуль А51 startup.a51 rem Если ассемблер вернул код ошибки то завершаем командный файл If errorlevel l goto ERROR rem Транслируем нашу программу на языке С С51 test.с CODE LARGE WL(2) rem Если ассемблер вернул код ошибки то завершаем командный файл If errorlevel l goto ERROR rem Формирование файла в формате ОМЕ из объектных модулей. rem Сегмент кода начинается с адреса 0x2100, сегмент данных с адреса 0x7000
|
||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 358; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.45.90 (0.007 с.) |