Программа таймера реального времени для УМПК80

Страницы работы

7 страниц (Word-файл)

Содержание работы

Министерство общего и профессионального образования РФ

Хабаровский Государственный Технический Университет

Кафедра ВМ

Лабораторная работа № 1

По теории проектирования ЭВМ.

Выполнили: студенты гр. ВМ-51

Лазебник В.Н. , Кириченко М.А.

Проверил: преподаватель

Бурдинский И.Н.

1999 г.

Блок-схема алгоритма

 

 


Е

 


Программа таймера реального времени для УМПК80

0002   0800                             .ORG 800H

0003   0800             ;=================================================================

0004   0800             ;ГЛАВНАЯ ПРОГРАММА СЧЕТЧИКА-ТАЙМЕРА

0005   0800             ;=================================================================

0006   0800             MAIN:

0007   0800 16 20                       MVI     D,020H

0008   0802 1E 00                       MVI     E,0

0009   0804             BEGIN:

0010   0804 CD 55 08                    CALL    INC_CNT

0011   0807 3A 19 0B                    LDA     STOP

0012   080A             ;ПРОВЕРКА НА ОСТАНОВ

0013   080A 1F                          RAR

0014   080B DA 14 08                    JC      M6

0015   080E CD 66 08                    CALL    TO7SEG

0016   0811 C3 17 08                    JMP     M7

0017   0814             M6:             ;ВСТАВИТЬ ПРОГРАММУ ЗАДЕРЖКИ НА ВВРЕМЯ ПЕРЕВОДА +ВРЕМЯ JMP

0018   0814 CD 3A 08                    CALL    DELAY1

0019   0817 AF          M7:             XRA     A         ;ОБНУЛЯЕМ АККУМУЛЯТОР

0020   0818 D3 38                       OUT     38H       ;ГАСИМ ИНДИКАТОРЫ

0021   081A CD 98 08                    CALL    KEYB

0022   081D            

0023   081D 01 01 0B                    LXI     B,IND_BUF

0024   0820 3A 1B 0B                    LDA     SHIFT      ;В АККУМУЛЯТОР СМЕЩЕНИЕ ДЛЯ ВЫВОДА

0025   0823 83                          ADD     E

0026   0824 4F                          MOV     C,A        ;(B,C) -НА ТЕКУЩИЙ СИМВОЛ ДЛЯ ВЫВОДА

0027   0825 AF                          XRA     A

0028   0826 D3 28                       OUT     28H       ;ГАСИМ ИНДИКАТОРЫ

0029   0828 0A                          LDAX    B

0030   0829 D3 38                       OUT     38H        ;ВЫВЕЛИ СИМВОЛ

0031   082B 7A                          MOV     A,D

0032   082C D3 28                       OUT     28H

0033   082E 0F                          RRC

0034   082F 57                          MOV     D,A         ;СОХРАНЯЕМ НОВУЮ МАСКУ

0035   0830 1C                          INR     E

0036   0831 CD 47 08                    CALL    DELAY2

0037   0834 D2 04 08                    JNC     BEGIN

0038   0837 C3 00 08                    JMP     MAIN

0039   083A            

0040   083A            

0041   083A            

0042   083A            

0043   083A            

0044   083A            

0045   083A            

0046   083A             ;==================================================================

0047   083A             ;ПРОГРАММА ЗАДЕРЖКИ НА ВРЕМЯ ПЕРЕВОДА В СЕМИСЕГМЕНТЫЙ КОД

0048   083A             DELAY1:

0049   083A 2E 37                       MVI  L,55

0050   083C 2D          DELAY1_L1:      DCR  L

0051   083D C2 3C 08                    JNZ  DELAY1_L1

0052   0840 00                          NOP       ; -¬

0053   0841 00                          NOP       ;  +-ДЛЯ ПОЛУЧЕНИЯ ЗАДЕРЖКИ В 17 ТАКТОВ

0054   0842 00                          NOP       ; -0055   0843 00                          NOP

0056   0844 00                          NOP

0057   0845 00                          NOP

0058   0846 C9                          RET

0059   0847            

0060   0847            

0061   0847            

0062   0847            

0063   0847             ;==================================================================

0064   0847             ;ПРОГРАММА ЗАДЕРЖКИ НА ВРЕМЯ ВЫРАВНИВАНИЯ ДО 1 МИЛИСЕКУНДЫ

0065   0847             DELAY2:

0066   0847 2E 1D                       MVI  L,29

0067   0849 2D          DELAY1_L2:      DCR  L

0068   084A C2 49 08                    JNZ  DELAY1_L2

0069   084D 00                          NOP       ; -¬

0070   084E 00                          NOP       ;  +-ДЛЯ ПОЛУЧЕНИЯ ЗАДЕРЖКИ В 17 ТАКТОВ

0071   084F 00                          NOP       ; -0072   0850 00                          NOP

0073   0851 C3 54 08                    JMP  END1

0074   0854 C9          END1:           RET

0075   0855             ;==================================================================

0076   0855             ;подпрограмма увелчения счетчика таймера

0077   0855             ;использует регистры: (A), (B,C)

0078   0855             ;изменяет флаг переноса

0079   0855             INC_CNT:

0080   0855 01 0A 0B                    LXI    B,COUNTER

0081   0858 37                          STC       ;УСТАНАВЛИВАЕМ ПЕРЕНОС В 1

0082   0859 26 05                       MVI    H,5;СЧЕТЧИК ЦИКЛА РАВЕН 5

0083   085B             INC_LOOP1:

0084   085B 0A                          LDAX   B  ;ЗАГРУЖАЕМ ОЧЕРЕДНУЮ ЦИФРУ

0085   085C CE 00                       ACI    0  ;УВЕЛИЧИВАЕМ С УЧЕТОМ ПЕРЕНОСА

0086   085E 27                          DAA       ;ПРОИЗВОДИМ ДЕС. КОРРЕКЦИЮ

0087   085F 02                          STAX   B  ;СОХРАНЯЕМ УВЕЛИЧЕННЫЕ ЦИФРЫ

0088   0860 25                          DCR    H  ;УМЕНЬШАЕМ СЧЕТЧИК ЦИКЛОВ

0089   0861 03                          INX    B  ;УВЕЛИЧИВАЕМ АДРЕС

0090   0862 C2 5B 08                    JNZ    INC_LOOP1 ;ЕСЛИ НЕ ВЕСЬ СЧЕТЧИК УВЕЛИЧИЛИ, ТО ПРОДОЛЖАЕМ

0091   0865 C9                          RET

0092   0866             ;=========================================

0093   0866             ;ПРОГРАММА ДЛЯ ПЕРЕВОДА ИЗ УПАКОВАННОГО ДВОИЧНО-ДЕСЯТИЧНОГО ФОРМАТА

0094   0866             ;В КОДЫ СЕМИСЕГМЕНТНОГО ИНДИКАТОРА

0095   0866             ;ИСПОЛЬЗУЕТ АККУМУЛЯТОР, РЕГИСТРОВУЮ ПАРУ (B,C)

0096   0866             ;ПОРТИТ ФЛАГ ПЕРЕНОСА

0097   0866             ;=========================================

0098   0866             TO7SEG:

0099   0866 D5                           PUSH   D

0100   0867            

0101   0867 1E 05                        MVI    E,5

0102   0869 21 0A 0B                     LXI    H,COUNTER

0103   086C 01 09 0B                     LXI    B,IND_BUF+8

0104   086F            

0105   086F 7E          TO7SEG_L1:       MOV    A,M

Похожие материалы

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

Тип:
Отчеты по лабораторным работам
Размер файла:
90 Kb
Скачали:
0