Курсовая работа: Счетчик обратного отсчета
![](/file/7d5aacc146456be8f3642.jpg)
⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
Разработать программу на языке Assembler, отсчитывающую время от заданного значения до 0. Значение может быть от 0001 до 9999.
Ввод необходимо осуществлять с помощью стандартной шестнадцатикнопочной терминальной клавиатуры. Переход в режим установки времени необходимо осуществлять нажатием клавиши 0. Выход из режима установки времени должен происходить автоматически по окончании ввода значений всех регистров.
Исходя из ТЗ сформируем следующую блок-схему работы основной программы:
Для ввода данных используется стандартная шестнадцатикнопочная клавиатура, подключаемая к параллельному порту (P1). Она имеет следующий вид:
Чтобы определить, нажата или нет какая-либо клавиша-ключ, сначала нужно выставить на линии регистра-защёлки P1, которые соединяет клавиша, разные логические значения. Затем необходимо считать из регистра значения этих линий: если оба бита стали равными «0», то значит, проверяемая клавиша была нажата.
Для сокращения процедуры опроса клавиатуры будем делать опрос по «строкам»:
Чтобы просто зафиксировать факт нажатия любой из цифровых клавиш, достаточно выставить в регистр P1 слово #00001111b и ожидать на P1 значение #0000 x
1 xx
b, где xÎ{0;1}.
Особенностью данной клавиатуры, которую надо учитывать при программировании, является наличие переходного процесса (дребезга) с длительностью в несколько раз большей, чем время машинного цикла ОМЭВМ МК8051:
anl TMOD, #0F0h; обнуляем младшую тетраду
orlTMOD, #01h; младшую тетраду приводим к виду "0001"
clrTR0; остановка таймера T0 (таймер - не считает)
; загружаем старший и младший байты регистра таймера T0 нулями:
movIP, #0; все прерывания (пока) - с одинаковым низким уровнем приоритета
movIE, #10000010b; IEN0: выставили биты EA(7),ES(4),ET0(1)
;mov 0E8h, #00001011b; IEN1: выставили биты 0,1,3
;регистры R4, R5, R6 - для разных промежуточных значений
;регистр R7 - буфер для хранения значения нажатой клавиши [#0..#9] или
; значения #FFh, если клавиша не нажата
call prShowMessage; вывод сообщения msgShowTime_Mode
; mov R6, #118; (!!!) Это следует менять для подстройки задержки!!!
;; небольшая задержка, за время которой на клавиатуре успевает
;; завершиться "переходный процесс"
;; [2 на вызов]+[2 на возврат]+[7]+[1]+[1432]=[1444]
;; переводим значения R0, R1, R2 в кодировку ACSII:
movSBUF, #CR; переводим курсор в начало строки:
callprWaitFor_TI; для выравнивания подождём передачи последнего символа
setbTI; [1] иначе - программа "зависнет"
;; ожидание "готовности передачи" по последовательному порту
clrTI; устанавливаем "неготовность пердачи"
;; проверяет, нажата ли клавиша входа в режим установки времени;
callprSetTime; переход в режим установки таймера
movR7, #0FFh; допустим, что ничего не будет нажато
;; процедура prWaitFor_NextKey_Pressed:
;; ждёт СЛЕДУЮЩЕГО НАЖАТИЯ, чтобы долгое нажатие не "флудило"
lbPrevKey_Pressed: callprSmartDelay; чтоб избежать "дребезга" клавиатуры
call prSmartDelay; чтоб избежать "дребезга" клавиатуры
lbNo_NextKey_Pressed: call prExam_NumKeys
call prShowMessage; вывод сообщения msgSetTime_Mode
call prShowMessage; вывод сообщения msgShowTime_Mode
;; процедуры prIs_R0_more_59, prIs_R1_more_59, prIs_R2_more_23:
;; проверяют соответствующие регистры на корректность значений в них;
;; большие значения уменьшаются до ближайших верных
;; выводит на экран текстовое сообщение; символ ESC - признак конца сообщения
;;;; ОПИСАНИЕ ТЕКСТОВЫХ СООБЩЕНИЙ: ;;;;
msgSetTime_Mode: db LF,CR, '[Regim ustanovki taymera:]', CR, LF, ESC
msgShowTime_Mode: db LF,CR, 'OBRATNYI OTSCHET...', CR, LF, ESC
msgFinal: db CR, '!!!OBRATNYI OTSCHET ZAKONCHEN!!!:', CR, LF, ESC
Название: Счетчик обратного отсчета
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа
Добавлен 12:24:26 21 августа 2009 Похожие работы
Просмотров: 116
Комментариев: 14
Оценило: 2 человек
Средний балл: 5
Оценка: неизвестно Скачать
Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.
Курсовая работа: Счетчик обратного отсчета
Какое Сделать Вступление Для Сочинения Про Дубровского
Дипломная работа: Банковско-страховые группы
Как Начать Сочинение Разговор С Собой
Реферат На Тему Поэты Серебряного Века
Дипломная работа: Отчетность на предприятии
Дипломная работа по теме Род Полынь во флоре Тихорецкого района
Реферат: Маркетинг услуг и маркетинг в сфере некоммерческой деятельности
Курсовая работа: Специфика профессиональной деятельности учителя иностранного языка. Профессионально значимые качества и умения. Скачать бесплатно и без регистрации
Задание На Выполнение Курсового Проекта
Курсовая Работа По Эксплуатации Электрооборудования
Реферат: Aicardi Syndrom Essay Research Paper Aicardi syndrome
Курсовая работа: История становления социальной педагогики в России
Роль Экономики В Современном Обществе Реферат
Сочинение На Тему Жизненный Путь Постоянный Выбор
Учебное пособие: Произведение группировки промышленных предприятий по стоимости реализованной продукции
Реферат: Гигиенические требования к организации работы с персональным компьютером. Скачать бесплатно и без регистрации
Дипломная работа по теме Разработка системы автоматизации процесса дозирования и смешивания сыпучих материалов
Сочинение На Тему Если Я Была Президентом
Реферат: «Экономика отрасли»
Курсовая работа по теме Моделирование инновационной активности на примере реально существующей организации ООО 'Supervent'
Реферат: Табачная война
Статья: Вопросы подобия системы заполнения насосов перед пуском эксгаустером
Статья: Аналитический отчет по итогам рейтинга Интернет-магазинов по показателю их эффективности (конверсии)