Курсовая работа по дисциплине “Микропроцессорные системы”




Скачать 72.38 Kb.
НазваниеКурсовая работа по дисциплине “Микропроцессорные системы”
Дата публикации30.03.2013
Размер72.38 Kb.
ТипКурсовая
odtdocs.ru > Литература > Курсовая
Московский государственный институт электроники и математики

 

 

 

 

Кафедра ИКТ

 

 

 

 

 

 

 

Курсовая работа

по дисциплине “Микропроцессорные системы”

 

 

 

 

 

 

 

 

Выполнила:

студентка группы С-85

Белякова Д.Ю.

Проверил:

Гудков Ю. И.

Москва 2011

Аннотация


В курсовой работе разрабатывается программа, имитирующая телефонный набор.

Работа выполняется на системе “прототип” на основе микроконтроллера 51 семейства.

Оглавление

Аннотация 2

1. Техническое задание 4

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

3. Опрос мини-клавиатуры клавиатуры 4

4.1. Алгоритм основной программы 5

4.2. Алгоритм обработчика прерываний по таймеру Т0 6

4.3. Алгоритм основной фунции 7

4.4. Алгоритм вывода результата 8

5. Листинг 9

6. Выводы 14

7. Список литературы 15
^





1. Техническое задание


Ввод:

  • Вводятся символы c мини-клавиатуры от 0 до 9.

Вывод:

  • Символы (число=номеру).

  • Время между выводом символов 0,5 секунд.
^

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


В соответствии с техническим заданием устройство должно выполнять:

  • прием символа от мини-клавиатуры;

  • вывод принятого символа с определенной задержкой от мини-клавиатуры.

Прием символов от мини-клавиатуры реализуется с помощью прерываний от таймера T0 и определения нажатой клавиши в обработчике данных прерываний. Для того, чтобы определить, какая кнопка нажата, происходит опрос мини-клавиатуры. Для этого используется порт P1. Вывод символов на терминал реализован с помощью порта SBUF. Помимо этого, символы должны выводиться таким образом, чтобы число, которое вводится было равно номеру. Это означает, что если вводится 5, то цифра 5 должна высвечиваться на экране 5 раз. А время вывода между каждой цифрой 5 на экране должно быть равно равно 5 сек.
^

3. Опрос мини-клавиатуры клавиатуры


Для ввода цифр используется стандартная мини-клавиатура, имеющая шестнадцать кнопок. Для того, чтобы определить, какая кнопка нажата в данный момент, в регистре P1 устанавливаются различные значения для линий P1.4 – P1.7. На проверяемой линии выставляется «0», на остальных – «1». После чего производится проверка на «0» на линиях P1.0 – P1.3. При обнаружении «0» на пересечении линий вызывается обработчик для соответствующей цифры.



1

2

3

+

P1.5

4

5

6

-

P1.4

7

8

9

*

P1.7

D

CX

ВП

/

P1.6

P1.1

P1.0

P1.3

P1.2




Рис 1. Соответствие битов порта P1 и контактов мини-клавиатуры.

4. Алгоритмы
^

4.1. Алгоритм основной программы



Рис 2. Алгоритм основной программы.



4.2. Алгоритм обработчика прерываний по таймеру Т0




Рис 3. Алгоритм обработчика прерываний по таймеру.
^


4.3. Алгоритм основной фунции


Рис 4. Алгоритм основной функции.

4.4. Алгоритм вывода результата



Рис 5. Алгоритм вывода результата.

5. Листинг


################################################################################

#                                                                              #

#    Micro Series 8051 Assembler V1.80/MD2              12/Jan/11  16:23:49    #

#                                                                              #

#       Source   =   bla-bla.s03                                               #

#       List     =   bla-bla.lst                                               #

#       Object   =   bla-bla.r03                                               #

#       Options  =                                                             #

#                                                                              #

#                                               (c) Copyright IAR Systems 1985 #

