«Таймер» (по дисциплине: «Микропроцессорные системы») icon

«Таймер» (по дисциплине: «Микропроцессорные системы»)



Название«Таймер» (по дисциплине: «Микропроцессорные системы»)
Дата конвертации21.08.2012
Размер67.82 Kb.
ТипКурсовая
скачать >>>

Московский государственный институт электроники и математики

(технический университет)


Кафедра

«Информационно-коммуникационные технологии»


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

на тему:

«Таймер»

(по дисциплине: «Микропроцессорные системы»)



Выполнили:


Группа:


Проверил:

Давыдов В. В.

С-85

Кудрявцев И. Н.

С – 84

Гудков Ю.И.



Москва 2009 г.

Аннотация


В курсовой работе разрабатывается таймер, выполняющий прямой счет в десятичной форме. В работе использовались прерывания от последовательного порта и таймера, встроенного в контроллер. Работа выполняется на системе “прототип” на основе микроконтроллера 51 семейства.


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


Написать программу для микропроцессора семейства 51, имеющую следующие функции:

  1. Таймер прямого счета.

  2. Ввод трехзначного десятичного числа.

  3. Реализовать старт, сброс, пауза.



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


  1. Настраиваем прерывания

  2. В цикле опрашиваем матричную клавиатуру.

    1. Если нажали кнопку, то записываем значение в регистр R4.

    2. Для избегания эффекта "залипания" запускаем пустой цикл для задержки.

  3. Во время цикла могут поступить два типа прерывания.

    1. Прерывание от последовательного порта.

      1. Читаем символ из порта и если он один из символов a, s, d, то запускаем соответственно процедуры start, stop, pause.

    2. Прерывание по таймеру.

      1. Проверяем, установлен таймер в режим счета (R0=0).

      2. Если переведен, то инкрементируем регистр R3.

      3. Проверяем значение регистра счетчика R3 c введенным числом R4.

      4. Если равен, то сообщаем об этом и останавливаем счет и продолжаем выполнение программы.

      5. Если не равен, то продолжаем инкрементировать счетчик.

  4. Процедуры start, stop, pause.

    1. Процедура start.

      1. Выводим слово "start" в последовательный порт.

      2. Переводим счетчик в режим счета (R0 = 1).

    2. Процедура stop.

      1. Выводим слово "stop" в последовательный порт.

      2. Переводим счетчик в режим простоя (R0 = 0) и обнуляем счетчик (R3).

    3. Процедура pause.

      1. Выводим слово "pause" в последовательный порт.

      2. Переводим счетчик в режим простоя (R0 = 0).




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

3.1 Алгоритм обработчика com порта
























3.2 Алгоритм обработчика прерываний от таймера T0







  1. Исходный код


ORG 8000h

ljmp main

ORG 8003h

reti

ORG 800Bh

call counter

reti

ORG 801Bh

reti

ORG 8023h

call _read

reti

ORG 8030h


counter:


cjne R0, #1, ret_c

djnz R1, ret_c

djnz R2, ret_c

mov R2, #15

inc R3

call out_n

mov A, R3

clr c

subb A, R4

cjne A, #0, ret_c


call boo

call pause

call creset


ret_c: ret


begin: mov B, #10

mov P1, #0FDh ;11111101

jnb P1.4, b4

jnb P1.5, b1

jnb P1.7, b8

jnb P1.6, b0

mov P1, #0FEh

jnb P1.4, b5

jnb P1.5, b2

jnb P1.6, b_start

mov P1, #0F7h

jnb P1.4, b6

jnb P1.5, b3

jnb P1.6, b_stop

mov P1, #0FBh ;11111011

jnb P1.4, b7

jnb P1.5, b9

jnb P1.6, b_reset


jmp begin


b0: call btn_0

call wait

jmp begin


b1: call btn_1

call wait

jmp begin

b2: call btn_2

call wait

jmp begin


b3: call btn_3

call wait

jmp begin


b4: call btn_4

call wait

jmp begin


b5: call btn_5

call wait

jmp begin


b6: call btn_6

call wait

jmp begin


b7: call btn_7

call wait

jmp begin


b8: call btn_8

call wait

jmp begin


b9: call btn_9

call wait

jmp begin


b_start: call start

call wait

jmp begin


b_stop: call pause

call wait

jmp begin


b_reset: call creset

call wait

jmp begin


btn_0: mov A, #'0'

call _out

mov A, R4

mul AB

mov R4, A

call wait

ret


btn_1: mov A, #'1'

call _out

mov A, R4

mul AB

add A, #1

mov R4, A

call wait

ret


btn_2: mov A, #'2'

call _out

mov A, R4

mul AB

add A, #2

mov R4, A

call wait

ret


btn_3: mov A, #'3'

call _out

mov A, R4

mul AB

add A, #3

mov R4, A

call wait

ret


btn_4: mov A, #'4'

call _out

mov A, R4

mul AB

add A, #4

mov R4, A

call wait

ret


btn_5: mov A, #'5'

call _out

mov A, R4

mul AB

add A, #5

mov R4, A

call wait

ret


btn_6: mov A, #'6'

call _out

mov A, R4

mul AB

add A, #6

mov R4, A

call wait

ret


btn_7: mov A, #'7'

call _out

mov A, R4

mul AB

add A, #7

mov R4, A

call wait

ret


btn_8: mov A, #'8'

call _out

mov A, R4

mul AB

add A, #8

mov R4, A

call wait

ret


btn_9: mov A, #'9'

call _out

mov A, R4

mul AB

add A, #9

mov R4, A

call wait

ret


start: mov A, #'S'

call _out

mov A, #'t'

call _out

mov A, #'a'

call _out

mov A, #'r'

call _out

mov A, #'t'

call _out

call draw_enter

mov R0, #1

ret


pause: mov A, #'S'

call _out

mov A, #'t'

call _out

mov A, #'o'

call _out

mov A, #'p'

call _out

call draw_enter

mov R0, #0

ret


creset: mov A, #'R'

call _out

mov A, #'e'

call _out

mov A, #'s'

call _out

mov A, #'e'

call _out

mov A, #'t'

call _out

call draw_enter

mov R3, #0

mov R4, #0

ret


boo: mov A, #'E'

call _out

mov A, #'N'

call _out

mov A, #'D'

call _out

call draw_enter

ret


_out: jnb TI, _out

clr TI

mov sbuf, A

ret


draw_enter: mov A, #0Ah

call _out

mov A, #0Dh

call _out

ret


out_n: mov A, R3

mov B,#100

div AB

add A,#30h

call _out

mov A,B

mov B,#10

div AB

add A,#30h

call _out

mov A,B

add A,#30h

call _out

call draw_enter

ret


_read: jnb RI, _ret_r

clr RI

mov A, SBUF

call _out

cjne A, #'a', re1

call _out

call start

jmp _ret_r


re1: cjne A, #'s', re2

call pause

jmp _ret_r


re2: cjne A, #'d', re3

call creset

jmp _ret_r


re3: mov R7, SBUF

mov A, R7

clr c

subb A, #48

jc _ret_r

mov R7, A

clr c

subb A, #10

jnc _ret_r

mov A, R4

mov B, #10

mul AB

add A, R7

mov R4, A


_ret_r: ret


wait: mov R5, #0

loop1: mov R6, #0

loop2: djnz R6, loop2

djnz R5, loop1

ret

main: mov R0, #0 ; 1 -- schet idet; 0 -- ne idet

mov R1, #0 ; registr dlia zaderzhki

mov R2, #15 ; registr dlia zaderzhki

mov R3, #0 ; schetchik

mov R4, #0 ; vvedennoe chislo

mov IP, #0

mov IE, #10010010b

mov TMOD, #00100011b

mov TCON, #00010000b

mov TH0, #0ffh

jmp begin


ret

end


Заключение


В курсовой работе запрограммирован микроконтроллер 51 серии на ввод/вывод символов от матричной и компьютерной клавиатуры. Использованы прерывания от com порта и таймера T2.


Литература


  1. Справочник. Микроконтроллеры: архитектура, программирование, интерфейс. Бородин В.Б., Шагурин М.И.М.:ЭКОМ, 1999.

  2. Лекции «Микропроцессорные системы», Гудков Ю.И., 2007-2008 гг.

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




Похожие:

«Таймер» (по дисциплине: «Микропроцессорные системы») icon«Таймер» (по дисциплине: «Микропроцессорные системы»)
В курсовой работе разрабатывается таймер, выполняющий прямой счет в десятичной форме. В работе использовались прерывания от последовательного...
«Таймер» (по дисциплине: «Микропроцессорные системы») iconКурсовая работа по дисциплине «Микропроцессорные системы» Тема «Таймер»
Разработать программу на языке Assembler, отсчитывающую время от заданного значения до 0, в шестнадцатеричной системе счисления
«Таймер» (по дисциплине: «Микропроцессорные системы») iconКурсовая работа по дисциплине "Микропроцессорные системы" (
В курсовой работе разрабатывается бинарный таймер обратного отсчета с возможностями ввода начального значения, сбросом, остановкой...
«Таймер» (по дисциплине: «Микропроцессорные системы») iconРабочая программа дисциплины системы обработки и отображения информации
В 1 «Микропроцессорные системы». Предварительно должны быть обязательно изучены такие дисциплины как в3 «Цифровые устройства», в5...
«Таймер» (по дисциплине: «Микропроцессорные системы») iconЛекции по курсу «Микропроцессорные системы»
На тему: «Разработка мультимедийных презентационных материалов по курсу «Микропроцессорные системы»
«Таймер» (по дисциплине: «Микропроцессорные системы») iconДисциплина Микропроцессорные системы управления и контроля Число недель
Рейтинг-план дисциплины Микропроцессорные системы управления и контроля в течение семестра
«Таймер» (по дисциплине: «Микропроцессорные системы») iconЛабораторная работа по дисциплине "Микропроцессорные системы" (Вариант 19) Выполнили: студенты группы с-74 Савельев А. Л

«Таймер» (по дисциплине: «Микропроцессорные системы») icon«Таймер»
...
«Таймер» (по дисциплине: «Микропроцессорные системы») iconКурсовая работа по дисциплине «Информатика» Цифровой таймер на диапазон 1…8 секунд с дискретностью 1 секунда Курсовую
Таймер – устройство, имеющее несколько (в данном случае три) входа, кодирующие время, через которое на выход должен подаваться сигнал...
«Таймер» (по дисциплине: «Микропроцессорные системы») iconКурсовая работа по дисциплине "Микропроцессорные системы"
В курсовой работе разрабатывается калькулятор, выполняющий простейшие операции с двухразрядными числами
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©rushkolnik.ru 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы