Интерфейс клавиатуры, требующей две линии ввода/вывода микроконтроллера

Описание работы схемы, значение и выбор времязадающих компонентов схемы. Выходы частоты и одиночного импульса. Значение номиналов резистора Rp и конденсатора. Подключение интерфейса клавиатуры к микроконтроллеру. Исходный код, демонстрация работы.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид контрольная работа
Язык русский
Дата добавления 20.06.2014
Размер файла 884,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Вступление

Здесь мы рассмотрим интерфейс клавиатуры, требующей две линии ввода/вывода микроконтроллера. Основа нашей 12-кнопочной клавиатуры - интегральный таймер 555, который сконфигурирован как несинхронизированный мультивибратор. Для проверки работоспособности клавиатуры мы будем использовать микроконтроллер PIC16F628A, который будет считывать информацию с выхода таймера, определять какая кнопка нажата и отображать код нажатой кнопки на символьном LCD дисплее.

Цель и задачи исследования

Построить 12-кнопочную клавиатуру с двухпроводным интерфейсом и запрограмировать микроконтроллер PIC16F628A.

Обьект иследования

12 кнопочная клавиатура с програмируемым микроконтроллером PIC16F628A

Метод иследования

Моделирование и Програмирование 12-кнопочной клавиатуры с двухпроводным интерфейсом с помощью програматора для микроеонтполлера PIC16F628A

интерфейс клавиатура микроконтроллер

Основная часть

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

Если мы выберем постоянными значение резистора R1 и конденсатора С, изменение выходной частоты будет связано с изменением резистора R2. Таким образом, если каждую кнопку клавиатуры подключим к различным резисторам, то при нажатии на кнопки мы получим различные значения частоты на выходе таймера. Микроконтроллер может измерить выходную частоту генератора и определить какая кнопка нажата. 
На первый взгляд это кажется более сложной техникой, поскольку могут потребоваться вычисления с плавающей точкой при вычислении частоты. Кроме того, выходная частота таймера 555 окажется нестабильной. Но эти проблемы можно решить правильным выбором значений резисторов и использованием встроенного в микроконтроллер таймера. 

1.Принцип работы клавиатуры

При нажатии одной из кнопок клавиатуры, резистор с определенным значением включается между выводом 7 (Разряд) и выводом 6 (Останов) таймера 555, завершая схему несинхронизированного мультивибратора. Выходные импульсы подсчитываются за период 100 мс встроенным таймером микроконтроллера. Определение микроконтроллером нажатой кнопки производится по количеству переполнений таймера. Т.е., если количество переполнений таймера равно 5, то была нажата кнопка 5. Если была нажата кнопка 0, то переполнения таймера микроконтроллера не произойдет. 

На схеме показано, как можно подключить 12 кнопок к таймеру 555 для генерации 12 различных частот. Резисторы R0 - R# - это 12 различных резисторов, которые включаются в цепь (между выводом 6 и 7 таймера) в соответствии с нажатой кнопкой. 

Для нашего случая номинал резистора R1 - 1 кОм, конденсатора C - 0.01 мкф, в соответствии с типовой схемой включения. В нижеследующей таблице видно соответствие между различными номиналами резистора R2 для каждой кнопки, частотой и количеством переполнений таймера 0 микроконтроллера. Заметим, что некоторые из этих резисторов являются составными для получения нужного номинала.

R1=1кОм, С=0.01мкФ

Кнопка

Номинал

Резистора R2 Ом

Выходная частота Гц

Количество импульсов за 100мс

Количество переполнений Таймера 0

0

47000

1515.79

151.58

0

1

22000

3200

320

1

2

12000

5760

576

2

3

8200

8275.86

827.59

3

4

5600

11803.28

1180.33

4

5

4700

13846.15

1384.62

5

6

3900

16363.64

1636.36

6

7

3400

18461.54

1846.15

7

8

2800

21818.18

2181.82

8

9

2530

23762.38

2376.24

9

*

2200

26666.67

2666.67

*

#

2000

28800

2880

#

2.Описание работы схемы, значение и выбор времязадающих компонентов схемы

2.1 Выходы частоты и одиночного импульса

Как видно на схеме выше, схема имеет на схеме выше два выхода: выход частоты (на схеме обозначен как TOCKI) и выход импульса (на схеме - RA2). 

Выход частоты, непосредственно с вывода 3 таймера, подается на вывод микроконтроллера TOCKI (вход Таймера 0 PIC16F628A) для измерения генерируемой частоты. Второй выход - это выход таймера со сглаживающим конденсатором Cp. При нажатии кнопки на клавиатуре последовательность импульсов с выхода таймера сглаживается конденсатором в единственный импульс. Этот импульс является сигналом для микроконтроллера, что нажата кнопка на клавиатуре. Резистор Rp (3.6 кОм) предназначен для разряда конденсатора Cp при отпускании кнопки клавиатуры, что необходимо для генерации импульса при следующем нажатии кнопки. Диод D1 предназначен для изолирования двух выходов. 

2.2 Значение номиналов резистора Rp и конденсатора Cp 

Значение резистора Rp не выбирается произвольным. Если значение слишком велико, то мы получим слишком большую задержку по времени между двумя нажатиями любых клавиш, т.к. потребуется больше времени для разряда конденсатора Cp. В тоже время, значение сопротивления не должно быть слишком малым, так как напряжение на конденсаторе в значительной степени уменьшится, при следовании двух последовательных импульсов с выхода таймера 555. Мы выбрали значения резистора Rp=3.6 кОм и конденсатора Cp=1 мкФ. В этом случае постоянная времени RC будет равна 0.0036 c. Это означает, что если выходная частота таймера 278 Гц (1/0.0036), напряжение на конденсаторе может снизится до 63% от его амплитудного значения между двумя последовательными импульсами. Как видно, значения Rp и Cp также выбраны не достаточно эффективно, чтобы сгладить все рабочие частоты. 

Следовательно, значения Rp и Cp должны быть подобраны так, чтобы постоянная времени RC была достаточна для сглаживания всех рабочих частот и, между тем, должна быть достаточно малой, чтобы пользователь мог нажимать кнопки на клавиатуре с минимальной задержкой. Текущие значения Rp и Cp вводят задержку 5 мс, кроме того, минимальная частота (из таблицы в первой части статьи) равна 1516 Гц, что намного выше 278 Гц. 

2.3 Роль резистора Rc

Rc имеет сопротивление 10 МОм и включен непосредственно между Vcc и конденсатором С. Данный резистор играет очень интересную роль. Когда пользователь отпускает кнопку, несинхронизированный мультивибратор останавливается, поскольку из цепи исключается резистор R2 (типовая схема включения). Мы знаем, что выходной каскад таймера 555 имеет RS триггер. Предположим, что триггер был сброшен (что означает высокий уровень на выходе 555) в момент, когда кнопка клавиатуры была отпущена. В этом случае теряется путь для подачи сигнала низкого уровня на вход сброса (т.к. исключили резистор R2), пока мы не обеспечим альтернативное решение для перезарядки конденсатора С. Как только конденсатор заряжается до 2/3 напряжения питания, на выходе снова появляется сигнал низкого уровня. Помните, что мы должны убедиться, что выходное напряжение падает до 0, прежде чем будет нажата следующая кнопка. Так вот, резистор Rc заботится об этом процессе. Большое значение его сопротивления (10 МОм) гарантирует, что имеет небольшое влияние на зарядку конденсатора С при нормальной работе. 

2.4 Подключение интерфейса клавиатуры к микроконтроллеру, основные моменты в ПО микроконтроллера, демонстрация работы

Два выхода нашего интерфейса клавиатуры подключаются непосредственно к микроконтроллеру PIC16F628A. Выход одиночного импульса подключается к порту RA2, выход частоты - к порту RA4 (TOCKI) микроконтроллера. С целью демонстрации работоспособности схемы и интерфейса мы используем двухстрочный символьный ЖК индикатор на базе контроллера HD44780, подключенный по 4-битной шине к микроконтроллеру. На индикаторе будет отображаться информация о нажатой кнопке на клавиатуре. 

Дополнительно к выходу таймера был подключен светодиод последовательно с резистором 470 Ом для индикации нажатия кнопки


2.5 Исходный код

// LCD module connections

sbit LCD_RS at RA0_bit;

sbit LCD_EN at RA1_bit;

sbit LCD_D4 at RB4_bit;

sbit LCD_D5 at RB5_bit;

sbit LCD_D6 at RB6_bit;

sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISA0_bit;

sbit LCD_EN_Direction at TRISA1_bit;

sbit LCD_D4_Direction at TRISB4_bit;

sbit LCD_D5_Direction at TRISB5_bit;

sbit LCD_D6_Direction at TRISB6_bit;

sbit LCD_D7_Direction at TRISB7_bit;

// End LCD module connections

sbit Pressed at RA2_bit;

// Определить Сообщения

char message1[] = "Key Pressed = ";

char numbers[] = "0123456789*#";

unsigned short count, Released, Num;

void interrupt(){

Num ++; //Прерывание вызывает номер, который будет увеличиваться на 1

INTCON.T0IF = 0; // Бит T0IF очищается так, что прерывание может повторяться

}

void debounce(){

Delay_ms(25);

}

void main() {

CMCON |= 7; // Disable Comparators

TRISB = 0b00000000; // установить направление для вывода

TRISA = 0b00110100;

Lcd_Init();

Lcd_Cmd(_LCD_CLEAR); // очистить дисплей

Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off

Lcd_Out(1,1,message1); // Написать сообщение 1 в 1-й строке

OPTION_REG = 0b00101000; // TOCS=1 for Counter mode, PSA=0 for 1:2 prescaler

Released = 1;

do {

if (Pressed && Released) {

debounce();

Num = 0;

Released = 0;

INTCON = 0xA0; // Включить прерывания TMR0 и глобальных прерываний

TMR0=0;

Delay_ms(100); // Задержка 100 мс

INTCON = 0x00; // Отключить прерывание TMR0

Lcd_Chr(1,14,numbers[Num]);

}

if(!Pressed) {

debounce();

Released = 1;

}

} while(1);

}

Вывод

Цель и поставленные задачи в работе выполнены.Мы написали код и запрограммировали микроконтроллер. В частности мы построили 12-кнопочную клавиатуру с двухпроводным интерфейсом, написали код и запрограмировали микроконтроллер PIC16F628A. Итак, можно сделать вывод, что с помощью микроконтроллера можно выводить данные на экран.

Размещено на Allbest.ru

...

Подобные документы

  • Разработка принципиальной схемы и описание работы контроллера клавиатуры/дисплея КР580ВД79. Схема сопряжения микроконтроллера с фотоимпульсным датчиком. Расчет потребляемого тока от источника питания. Блок-схема программы вывода информации на индикацию.

    курсовая работа [736,9 K], добавлен 18.02.2011

  • Разработка интерфейса и уточнённой структурной схемы, процессорного модуля, подсистем памяти и ввода/вывода, алгоритма программного обеспечения. Оценка памяти программ и данных. Структура адресного пространства. Организация клавиатуры и индикации.

    курсовая работа [2,4 M], добавлен 09.08.2015

  • Принцип действия формирователя импульса тока. Принцип работы таймера 555 в схеме одиночного запуска. Эскизный расчет схемы формирователя, схемы с таймером. Выбор элементов и компонентов схемы. Детальный расчет, эскиз размещения элементов и компонентов.

    курсовая работа [120,2 K], добавлен 11.03.2010

  • Назначение и описание принципа действия устройства автотранспортного средства, требования к информационно-измерительной системе. Выбор бортового компьютера и модулей ввода (вывода), интерфейса связи. Разработка схемы электрической принципиальной.

    курсовая работа [1,2 M], добавлен 05.01.2013

  • Проектирование схемы устройства управления, выбор и описание элементов схем (ввода-вывода, логические, счетчик и другие элементы), принципы и подходы к реализации различных функций. Моделирование работы схемы в Electronics Workbench, анализ результатов.

    контрольная работа [690,8 K], добавлен 04.04.2016

  • Синтез функциональной схемы. Строение функциональной схемы. Выбор элементной базы и реализация функциональных блоков схемы. Назначение основных сигналов схемы. Описание работы принципиальной схемы. Устранение помех в цепях питания. Описание программы.

    курсовая работа [85,7 K], добавлен 15.09.2008

  • Характеристика микропроцессора Z80, его достоинства и система команд. Проектирование интерфейса, структурной схемы и алгоритма работы управляющей микро-ЭВМ. Разработка модулей памяти, генератора тактового импульса, контроллера, ввода/вывода и индикатора.

    курсовая работа [1,7 M], добавлен 17.02.2014

  • Структурная схема микроконтроллерной системы. Схемы подключения микроконтроллера, цифровых и аналоговых сигналов, линейного дисплея и клавиатуры. Текст главной программы на языке Ассемблера для МК51. Программа ввода и обработки аналоговой информации.

    курсовая работа [372,6 K], добавлен 19.12.2013

  • Общее описание восьмиразрядного высокопроизводительного однокристального микроконтроллера. Порты ввода-вывода. Разработка структурно-функциональной схемы. Выбор элементной базы, основные используемые процедуры. Описание алгоритма программы, ее листинг.

    курсовая работа [28,4 K], добавлен 23.12.2012

  • Построение структурной схемы датчиков и разработка микроконтроллерной системы обеспечения безопасности. Описание интерфейса системы, считывание и обработка данных с помощью сканирования отпечатков пальцев. Использование клавиатуры для ввода пароля.

    дипломная работа [3,8 M], добавлен 04.02.2016

  • Описание алгоритма работы и разработка структурной схемы микропроцессорной системы управления. Разработка принципиальной схемы. Подключение микроконтроллера, ввод цифровых и аналоговых сигналов. Разработка блок-схемы алгоритма главной программы.

    курсовая работа [3,3 M], добавлен 26.06.2016

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

    курсовая работа [111,1 K], добавлен 13.02.2015

  • Функциональная спецификация, описание объекта, структура системы и ресурсов микроконтроллера. Ассемблирование, программирование микроконтроллера и разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы.

    курсовая работа [2,2 M], добавлен 02.01.2010

  • Использование помехоустойчивого кодирования в системах передачи информации. Построение структурной схемы восьмиразрядного микроконтроллера M68HC11. Разработка алгоритма кодирования и декодирования информации. Подключение внешних портов ввода/вывода.

    курсовая работа [1,7 M], добавлен 05.09.2014

  • Анализ функционирования установок для исследования режимов работы компонентов с СЭВМ. Разработка схем микропроцессорных устройств и периферийного оборудования ЭВМ для учебного комплекса по интерфейсам ввода-вывода. Функционирование микросхемы КР580ВВ55.

    курсовая работа [2,5 M], добавлен 20.05.2011

  • Описание схемы высокочастотного генератора передатчика, анализ ее параметров. Выбор рабочей точки схемы по постоянному току, значений номиналов и характеристик элементов на основе предварительных и графоаналитических расчетов схемы на постоянном токе.

    курсовая работа [2,7 M], добавлен 06.01.2012

  • Структурная схема преобразователя, расчет и выбор элементов силовой части схемы. Выбор и описание системы управления частотным преобразователем. Синтез и описание функциональной схемы работы системы управления. Особенности моделирования силовой части.

    курсовая работа [6,2 M], добавлен 28.01.2015

  • Структурная схема микропроцессорного устройства для определения частоты сигнала. Выбор микроконтроллера, описание алгоритма нахождения частоты. Алгоритм работы программы управления микропроцессорным устройством. Программа работы микропроцессора.

    курсовая работа [605,7 K], добавлен 24.11.2014

  • Работа приемно-контрольной панели на примере одношлейфного прибора. Стандарт последовательного интерфейса. Выбор контроллера, основные способы адресации. Инициализация и прекращение передачи данных. Описание электронной схемы и ее функционирования.

    курсовая работа [1,6 M], добавлен 26.07.2013

  • Разработка микроконтроллера для контроля ритма дыхания больного в реанимационной палате. Структурная и принципиальная схемы микропроцессорного контроллера. Модули процессора, памяти, ввода и вывода, режимы индикации. Описание работы, принципиальная схема.

    курсовая работа [197,6 K], добавлен 06.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.