Проектирование контроллера клавиатуры на базе микроконтроллера К1816ВЕ31

Страницы работы

Содержание работы

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Факультет       Радиотехнический

Кафедра          Проектирование и технология электронных средств

Дисциплина       Проектирование микропроцессорных устройств

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

Руководитель(Андреев Д. В.)

Студент                                                                 

Ульяновск 2007

Содержание

Введение......................................................................................................................................................... 2

1. Анализ технического задания............................................................................................................... 3

2. Формирование требований к аппаратной и программной компонентам.................................. 4

3. Разработка схемы электрической принципиальной....................................................................... 5

  3.1. Обоснование выбора элементной базы........................................................................................ 5

  3.2. Анализ совместимости элементов схемы................................................................................... 7

  3.3. Ориентировочный расчет токопотребления............................................................................ 9

  3.4. Обеспечение помехоустойчивости устройства...................................................................... 10

4. Разработка программы....................................................................................................................... 11

  4.1. Разработка алгоритма.................................................................................................................. 13

  4.2. Разработка листинга программы на языке ассемблер.......................................................... 14

  4.3. Расчет необходимого объема памяти........................................................................................ 15

Заключение.................................................................................................................................................. 16

Библиографический список...................................................................................................................... 17

Приложение

    Алгоритм программы

    Схема электрическая принципиальная

ПТЭС 466513.001 ПЗ

Изм

Лист

№ докум

Подп

Дата

Разраб

Контроллер клавиатуры

Пояснительная записка

Лит

Лист

Листов

Пров

Андреев

У

1

УлГТУ Рд-51

Введение

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

Бурное развитие получило направление микроэлектроники, связанное с выпуском однокристальных микроконтроллеров, которые представляют собой приборы, конструктивно выполненные в виде БИС. Использование микроконтроллеров в системах управления обеспечивает достижение исключительно высоких показателей эффективности при низкой стоимости [1]. 

На сегодняшний день в радиотехнике широкое применение получили устройства с применением программируемых микроконтроллеров (МКК) семейства MCS-51.

Задачей курсовой является разработка контроллера клавиатуры на базе микроконтроллера К1816ВЕ31. Применение микроконтроллера К1816ВЕ31 ограничено тем, что он не содержит встроенной памяти программ, однако может использовать до 64 Кбайт внешней постоянной или перепрограммируемой памяти программ и эффективно использоваться в системах, требующих существенно большего по объему (чем 4 Кбайт на кристалле) ПЗУ памяти программ.

Необходимо разработать контроллер клавиатуры с форматом коммутационного поля 8x8, программу опроса, кодирования номера замкнутого контакта, подавления «дребезга».

ПТЭС 466513.001 ПЗ

Лист

2

Изм

Лист

№ докум

Подп

Дата

1. Анализ технического задания

Необходимо реализовать на основе микроконтроллера К1816ВЕ31 контроллер клавиатуры с размером коммутационного поля 8х8. Разработать программу опроса, кодирования номера замкнутого контакта, подавления «дребезга».

Курсовая работа должна содержать следующую документацию:

пояснительная записка;

схема электрическая принципиальная;

перечень элементов;

алгоритм и листинг программы.

ПТЭС 466513.001 ПЗ

Лист

3

Изм

Лист

№ докум

Подп

Дата

2. Формирование требований к аппаратной и программной компонентам

2.1. Формирование требований к программной компоненте

 Программа должна опрашивать клавиатуру и при наличии нажатой клавиши кодировать номер активного контакта, а также должно быть реализовано подавление «дребезга».

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

2.2. Формирование требований к аппаратной компоненте

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

Необходимо:

использовать микросхему РПЗУ для хранения памяти программ;

обеспечить автоматический сброс МК при включении питания;

обеспечить помехоустойчивость всего устройства.

ПТЭС 466513.001 ПЗ

Лист

4

Изм

Лист

№ докум

Подп

Дата

3. Разработка схемы электрической принципиальной

3.1. Обоснование выбора элементной базы

     При включении питания, прежде всего, необходимо произвести сброс МКК. Автоматический сброс реализуется подключением входа RST к шине +5В через конденсатор С3 = 10 мкФ и к ЕА через резистор R9 = 8,2 КОм. Чтобы при включении питания сброс был гарантированно выполнен, вывод RST должен удерживаться в состоянии высокого уровня в течение времени, достаточного для запуска тактового генератора МКК и плюс еще минимум два машинных цикла. Время запуска тактового генератора МКК зависит от его частота работы, и для К1816ВЕ31 примерно равна 0,8 с (для сравнения: для 10 МГц кварцевого резонатора оно составляет в среднем 1 мс).

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

     Так как МКК не имеет резидентной памяти программ, необходимо использование внешней памяти программ. Для этой цели взята микросхема К573РФ5. Это репрограммируемое ПЗУ с электрической записью информации и ультрафиолетовым стиранием.

     При обращении к ВПП всегда формируется 16-разрядный адрес, младший байт которого выдается через порт Р0, а старший через порт Р2. При этом адрес байта, выдаваемый через порт Р0, фиксируется во внешнем регистре по спаду сигнала ALE, так как в дальнейшем линии порта Р0 используются в качестве шины данных, по которой байт из ВПП вводится в МКК.

     При такой схеме подключения порт Р0 работает как мультиплексированная шина адрес/данные: выдает младший байт счетчика команд, а затем переходит в высокоимпедансное состояние и ожидает прихода байта из ППЗУ. Когда младший байт адреса находится на выходах порта Р0, сигнал ALE защелкивает в адресном регистре (микросхема DD2, см. схему электрическую принципиальную). Старший байт адреса находится на выходах порта Р2 в течении всего времени обращения к ППЗУ. Сигнал PME разрешает выборку байта из ППЗУ, после чего выбранный байт поступает на порт Р0 МКК.

ПТЭС 466513.001 ПЗ

Лист

5

Изм

Лист

№ докум

Подп

Дата

     При работе с ВПП сигнал PME формируется дважды в каждом машинном цикле независимо от количества байт в команде (рисунок 1). Если второй выбираемый в текущей команде не используется, он игнорируется МКК. В дальнейшем при переходе к выполнению следующей команды этот байт будет введен вторично. Но если выполняется команда MOVX, два сигнала PME не формируются, т.к. порт Р0 освобождается для адресации и обмена данными с внешней памятью данных.

PCL OUT выдача младшего байта счетчика команд

PCH OUT выдача старшего байта счетчика команд

D периоды, в течении которых данные с Р0 вводятся в МКК

Рисунок 1. Работа МКК с ВПП

Для работы с клавиатурой используются порты Р1 и Р3. К порту Р3 подключаются линии сканировании, а к порту Р1 линии возврата. 

ПТЭС 466513.001 ПЗ

Лист

6

Изм

Лист

№ докум

Подп

Дата

3.2. Анализ совместимости элементов схемы

Основные характеристики микросхем, используемых в контроллере клавиатуры:

К1816ВЕ31:

Технология изготовления........................................................................................................... nМОП

Разрядность информационного слова.............................................................................................. 8

Максимальная тактовая частота, МГц........................................................................................ 12

Емкость резидентной памяти данных, байт............................................................................. 128

Емкость ВПД И ВПП, байт.............................................................................................................. 64К

Напряжение питания, В............................................................................................................. 5±10%

Максимальный ток потребления, мА........................................................................................... 150

КР580ИР82:

Технология изготовления........................................................................................................... nМОП

Разрядность информационного слова.............................................................................................. 8

Напряжение питания, В................................................................................................................ 5±5%

Максимальный ток потребления, мА........................................................................................... 160

Максимальное выходное напряжение низкого уровня, мВ......................................................... 450

Минимальное выходное напряжение высокого уровня, В........................................................... 2.4

К573РФ5:

Технология изготовления................................................................................................. nЛИЗКМОП

Информационная емкость, бит..................................................................................................... 16К

Количество слов.................................................................................................................................. 2К

Количество разрядов............................................................................................................................ 8

Количество циклов перезаписи...................................................................................................... 100

Напряжение питания, В................................................................................................................ 5±5%

Максимальный динамический  ток потребления, мА...................................... 100

Максимальное выходное напряжение низкого уровня, мВ.................................................... 400

Минимальное выходное напряжение высокого уровня, В.................................................... 2.4

ПТЭС 466513.001 ПЗ

Лист

7

Изм

Лист

№ докум

Подп

Дата

Все цифровые микросхемы, у которых логический «0» и логическая «1» моделируются одним и тем же напряжением, имеют одинаковое напряжение питания. В среднем для этих микросхем логический «0» - 0.45 В, логическая «1» - 2.5 В. Таким образом, они совместимы по логическому уровню.

Все микросхемы выполнены по технологии nМОП и совместимы по входам и выходам [2].

ПТЭС 466513.001 ПЗ

Лист

8

Изм

Лист

№ докум

Подп

Дата

3.3. Ориентировочный расчет токопотребления

    Токопотребление микросхем приведено в таблице 1.

Таблица 1                    

Токопотребление микросхем

Наименование

Токопотребление, мА

К1816ВЕ31

150

КР580ИР82

160

К573РФ5

100

     Так как все микросхемы включены параллельно по отношению к источнику питания, то для вычисления общего токопотребления необходимо суммировать значение токопотребления каждой микросхемы. Получаем:

I = 150 + 160 + 100 = 410 (мА).

ПТЭС 466513.001 ПЗ

Лист

9

Изм

Лист

№ докум

Подп

Дата

3.4. Обеспечение помехоустойчивости устройства

     В схеме имеются три микросхемы серии n-МОП и n-ЛИЗМОП. Для устранения низкочастотных помех необходим конденсатор из расчета не менее 0.03 мкФ на одну микросхему [3]. Для этой цели конденсатор С5 должен быть типа К50-38 16В 10 мкФ.

     Для подавления высокочастотных помех конденсатор С4 должен быть типа К10-17 М47 0,047 мкФ.

ПТЭС 466513.001 ПЗ

Лист

10

Изм

Лист

№ докум

Подп

Дата

4. Разработка программы

     Для обслуживания клавиатур в МК системах используют программу опроса состояния клавиатуры и ввод кода нажатой клавиши. Первая производит однократное обращение к матрице клавиш для определения, нажата ли хоть одна клавиша. Вторая осуществляет циклический опрос клавиатуры, для определения конкретного кода нажатой клавиши, и состоит из сканирования матрицы клавиш с одновременной идентификацией кода нажатой, устранения дребезга клавиш и ожидания освобождения клавиши [1].

     Коммутационное поле форматом 8x8 представлено в виде таблицы 2. Последовательность байтов сканирования представляет собой код «бегущий ноль». В порт Р3 выдается байт сканирования, содержащий ноль только в одном бите. Если на пересечении линии сканирования и возврата находится нажатая клавиша, то в соответствующем бите байта возврата, принимаемого в порт Р1, будет находиться ноль.                                                                        

Таблица 2

Коммутационное поле

00

01

02

03

04

05

06

07

P3.0

08

09

0A

0B

0C

0D

0E

0F

P3.1

10

11

12

13

14

15

16

17

P3.2

18

19

1A

1B

1C

1D

1E

1F

P3.3

20

21

22

23

24

25

26

27

P3.4

28

29

2A

2B

2C

2D

2E

2F

P3.5

30

31

32

33

34

35

36

37

P3.6

38

39

3A

3A

3B

3C

3D

3F

P3.7

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

ПТЭС 466513.001 ПЗ

Лист

11

Изм

Лист

№ докум

Подп

Дата

      Подавление «дребезга» контактов может осуществляться аппаратно (путем подключения в цепи сканирования и возврата триггеров) и программно (путем временной задержки). Так как первый метод усложняет схему разрабатываемого устройства, то выбираем второй метод. Тем самым в большей степени реализуются возможности МК.

      Временная задержка должна быть длительностью 20 мс. Получение требуемой временной задержки получается на основе расчета времени выполнения команд, образующих данную программу. Известно, что на выполнение команды mov Rn,#data8 требуется 1 машинный цикл, а на djnz Rn,addr требуется 2 машинныx цикла [4]. Длительность одного машинного  цикла Т=12/f=12/12МГц=1мкс.

               delay:        mov r1,#39               ;задержка(20мс) для устранения

                         l1:       mov r2,#255             ;дребезгов контактов

                         l2:       djnz r2,l2                 ;декремент и цикл, если не 0

                                        djnz r1,l1         

      Таким   образом,  длительность     такой      программы определяется следующим образом:

Т = 1 + ((1 + 2 х 255) + 2) х 39 = 20008 мкс 20мс

     Для того, чтобы при повторном обращении к клавиатуре не был введен код той же клавиши вводится программа ожидания освобождения. После сканирования осталась активной та линия, в которой была обнаружена нажатая клавиша, поэтому вся программа сводится к считыванию и анализа байта возврата (ожидания момента, когда в байте возврата будут только единицы) [1].

ПТЭС 466513.001 ПЗ

Лист

12

Изм

Лист

№ докум

Подп

Дата

4.1.  Алгоритм программы

     Алгоритм программы представлен в приложении.

ПТЭС 466513.001 ПЗ

Лист

13

Изм

Лист

№ докум

Подп

Дата

4.2. Разработка листинга программы на языке ассемблер

 Thu Jun  1 2007 12:01                                                                                                  Page    1

               2500 A.D. 8051 Macro Assembler  -  Version 4.02a

               ------------------------------------------------

                       Input  Filename : rin.asm

                       Output Filename : rin.obj

1   0000   74 00   ask:           mov a,#00h        ; опрос состояния клавиатуры,запись в А

    2                                              ;00h т.к. сканирование 0

    3   0002   F5 B0       mov p3,a                ;вывод байта "все 00 для

    4                                              ;одновр. опроса всех клавиш

    5   0004   E5 90       mov a,p1                ;запись байта возврата в А

    6   0006   F4          cpl a               ;инверсия А

    7   0007   60 F7       jz ask              ;переход к началу, если нет нажатой

    8                                                      ;клавиши(т.е. если А=0)

    9   0009   7B 00     scan: mov r3,#0     ;обнуление счетчика кода сканирования

   10   000B   7F 08           mov r7,#8         ;загрузка счетчика сканирования(т.е. 8 строк)

   11   000D   7E FE           mov r6,#11111110b ;загрузка исходного байта сканирования

   12   000F   7A FE           mov r2,#11111110b ;начальный байт опрса по проверке

   13                                                ;в каждой строке столбцов

   14   0011   EE          loop: mov a,r6         ;т.к. сканирование идет 0

   15   0012   F5 B0            mov p3,a        ;вывод текущего байта скан. в Р3

   16   0014   23                rl a             ;сдвиг байта скан.

   17   0015   FE                mov r6,a         ;сохранение текущего байта

   18   0016   7D 08            mov r5,#8      ;загрузка счетчика опросов(т.е. 8 столбцов)

   19   0018   EA               mov a,r2         ;загрузка нач. байта опроса в А

   20   0019   B5 90 03  rotate: cjne a,p1,rot    ;если А не равен Р1,то переход

   21   001C   02 00 25           jmp keyw      ;если А=Р1, то переход к

   22                                          ;определению нажатой клавиши

   23   001F   23          rot:         rl a            ;сдвиг байта опроса

   24   0020   0B                       inc r3          ;

   25   0021   DD F6                  djnz r5,rotate ;декремент счетчика опроса

   26                                                     ;и цикл, если не 0

   27   0023   DF EC                 djnz r7,loop    ;декремент счетчика сканирования

   28                                                  ;и цикл, если не 0

   29   0025              keyw:                                    

   30   0025   79 27     delay:  mov r1,#39     ;задержка(20мс) для устранения

   31   0027   7A FF        l1:   mov r2,#255   ;дребезгов контактов

   32   0029   DA FE       l2:       djnz r2,l2     ;декремент и цикл, если не 0

33   002B   D9 FA                  djnz r1,l1      ;

34   002D   8B F0                  mov b,r3            ;вывод кода нажатой клавиши в регистр b

   35   002F   74 FF     waitop:   mov a,#ffh    ;ожидание освобождения клавиши

   36   0031   B5 90 FD  wait: cjne a,p1,wait     ;сравнеие байта возврата Р1 с А (11111111b),

   37                                                 ;если нажата то ждать

   38   0034   01 00           jmp ask           ;начать с начала     

   39                            

           Lines Assembled :  39             Assembly Errors :  0

ПТЭС 466513.001 ПЗ

Лист

14

Изм

Лист

№ докум

Подп

Дата

4.3. Расчетнеобходимогообъемапамяти

     Для определения необходимого объема памяти воспользуемся данными из файла rin.map.

Global Symbol Name             Global Value     Global Filename

******************************************************************************

*                             L O A D      M A P                                *

******************************************************************************

*    Section Name              Starting Address    Ending Address    Size     *

******************************************************************************

* rin.obj                                                                            *

*    CODE                            0000               0035         0036       *

******************************************************************************

Linker Output Filename : rin.hex

Disk Listing  Filename : rin.map

Symbol Table  Filename : <None Specified>

Link Errors :  0                Output Format :  Intel Hex

Таким образом, необходима память объемом не меньше 54 байт.

ПТЭС 466513.001 ПЗ

Лист

15

Изм

Лист

№ докум

Подп

Дата

Заключение

     В данной работе был спроектирован контроллер клавиатуры на базе микроконтроллера К1816ВЕ31, с форматом коммутационного поля 8Х8, разработана программа опроса, кодирования номера замкнутого контакта, подавления «дребезга».

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

     Проделанная работа закрепила полученные на лекциях и практических занятиях знания в области проектирования микропроцессорных устройств.

ПТЭС 466513.001 ПЗ

Лист

16

Изм

Лист

№ докум

Подп

Дата

Библиографический список

1. Сташин В.В., Урусов А.В., Мологонцева О.Ф.. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990.

2. Применение интегральных микросхем памяти: Справочник/Под ред. А. Ю. Гордонова, А. А. Дерюгина.М.: Радио и связь, 1994 232 с.: ил.

3. Боборыкин А.В., Липовецкий Г.П., и др. Однокристальные микро ЭВМ. Справочник. Бином. 1994.

4. Андреев Д.В. Программирование микроконтроллеров MCS-51: Учебное пособие.- Ульяновск: УлГТУ, 2000.

ПТЭС 466513.001 ПЗ

Лист

17

Изм

Лист

№ докум

Подп

Дата

Похожие материалы

Информация о работе