Автор работы: Пользователь скрыл имя, 11 Мая 2013 в 10:38, курсовая работа
В режиме счёта на дисплей терминала выводится текущее время в формате hh:mm:ss, где , , ;
В режиме счёта возможен запуск и установка времени при нажатии на кнопки матричной клавиатуры “3” и ”6” соответственно.
В режиме установки времени выполняется последовательный ввод значений двузначных регистров, начиная с ss, причём в каждом регистре сначала задаётся значение десятков, а затем единиц. На этапе ввода значений регистров должна производиться проверка корректности задаваемых чисел и, в случае их выхода за пределы допустимого для регистра диапазона значений, — коррекция до верных значений.
Аннотация 2
1. Техническое задание 4
Техническое задание 4
2.Анализ технического задания 4
3. Устройства ввода 4
4. Алгоритм основной программы 7
5. Алгоритмы обработчиков прерываний 8
5.1 Алгоритм обработчика com порта 8
5.2 Алгоритм обработчика прерываний от таймера T0 9
5.3 Алгоритм обработчика прерываний от порта P1 10
6. Исходный код 11
7. Выводы 19
8. Список литературы: 19
;; большие значения уменьшаются до ближайших верных
prCorrect_SS:
cjne R2, #3Bh, lbR2_not_59
ret
lbR2_not_59:
jnc lbR2_more_59
ret
lbR2_more_59:
mov R2, #3Bh
ret
prCorrect_MM:
cjne R3, #3Bh, lbR3_not_59
ret
lbR3_not_59:
jnc lbR3_more_59
ret
lbR3_more_59:
mov R3, #3Bh
ret
prCorrect_HH:
cjne R4, #17h, lbR4_not_23
ret
lbR4_not_23:
jnc lbR4_more_23
ret
lbR4_more_23:
mov R4, #17h
ret
; //////////////////////////////
;; процедура prSmartDelay:
;; небольшая задержка, за время которой на клавиатуре успевает
;; завершиться "переходной процесс"
prSmartDelay:
mov B, #0
mov A, #0
lbSmartDelay_Loop:
djnz A, $
djnz B, lbSmartDelay_Loop
ret
; //////////////////////////////
;; процедура prWaitFor_TI:
;; ожидание "готовности передачи" по последовательному порту
prWaitFor_TI:
jnb TI, $; зациклить, пока TI=0
clr TI ; устанавливаем "неготовность передачи"
ret
;#проверка на цифры больше 9
A_check:
mov R5, A
add A, #0F6h
mov A,R5
jc more_9
add A, #30h
ret
more_9:
add A, #37h
clr C
ret
B_check:
mov R5, A
add A, #0BEh
mov A,R5
jc more_9_asc
subb A, #30h
ret
more_9_asc:
subb A, #56h
clr C
ret
******************************
; ******************************
; ОПИСАНИЕ ТЕКСТОВЫХ СООБЩЕНИЙ:
msgSetTimeMode: db LF,LF,CR, '-= Time Set Mode: =-', CR, LF, ESC
msgShowTimeMode: db LF,LF,CR, '-= Current Time: =-', CR, LF, ESC
END;;;; КОНЕЦ ПРОГРАММЫ
7. Выводы
В курсовой работе реализована работа электронных часов с использованием прерываний от таймера, матричной клавиатуры и клавиатуры ПК.
8. Список литературы: