Счетчик обратного отсчета (49845)

Посмотреть архив целиком

Кафедра электронно-вычислительной аппаратуры






Курсовая работа по дисциплине

«Микропроцессорные системы»

Тема “Счетчик обратного отсчета”


















Москва – 2007


Оглавление


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

Описание работы программы

Текст программы



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


Разработать программу на языке Assembler, отсчитывающую время от заданного значения до 0. Значение может быть от 0001 до 9999.

2 режима работы:

1) режим установки значения

2) режим отсчета

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


Описание работы программы


Логика построения программы

Исходя из ТЗ сформируем следующую блок-схему работы основной программы:



Устройства ввода

Для ввода данных используется стандартная шестнадцатикнопочная клавиатура, подключаемая к параллельному порту (P1). Она имеет следующий вид:



Чтобы определить, нажата или нет какая-либо клавиша-ключ, сначала нужно выставить на линии регистра-защёлки P1, которые соединяет клавиша, разные логические значения. Затем необходимо считать из регистра значения этих линий: если оба бита стали равными «0», то значит, проверяемая клавиша была нажата.

Для сокращения процедуры опроса клавиатуры будем делать опрос по «строкам»:


Клавиша

Слово, выставленное на P1

Ожидаемое на P1 слово

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

1’

1

1

0

1

1

1

1

1

1

1

0

1

1

1

0

1

2’

1

1

0

1

1

1

1

1

1

1

0

1

1

1

1

0

3’

1

1

0

1

1

1

1

1

1

1

0

1

0

1

1

1

4’

1

1

1

0

1

1

1

1

1

1

1

0

1

1

0

1

5’

1

1

1

0

1

1

1

1

1

1

1

0

1

1

1

0

6’

1

1

1

0

1

1

1

1

1

1

1

0

0

1

1

1

7’

0

1

1

1

1

1

1

1

0

1

1

1

1

1

0

1

8’

0

1

1

1

1

1

1

1

0

1

1

1

1

1

1

0

9’

0

1

1

1

1

1

1

1

0

1

1

1

0

1

1

1

0’

1

0

1

1

1

1

1

1

1

0

1

1

1

1

0

1




Чтобы просто зафиксировать факт нажатия любой из цифровых клавиш, достаточно выставить в регистр P1 слово #00001111b и ожидать на P1 значение #0000x1xxb, где x{0;1}.

Особенностью данной клавиатуры, которую надо учитывать при программировании, является наличие переходного процесса (дребезга) с длительностью в несколько раз большей, чем время машинного цикла ОМЭВМ МК8051:



Текст программы


ORG 8000h;

jmp lbMain

ORG 800Bh;

jmp intTF0

lbMain:

; конфигурируем таймер T0:

anl TMOD, #0F0h; обнуляем младшую тетраду

orl TMOD, #01h; младшую тетраду приводим к виду "0001"

clr TR0; остановка таймера T0 (таймер - не считает)

; загружаем старший и младший байты регистра таймера T0 нулями:

mov TH0, #0

mov TL0, #0

; настраиваем систему прерываний:

mov IP, #0; все прерывания (пока) - с одинаковым низким уровнем приоритета

mov IE, #10000010b; IEN0: выставили биты EA(7),ES(4),ET0(1)


Случайные файлы

Файл
138184.rtf
103040.rtf
169799.rtf
56564.rtf
177230.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.