Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DMITR / DMITR.DOC
Скачиваний:
40
Добавлен:
16.04.2013
Размер:
962.05 Кб
Скачать

1.7.2.1 Основная программа

В начале основной программы происходит назначение векторов прерываний от линейных интерфейсов и последовательного порта. Далее идут два блока инициализации: области памяти ОЗУ данных с 40Н по 7FН и самих линейных интерфейсов. Команды инициализации последних CR2.RESET формируются в соответствии с таблицей адресов линейных интерфейсов (рис. 1.9) и таблицей адресов внутренних регистров линейных интерфейсов (рис. 1.10).

Рис. 1.8. Реализация системы прерываний для микроконтроллера АТ89С51.

Регистр

Bit

7

6

5

4

3

2

1

0

LI1

0

0

0

0

0

0

0

0

00Н

LI2

0

0

0

1

0

0

0

0

10H

LI3

0

0

1

0

0

0

0

0

20Н

LI4

0

0

1

1

0

0

0

0

30H

LI5

0

1

0

0

0

0

0

0

40Н

LI6

0

1

0

1

0

0

0

0

50H

LI7

0

1

1

0

0

0

0

0

60H

LI8

0

1

1

1

0

0

0

0

70H

LI9

1

0

0

0

0

0

0

0

80H

LI10

1

0

0

1

0

0

0

0

90H

LI11

1

0

1

0

0

0

0

0

A0H

LI12

1

0

1

1

0

0

0

0

В0Н

LI13

1

1

0

0

0

0

0

0

C0H

LI14

1

1

0

1

0

0

0

0

D0Н

LI15

1

1

1

0

0

0

0

0

E0H

LI16

1

1

1

1

0

0

0

0

F0H

Рис. 1.9. Адреса линейных интерфейсов.

Регистр

Bit

7

6

5

4

3

2

1

0

CR1

0

0

0

0

0

0

0

0

00H

CR2

0

0

0

0

0

0

1

0

02H

CR3

0

0

0

0

0

1

0

0

04H

CR4

0

0

0

0

1

1

1

0

0EH

ICR

0

0

0

0

0

1

1

0

06H

TSR

0

0

0

0

1

0

0

0

08H

PSR

0

0

0

0

1

0

1

0

0AH

ESR

0

0

0

0

1

1

0

0

0CH

Рис. 1.10. Адреса внутренних регистров линейных интерфейсов.

Затем производится запись в ОЗУ данных состояний части битов внутренних регистров линейных интерфейсов. Данные располагаются в заранее оговоренной техническим заданием области памяти 40Н – 7FН в заданном порядке. Распределение памяти ОЗУ данных процессора показано на рисунке 1.11. Нужные биты выбираются из внутренних регистров линейных интерфейсов, таблица которых приведены на рисунке 1.12. Например, для занесения бита AIS в 1-й бит ячейки памяти 40Н, его нужно считать из 2-го бита регистра PSR LI1. Порядок сохраняется для всей карты по возрастанию следующий: PSR, TSR, CR2, CR1.

Линейный интер- фейс

Адрес регистра в ОЗУ

Bit

7

6

5

4

3

2

1

0

L1 1

40 Н

DFMO

AIS

LOS

41 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

42 Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

43 Н

ES4

ES3

ES2

ES1

L1 2

44 H

DFMO

AIS

LOS

45 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

46 Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

47 Н

ES4

ES3

ES2

ES1

L1 3

48 Н

DFMO

AIS

LOS

49 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

4A Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

4B Н

ES4

ES3

ES2

ES1

L1 4

4C Н

DFMO

AIS

LOS

4D Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

4E Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

4F Н

ES4

ES3

ES2

ES1

L1 5

50 Н

DFMO

AIS

LOS

51 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

52 Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

53 Н

ES4

ES3

ES2

ES1

L1 6

54 Н

DFMO

AIS

LOS

55 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

56 Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

57 Н

ES4

ES3

ES2

ES1

L1 7

58 Н

DFMO

AIS

LOS

59 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

5A Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

5B Н

ES4

ES3

ES2

ES1

L1 8

5C Н

DFMO

AIS

LOS

5D Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

5E Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

5F Н

ES4

ES3

ES2

ES1

L1 9

60 Н

DFMO

AIS

LOS

61 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

62 Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

63 Н

ES4

ES3

ES2

ES1

L1 10

64 Н

DFMO

AIS

LOS

65 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

66 Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

67 Н

ES4

ES3

ES2

ES1

L1 11

68 Н

DFMO

AIS

LOS

69 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

6A Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

6B Н

ES4

ES3

ES2

ES1

L1 12

6C Н

DFMO

AIS

LOS

6D Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

6E Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

6F Н

ES4

ES3

ES2

ES1

L1 13

70 Н

DFMO

AIS

LOS

71 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

72 Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

73 Н

ES4

ES3

ES2

ES1

L1 14

74 Н

DFMO

AIS

LOS

75 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

76 Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

77 Н

ES4

ES3

ES2

ES1

L1 15

78 Н

DFMO

AIS

LOS

79 Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

7A Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

7B Н

ES4

ES3

ES2

ES1

L1 16

7C Н

DFMO

AIS

LOS

7D Н

FL

TQRSS

ESOVR

ESUNF

TDFMO

TAIS

TLOS

7E Н

ЕРАТ1

EPAT0

ETAOS

EQZMON

ERLOOP

ELLOOP

EALOOP

7F Н

ES4

ES3

ES2

ES1

Рис. 1.11. Распределение памяти ОЗУ данных процессора.

Register

Tуре

Bit

Name

7

6

5

4

3

2

1

0

Control #1

CR1

R/W

JASEL1

JASEL0

ENCEB

UNIENB

EC4

ЕС3

EC2

EC1

Control #2

CR2

R/W

RESET

ЕРАT1

EPAT0

ETAOS

ENLOOP

EALOOP

ELLOOP

ERLOOP

Control #3

CR3

R/W

JA6HZ

PCLKE1

SBIST

EQZMON

reserved2

ES64

ESCEN

ESJAM

Interrupt Clear

ICR

R/W

CESU

CESO

CDFMO

reserved3

CQRSS

CAIS

CNLOOP

CLOS

Transition Status

TSR

R

ESUNF

ESOVR

TDFMO

reserved2

TQRSS

TAIS

TNLOOP

TLOS

Performance Status

PSR

R

reserved2

BIST

DFMO

reserved2

QRSS

AIS

NLOOP

LOS

Equalizer Status

ESR

R

LATN7

LATN6

LATN5

LATN4

reserved2

Reserved2

reserved2

reserved2

Control #4

CR4

R/W

reserved2

reserved2

Reserved2

reserved2

COL32CM

LOS2048

ZEROV

CODEV

  1. Bit CR3.PCLKE is available only in the LXT361; for the LXT360, set this bit to zero.

  2. In write registers, bits labeled reserved be set toO (except as in note 3 below) for normal operation and ignored ill read only registers.

  3. Write a 1 into this bit for normal operation.

Рис. 1.12. Таблица бит внутренних регистров линейных интерфейсов для заполнения карты памяти.

Потом инициализируется последовательный порт Р3 на прием. Инициализируется таймер, выбор 1-го таймера, перевод его в третий режим работы, загрузка константы скорости в таймер для 9600 Бод, разрешение работы таймера. Инициализация последовательного порта проходит следующим образом: порт устанавливается в режим 9-бит с программируемой скоростью, устанавливается адрес для записи принятых значений, выбирается номера канала, идет разрешение приёма сообщений с взведённым 9-м битом, разрешение работы приёмопередатчика, разрешение прерываний от приёмопередатчика, общее разрешение прерываний, сброс бита разрешения приёма. После этого выполняется основной цикл программы: ожидание прерывания либо от любого из линейных интерфейсов с переходом на подпрограмму перезаписи карты памяти части битов внутренних регистров линейных интерфейсов, либо от последовательного порта с переходом на подпрограмму связи с внешней ПЭВМ через последовательный порт.

Соседние файлы в папке DMITR