Курсовая работа: Счетчик обратного отсчета

Москва – 2007

Оглавление

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Клавиша Слово, выставленное на P 1 Ожидаемое на P 1 слово
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 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 значение #0000x 1xx b, где xÎ{0;1}.

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

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

ORG 8000h;

jmplbMain

ORG 800Bh;

jmp intTF0

lbMain:

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

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

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

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

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

movTH0, #0

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 367
Бесплатно скачать Курсовая работа: Счетчик обратного отсчета