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



Дата28.04.2013
Размер76.3 Kb.
ТипКурсовая


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

Кафедра ИКТ


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

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

(Вариант 8)


Выполнили: студенты группы С-84

Овсиенко А.Ю.

Бобылева А.А.

Проверил:

Гудков Ю. И.

Москва 2008

Аннотация


В курсовой работе разрабатывается драйвер для джостика.

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


Оглавление

Аннотация 3

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

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

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

4. Алгоритм размещения символа в буфере для вывода 7

5. Исходный код 7



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


Реализовать с помощью системы прерываний:

Ввод:

изменение положения джостика. 8 состояний

Вывод:

Иммитация циферблата часов, пассивное состояние «OFF».

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


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

- прием сигнала с джостика

- вывод времени соответсвующего положению на циферблате

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

Вывод времени реализуется с помощью прерываний от com порта (бит TI).
Основная программа инициализирует прерывания от com порта и таймера T2, после чего ожидает любого из перечисленных прерываний.
Соответствие битов порта P1 и контактов джостика:


12:00

3:00

P1.0

9:00

6:00

P1.5

P1.1

P1.4





Остальные положения являются одновременным замыканием 2-х контактов.

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







4.
Алгоритм размещения символа в буфере для вывода



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


org 8000h

ljmp MAIN
org 8023h

ljmp COM_PORT_HANDLER
org 8033h; P1.0

ljmp HNDL_P1
org 803Bh; P1.1

ljmp HNDL_P1
org 8043h; P1.2

ljmp HNDL_P1
org 804Bh; P1.3

ljmp HNDL_P1
MAIN:

clr TI

clr RI

TM2IR equ 0C8h;interrupt flag register
IEN1 equ 0E8h;T2 interrupt enable register;

TM2CON equ 0EAh;T2 config register;

IP1 equ 0F8h ;interrupt priority

CTCON equ 0EBh; capture control

mov IEN1, #0Fh

mov CTCON, #10101010b ;falling 0-3 bits in P1 if interupt occured

mov TM2CON, #00000011b; Timer T2 mode select ;;;;;?

mov IP1, #00h

mov P1, #0Fh

setb IE.7 ;enable interrupt

setb IE.4 ;enable interrupt from COM - por
ptr_buf equ 60H ;buf for OUT_FUNCput

buf_size equ 59H ;sizeof(buf)

symbol equ 58H ; symbol for OUT_FUNCput

var_curr_ind equ 57H; current index in buf

var_next_ind equ 56H; index for shift


mov buf_size, #0h ;init buf_size

mov symbol, #0h ;init symbol(no symbol for OUT_FUNC)
LOOP:

nop

jmp LOOP

ret

SHIFT_BUF:; shift buf ptr_buf+1; *ptr_buf=symbol

mov A, buf_size

jz RETURN_SHIFT

;mov var_next_ind, buf_size

mov R3, buf_size ;for

LOOP_SHIFT:

mov var_next_ind, R3

mov A, var_next_ind

dec A

mov var_curr_ind, A

mov A, #ptr_buf

add A, var_next_ind

mov var_next_ind, A ;valid shift addr

mov A, #ptr_buf

add A, var_curr_ind

mov var_curr_ind, A ;valid current addr

mov R0, var_curr_ind

mov A, @R0 ;mov to A value from current addr

mov R0, var_next_ind

mov @R0, A

djnz R3, LOOP_SHIFT

RETURN_SHIFT:

ret
PUT_SYMBOL_IN_BUF:

call SHIFT_BUF

inc buf_size

mov ptr_buf, symbol

;mov symbol, #0h

ret
OUT_FUNC:

mov A, symbol

jz FUNC_PROCESS

call PUT_SYMBOL_IN_BUF

FUNC_PROCESS:

mov A, buf_size

jz RETURN_OUT; if(!buf_size){return;}

dec A

mov var_next_ind, #ptr_buf

add A, var_next_ind

mov R0, A ;last addr in R0

mov A, @R0

dec buf_size

clr TI

mov SBUF, A

mov symbol, #0h ;no symbol for OUT_FUNC

RETURN_OUT:

ret

DELAY_PRESS:

mov r7,#0fh

DEL_1:

mov r6, #0FFh

DEL_2:

nop

djnz r6, DEL_2

djnz r7, DEL_1

ret
HNDL_P1:

mov TM2IR, #00h

begin_1:

k2: mov P1, #0DFh

jnb P1.0, check1

jnb P1.1, check1

jnb P1.4, check1

k1: mov P1, #0FEh

jnb P1.1, check

jnb P1.4, check

jnb P1.5, check

jmp begin_1

logic: mov A, P1

cjne A, #0FCh, b1

call n0

b1: cjne A, #0ECh, b2

call ne0

b2: cjne A, #0EEh, b3

call e0

b3: cjne A, #0CEh, b4

call se0

b4: cjne A, #0CFh, b5

call s0

b5: cjne A, #0CDh, b6

call sw0

b6: cjne A, #0DDh, b7

call w0

b7: cjne A, #0DCh, begin_1

call nw0
check:

call SLEEP

jnb P1.1, logic

jnb P1.4, logic

jnb P1.5, logic

jmp begin_1
check1:

call SLEEP

jnb P1.0, logic

jnb P1.1, logic

jnb P1.4, logic

t2: nop

jmp begin_1
fgh: mov A, #0DFh

cjne A, P1, fgk

call off

fgk: mov A, #0FEh

cjne A, P1, t2

call off

jmp t2
off: mov symbol, #'O'

call OUT_FUNC

mov symbol, #'F'

call OUT_FUNC

mov symbol, #'F'

call OUT_FUNC

call crlf

ret
crlf: mov symbol, #20h