################################################################################

    1  8000                 org 8000h

    2  8000 0280F6    jmp main

    3                

    4  800B                 org 800Bh; прерывание по таймеру

    5  800B 0280D9    jmp HNDL_P1

    6                

    7  800E 7590FD    HNDL: mov P1, #0FDh ;1 столбец

    8  8011 309537                   jnb P1.5, knopka1

    9  8014 30945D                  jnb P1.4, knopka4

   10  8017 309720                  jnb P1.7, knopka_7

   11  801A 309625                 jnb P1.6, knopka0

   12  801D 7590FE                mov P1, #0FEh ;2 столбец

   13  8020 309531                  jnb P1.5, knopka2

   14  8023 30945D                 jnb P1.4, knopka5

   15  8026 309715                  jnb P1.7, knopka_8

   16  8029 7590F7                  mov P1, #0F7h ;3 столбец

   17  802C 309535                  jnb P1.5, knopka3

   18  802F 309460                  jnb P1.4, knopka6

   19  8032 309701                  jnb P1.7, knopka_9

   20  8035 22                          ret

   21                                

   22  8036 0280C2    knopka_9:  ljmp knopka9

   23  8039 22                                 ret

   24                                  

   25  803A 0280A2   knopka_7:  ljmp knopka7

   26  803D 22                                ret

   27                                  

   28  803E 0280B2   knopka_8:  ljmp knopka8

   29  8041 22                                 ret

   30                                   

   31  8042 7430      knopka0: mov A, #'0'

   32  8044 1280DC                  call ascii

   33  8047 0280D2                   jmp _eol

   34  804A 22                           ret

   35  804B 7431      knopka1: mov A, #'1'

   36  804D 1280DC                 call ascii

   37  8050 0280D2                   jmp _eol

   38  8053 22                            ret

   39  8054 7A02      knopka2:   mov R2, #2h

   40  8056 7432                  k2:  mov A, #'2' 

   41  8058 1280DC                   call ascii

   42  805B 1A                           dec R2

   43  805C EA                           mov A, R2; записываем 1 в аккумулятор

   44  805D B400F6                   cjne A, #0, k2

   45  8060 0280D2                    jmp _eol

   46  8063 22                             ret

   47                            

   48  8064 7A03      knopka3:  mov R2, #3d

   49  8066 7433                 k3:  mov A, #'3' 

   50  8068 1280DC                  call ascii

   51  806B 1A                          dec R2

   52  806C EA                         mov A, R2

   53  806D B400F6                 cjne A, #0, k3

   54  8070 0280D2                  jmp _eol

   55  8073 22                           ret

   56                

   57  8074 7A04      knopka4:  mov R2, #4d

   58  8076 7434                  k4:  mov A, #'4' 

   59  8078 1280DC                   call ascii

   60  807B 1A                           dec R2

   61  807C EA                           mov A, R2

   62  807D 70F7                        jnz k4

   63  807F 0280D2                    jmp _eol

   64  8082 22                             ret

   65                

   66  8083 7A05      knopka5:  mov R2, #5d

   67  8085 7435                 k5:  mov A, #'5' 

   68  8087 1280DC                   call ascii

   69  808A 1A                           dec R2

   70  808B EA                           mov A, R2

   71  808C 70F7                        jnz k5

   72  808E 0280D2                   jmp _eol

   73  8091 22                            ret

   74                

   75  8092 7A06      knopka6:  mov R2, #6d

   76  8094 7436                  k6:  mov A, #'6' 

   77  8096 1280DC                   call ascii

   78  8099 1A                            dec R2

   79  809A EA                           mov A, R2

   80  809B B400F6                   cjne A, #0, k6

   81  809E 0280D2                   jmp _eol

   82  80A1 22                            ret

   83                

   84  80A2 7A07      knopka7:  mov R2, #7d

   85  80A4 7437                  k7:  mov A, #'7' 

   86  80A6 1280DC                   call ascii

   87  80A9 1A                            dec R2

   88  80AA EA                           mov A, R2

   89  80AB B400F6                   cjne A, #0, k7

   90  80AE 0280D2                   jmp _eol

   91  80B1 22                             ret

   92                

   93  80B2 7A08      knopka8:  mov R2, #8d

   94  80B4 7438                 k8:  mov A, #'8' 

   95  80B6 1280DC                   call ascii

   96  80B9 1A                            dec R2

   97  80BA EA                           mov A, R2

   98  80BB B400F6                    cjne A, #0, k8

   99  80BE 0280D2                    jmp _eol

  100  80C1 22                            ret

  101                

  102  80C2 7A09      knopka9:  mov R2, #9d

  103  80C4 7439                 k9:  mov A, #'9' 

  104  80C6 1280DC                  call ascii

  105  80C9 1A                          dec R2

  106  80CA EA                         mov A, R2

  107  80CB B400F6                 cjne A, #0, k9

  108  80CE 0280D2                  jmp _eol

  109  80D1 22                           ret

  110                                   

  111  80D2             _eol:

  112  80D2 75990D            mov SBUF, #0dh

  113  80D5 75990A            mov SBUF, #0Ah

  114  80D8 22                     ret

  115                

  116  80D9           HNDL_P1:

  117  80D9 110E              call HNDL

  118  80DB 32                  reti

  119                

  120                

  121  80DC           ascii:

  122  80DC F599              mov SBUF, A

  123                                   jnb TI, $

  124  80DE C299              clr TI

  125  80E0 0280E4           jmp delay

  126  80E3 22                   ret

  127  80E4           delay:

  128  80E4 7904          mov R1, #04h

  129  80E6 78BF     a2:     mov R0, #0bfh

  130  80E8 74FF     a1:     mov A, #0FFh

  131  80EA 14        a0:    dec A

  132  80EB 70FD              jnz a0

  133  80ED 18                  dec R0

  134  80EE E8                  mov A, R0

  135  80EF 70F7              jnz a1

  136  80F1 19                  dec R1

  137  80F2 E9                 mov A, R1

  138  80F3 70F1             jnz a2

  139  80F5 22                 ret

  140                

  141  80F6           main:

  142  80F6 C299                clr TI

  143  80F8 C2AF               clr EA

  144  80FA 438901            orl TMOD, #00000001b;перевели Т0 в 16-разрядный режим работы

  145  80FD D28C              setb TR0;включаем таймер Т0

  146  80FF D2AF              setb EA;глобальное разрешение прерываний

  147  8101 D2A9              setb ET0;включаем прерывание по Т0

  148  8103 7590F0            mov P1, #0f0h

  149  8106 80FE              jmp $

  150                

  151  8108           end

 

    Errors:  None         ###########

    Bytes:   256          # bla-bla #

    CRC:     6583         ###########

6. Выводы


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



7. Список литературы


  1. Конспект лекций и семинаров по дисциплине “Микропроцессорные системы”.

  2. Описание команд 8051.

  3. Фрунзе А.В. «Микроконтроллеры? Это же просто!», ООО «ИД СКИМЕН», Москва 2002 г.




Добавить документ в свой блог или на сайт

Похожие:

Курсовая работа по дисциплине «Микропроцессорные системы»
В данной работе реализован десятиразрядный таймер, используюший прерывания по com-порту и таймеру. Работа выполнена на прототипе

Курсовая работа по дисциплине «Микропроцессорные системы»
Необходимо разработать программу для микроконтроллера Philips C552 обладающую следующим функционалом

Курсовая работа по дисциплине «Микропроцессорные системы»
В данной работе реализуется десятичный калькулятор, для выполнения 4х базовых арифметические операции, на микропроцессоре Intel 8051,...

Курсовая работа по дисциплине «Микропроцессорные системы» на тему...
В в синусоидальное напряжением 220 в частотой 50 Гц с использованием микроконтроллера Atmega 168 в качестве формирователя синусоидального...

Курсовая работа по дисциплине “Операционные системы” разработка ролевой компьютерной игры
Данная курсовая работа посвящена разработке компьютерной игры на движке «rpg maker xp», включая, в частности, разработку анимаций...

Курсовая работа по дисциплине «Сети ЭВМ и Средства Телекоммуникаций»
Данная курсовая работа посвящена организации потокового вещания видео в браузер средствами html5

Курсовая работа по дисциплине «Сети ЭВМ и Средства Телекоммуникаций»
Данная курсовая работа посвящена организации потокового вещания видео в браузер средствами html5

Курсовая работа по дисциплине «Микпропроцессорные системы»
В данной работе реализована программа счетчика нажатий на мини-клавиатуру для микроконтроллера 51 семейства, использующая прерывания...

Курсовая работа по дисциплине «Корпоративные информационные системы»
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Курсовая работа по дисциплине «Корпоративные информационные системы»
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница