Термометр

Автор работы: Пользователь скрыл имя, 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

Прикрепленные файлы: 1 файл

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

— 290.50 Кб (Скачать документ)

;;   большие значения уменьшаются до ближайших верных

 

  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. Список литературы:

  1. Конспект лекций и семинаров по дисциплине “Микропроцессорные системы”.
  2. Описание команд микроконтроллера 8051.
  3. Документация к микроконтроллеру 80С552.



Информация о работе Термометр