call OUT_FUNC

mov symbol, #0ah

call OUT_FUNC

ret
n0: mov symbol, #'1'

call OUT_FUNC

n1: mov symbol, #'2'

call OUT_FUNC

n2: mov symbol, #':'

call OUT_FUNC

n3: mov symbol, #'0'

call OUT_FUNC

n4: mov symbol, #'0'

call OUT_FUNC

call crlf

n6: jnb P1.1, n5

call fgh

n5: jnb P1.4, t2

jmp n8

n8: jnb P1.5, t2

jmp n6
nw0: mov symbol, #'1'

call OUT_FUNC

nw1: mov symbol, #'0'

call OUT_FUNC

nw2: mov symbol, #':'

call OUT_FUNC

nw3: mov symbol, #'3'

call OUT_FUNC

nw4: mov symbol, #'0'

call OUT_FUNC

call crlf

nw6: jnb P1.0, nw5

call fgh

nw5: jnb P1.5, nw7

call fgh

nw7: jnb P1.1, nw6

call fgh
t3: nop

jmp t2
ne0: mov symbol, #'0'

call OUT_FUNC

ne1: mov symbol, #'1'

call OUT_FUNC

ne2: mov symbol, #':'

call OUT_FUNC

ne3: mov symbol, #'3'

call OUT_FUNC

ne4: mov symbol, #'0'

call OUT_FUNC

call crlf

ne6: jnb P1.0, ne5

call fgh

ne5: jnb P1.1, ne7

call fgh

ne7: jnb P1.4, ne6

call fgh
s0: mov symbol, #'0'

call OUT_FUNC

s1: mov symbol, #'6'

call OUT_FUNC

s2: mov symbol, #':'

call OUT_FUNC

s3: mov symbol, #'0'

call OUT_FUNC

s4: mov symbol, #'0'

call OUT_FUNC

call crlf

s6: jnb P1.4, s5

call fgh

s5: jnb P1.5, s7

call fgh

s7: jnb P1.1, t3

jmp s8

s8: jnb P1.0, t3

jmp s6
sw0: mov symbol, #'0'

call OUT_FUNC

sw1: mov symbol, #'7'

call OUT_FUNC

sw2: mov symbol, #':'

call OUT_FUNC

sw3: mov symbol, #'3'

call OUT_FUNC

sw4: mov symbol, #'0'

call OUT_FUNC

call crlf

sw6: jnb P1.1, sw5

call fgh

sw5: jnb P1.5, sw7

call fgh

sw7: jnb P1.4, sw6

call fgh
se0: mov symbol, #'0'

call OUT_FUNC

se1: mov symbol, #'4'

call OUT_FUNC

se2: mov symbol, #':'

call OUT_FUNC

se3: mov symbol, #'3'

call OUT_FUNC

se4: mov symbol, #'0'

call OUT_FUNC

call crlf

se6: jnb P1.0, se5

call fgh

se5: jnb P1.5, se7

call fgh

se7: jnb P1.4, se6

call fgh
t4: nop

jmp t3
e0: mov symbol, #'0'

call OUT_FUNC

e1: mov symbol, #'3'

call OUT_FUNC

e2: mov symbol, #':'

call OUT_FUNC

e3: mov symbol, #'0'

call OUT_FUNC

e4: mov symbol, #'0'

call OUT_FUNC

call crlf

e6: jnb P1.0, e5

call fgh

e5: jnb P1.4, e7

call fgh

e7: jnb P1.1, t4

jmp e8

e8: jnb P1.5, t4

jmp e6
w0: mov symbol, #'0'

call OUT_FUNC

w1: mov symbol, #'9'

call OUT_FUNC

w2: mov symbol, #':'

call OUT_FUNC

w3: mov symbol, #'0'

call OUT_FUNC

w4: mov symbol, #'0'

call OUT_FUNC

call crlf

w6: jnb P1.1, w5

call fgh

w5: jnb P1.5, w7

call fgh

w7: jnb P1.0, t4

jmp w8

w8: jnb P1.4, t4

jmp w6

mov P1, #0Fh

reti

COM_PORT_HANDLER:

mov A, buf_size

jnz OUT_COM

clr TI

OUT_COM:

call OUT_FUNC

reti

SLEEP: mov R5, #200

SLEEP1: nop

djnz R5, SLEEP1

ret
end


6. Выводы

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

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

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

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


Похожие:

Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая работа по дисциплине "Микропроцессорные системы"
Работа выполняется на системе “прототип” на основе микроконтроллера 51 семейства
Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая работа «Проектирование вычислительной системы»
Данная контрольно-курсовая работа выполняется с целью закрепления знаний по курсу «Организация ЭВМ и систем» и получения практических...
Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая работа по дисциплине «сетевые технологии»
Тема: «Использование сетевых технологий при проектировании компьютерной сети и разработке дистанционной информационной системы для...
Курсовая работа по дисциплине \"Микропроцессорные системы\" iconПеречень вопросов, выносимых на экзамен по дисциплине «вычислительные машины»
Калабеков Б. А. Цифровые устройства и микропроцессорные системы.М.: Горячая линия  Телеком, 2005. 336 с
Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая работа включает: титульный лист
Курсовой работа по дисциплине «Технологии программирования» состоит из 2 частей: теоретическая часть; практическое задание
Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая работа по дисциплине «Схемотехника эвм»

Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая работа по дисциплине «Схемотехника эвм»

Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая работа по дисциплине " Финансы предприятий"

Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая работа по дисциплине «Лексикология английского языка»

Курсовая работа по дисциплине \"Микропроцессорные системы\" iconКурсовая (Контрольная) работа по дисциплине «Наименование дисциплины»

Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org