Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Рабочий режим» и передача данных ПК

Оглавление

 

1. Принцип действия устройства

1.1 Индикация

1.2 Опрос датчиков

1.3 Начальный опрос датчиков

1.4 «Рабочий режим» и передача данных ПК

2. Схемотехника устройства

. Текст программы


Принцип действия устройства

 

Алгоритм работы устройства.

 

Рис. 1.1 - Алгоритм работы устройства


Функциональная схема устройства.

 

Рис. 1.2 - Схема функциональная

 

МК - микроконтроллер МК51

УИ - устройство индикации

ПУ1(2) - преобразователи уровня

ПК - персональный компьютер

Д1…Д16 - датчики

Диаграмма состояний устройства.

 

Рис. 1.3 - Диаграмма состояний устройства

- Начальный опрос датчиков,- Рабочий режим,- Сигнализация неисправности,- Передача данных ПК,- опрос датчиков прошел успешно,- прерывание от ПК,- данные отправлены ПК,- наличие исправных датчиков.

 

Индикация

 

Устройство, разрабатываемое в рамках данного курсового проекта должно осуществлять опрос 16 датчиков и данные передавать в компьютер. Индикация является вспомогательной функцией и используется лишь для информирования оператора об ошибке. При этом устройство указывает номер ошибки на индикаторе, по которому легко можно будет определить причину неисправности. На рис. 1.3 приведена электрическая принципиальная схема индикации.

Учитывая то, что параллельные порты микроконтроллера не задействованы и количество разрядов мало (2 разряда), целесообразно использовать статический режим индикации. Для этого необходимо, во-первых, иметь данные для вывода (это делается программно) и, во-вторых, дешифрировать эти данные в вид семисегментного индикатора (это можно реализовать как программно, так и аппаратно). При динамической индикации в целях экономии ресурсов микроконтроллера имело бы смысл использовать дешифратор для вывода кода на индикатор, при статической же индикации его использование не оправдано. В качестве индикаторов использованы светодиодные индикаторы.

 

Опрос датчиков

 

Вследствие удаленности датчиков высокоскоростная передачи информации от датчиков невозможна, поэтому при выборе скорости передачи информации от датчиков следует исходить из следующих соображений:

- чем ниже скорость, тем выше помехозащищенность

- чем выше скорость тем меньше время опроса датчиков.

Выберем скорость передачи 4800 бот. При этом время передачи 1-го бита составляет 208 мкс. Опрос датчиков происходит следующим образом:

Порт настраивается на соответствующую скорость передачи и отключаются все прерывания.

В линию посылается адрес интересующего нас датчика (8 бит);

Принимается информация от датчика в виде 2х байтного числа со знаком в дополнительном коде (00100 соответствует 10.0, 31125 - 3112.5, 65534 - -0.1);

Информация сохраняется в памяти.

Ожидание запроса от ПК по последовательному каналу и в случае поступления прерывания передача данных ПК.

Повторение п.1 - п.5 для следующего датчика.

При выбранной скорости минимальное время опроса одного датчика составляет 5 мс. Датчики опрашиваются последовательно с временным интервалом между опросом каждого датчика 50 мс. Таким образом при количестве датчиков = 10 полный период опроса всех датчиков составляет 500 мс. По заданию количество датчиков равно 16 и, следовательно, период опроса составляет 800 мс. Устройство разрабатывается таким образом, чтобы количество датчиков могло было быть легко увеличено вплоть до 127. Однако при количестве больше 32 стоит увеличить скорость обмена данными до 9600 бот, а временной интервал между опросом каждого датчика уменьшить вдвое.

При включении питания устройство не имеет начальной информации с датчиков и должно получить ее как можно скорее, поэтому при первом опросе датчики опрашиваются без интервала между опросом каждого датчика и при этом устройство не реагирует ни на какие прерывания. Данное состояние устройство называется «Начальный опрос» и на диаграмме состояний устройства (рис. 1.3) обозначено как Q1. После начального опроса датчиков устройство переходит в следующее состояние, обозначенное на диаграмме состояний как Q2 и называемое «Рабочее».

 

Начальный опрос датчиков

 

На этапе начального опроса датчиков микроконтроллер производит опрос каждого датчика без интервала ожидания прерывания от ПК. На этом же этапе происходит выявление неподключенных к устройству датчиков. Проверка наличия датчика осуществляется следующим образом: посылается в линию номер датчика и в течение 6 мкс ожидается ответ; если по истечении этого времени датчик не ответит, запрос повторяется через каждые 6 мкс 5 раз. Если после 5 запроса датчик не откликается, устройство останавливает свою работу на 2 секунды, выводит на индикатор номер соответствующей неисправности и записывает в ячейки памяти соответствующие данному датчику FFFFh. После этого опрос датчиков продолжается. Если на этапе начального опроса не получен отклик ни от одного из датчиков, устройство все равно переходит в «рабочий режим», в котором попытки опроса этих датчиков будут продолжены.

Блок-схема алгоритма режима начального опроса датчиков представлена на рис. 1.4.


Рис. 1.4 - Алгоритм начального опроса датчиков

 

Рабочий режим» и передача данных ПК

 

Рабочий режим работу устройства отличается от начального опроса лишь тем, что после приема информации от каждого из датчиков микроконтроллер переходит в режим ожидания запроса ПК на передачу накопленных данных (см. рис. 1.5). Ожидание (пауза) длится 1 с. Если после запроса ответа от датчика не последовало, микроконтроллер пошлет повторный запрос. В случае если датчик не ответит и во второй раз, контроллер перейдет к следующему датчику, после ожидания запроса от ПК в течение 1 с. Если в течение паузы (1 с) ПК не подал запрос на пересылку информации, микроконтроллер начинает опрашивать очередной датчик, запрещая при этом прерывания от ПК. При этом просто запрещения прерывания недостаточно, т.к. может возникнуть ситуация, когда в момент обмена микроконтроллера с датчиком компьютер пришлет запрос на передачу информации. Это приведет к искажению данных. Для исключения такой ситуации в устройство введена микросхема 1533ЛИ1, обеспечивающая отключение ПК от микроконтроллера в момент опроса датчика. Управляется эта микросхема сигналами управления, посылаемыми контроллером с вывода параллельного порта P1, вывод 7 (см. рис. 2.1.).

В случае, когда ни один из датчиков в рабочем режиме не ответит, после опроса последнего, устройство перейдет в режим ожидания запроса ПК и будет находиться в нем в течение 2с. Если в это время ПК запросит данные, микроконтроллер передаст данные (FFFFh для всех датчиков), после чего снова начнет опрос датчиков.

После прихода прерывания по последовательному каналу микроконтроллер принимает отправленный ПК байт с номером. Если этот номер совпадает с тем номером, который значится в ПЗУ микроконтроллера, последний начинает передавать данные, полученные от датчиков. Закончив передавать данные, устройство вновь переходит в «рабочий режим» и остается в нем пока не получит очередное прерывание от ПК.

В силу простоты алгоритма подпрограммы передачи данных ПК, этот алгоритм в данной курсовой работе не приводится.


Рис. 1.5 - Алгоритм работы устройства в «рабочем режиме»


Схемотехника устройства

 

Принципиальная схема устройства представлена на рис. 2.1. Устройство состоит из 5-и основных частей:

Микроконтроллер,

Устройство индикации,

Устройство коммутации

Преобразователь сигнала ТТЛ-RS232,

Преобразователь сигнала ТТЛ-RS485

 

Рис. 2.1 - Схема принципиальная

 

В качестве микропроцессора выбираем микросхему AT89C4051, в корпусе имеющем 40 внешних выводов (DIP40). Для работы требуется один источник питания +5В. Через 2 порта ввода/вывода информации с уровнем ТТЛ микроконтроллер выводит код ошибки на светодиодные семисегментные индикаторы HCPL4506 с общим катодом. Микросхема имеет два вывода для подключения кварцевого резонатора, четыре вывода для сигналов, управляющих режимом работы МК и по восемь линий портов 2 и 3. Вывод Р3.0 является выводом RxD вывод P3.1 - TxD, остальные выводы портов не используются.

Максимально допустимые параметры:

Максимально допустимый ток через вывод порта - 10 мА.

Максимальный общий ток через все выводы - 71 мА.

Принимая падение напряжения на открытом переходе индикатора 1.5 В, а ток через каждый из выводов 7 мА, выберем резисторы. и = (5-1.5)/7*10-3 = 500Ом.

Для обеспечения гальванической развязки ПК от микроконтроллера используется изолированный полный двунаправленный интерфейс RC - 232 - E со скоростью до 1 Mbit/s, входным током 16 мА, напряжением изоляции 2, 5 к V, в корпусе SO 8 (HCPL 0560). На рис.2.2 приведена рекомендуемая схема применения такого прибора. Выводы 6 и 8 этой микросхемы подключены соответственно ко входам R1Out и T1In микросхемы DS232A. Для обеспечения гальванической развязки датчиков (протокол RS485) от микроконтроллера используется точно такая же микросхема. Выводы 6 и 8 в этом случае подключены ко входам RO и DI соответственно микросхемы ISO485P.

 

Рис. 2.2 - Схема электрическая принципиальная


В качестве гальванически развязанного питания микросхем применяется DC/DC преобразователь 5В - 5В DCP020505P(в корпусе DIP14).

Преобразователь сигнала ТТЛ-RS232 собран на микросхеме DS232A фирмы Dallas Semicondactors. Преобразователь сигнала ТТЛ-RS485 собран на микросхеме ISO485P фирмы Burr Brown.


Текст программы

микроконтроллер датчик опрос информация

Thu Nov 20 2011 15:24 Page 1

2500 A.D. 8051 Macro Assembler - Version 4.02a

-----------------------------------------------Filename: kurs.asmFilename: kurs.obj

1;Мкарос инициализации таймера 1

;Vrem_m - время передачи 1 бита

3;=----------------------------------------

 SerTime:MACROVrem_M

movTH1,#Vrem_M

movTL1,#Vrem_M

clrTF1

setbTR1

 ENDM

;=----------------------------------------

 Time:MACROVrem_M

movTH0,#>Vrem_M

movTL0,#<Vrem_M

clrTF0

setbTR0

 ENDM

;=----------------------------------------

0087 Bit_Ind:RegP0.7;Bit_Ind - P0.7 сигнал

19 0097 Vkl_PCRegP1.7;Вкл/Откл ПК от линии

 

0020 NumDat:Reg20h;№ опрашиваемого датчика

0021 N_Ind:Reg21h;№ ошибки индикации

0022 Addr:Reg22h;адрес ячейки для хранения

;данных с датчиков

0023 ChPovt:Reg23h;кол-во повторений опроса

0024 ChPovtMax:Reg24h;макс. число повторений

0025 DataReg25h;данные с датчика

0026 FonVrReg26h;время фоновой задачи

 

0005 ChPovtMaxNachEQU5;макс. число повторений

0002 ChPovtMaxWorkEQU2;опроса датчиков

0010 NDMax:EQU16;число датчиков

0020 Kol_Byte:EQUNDMax*2;число ячеек памяти

00FF ErrorEQUFFh; ошибка датчика

E890 Time_DogEQU-6000;время сторожевого таймера

3CB0 Time_PauseEQU-50000;время паузы м/д опросами

0028 Kol_PauseEQU40;время выдачи сигнала ошибки

0014 Ch_PauseEQU20;время ожидания запроса ПК

0000 Num_PSEQU0;№ станции для прерывания от ПК

;=----------------------------------------

;Обработка прерываний.

0000 ORG 0

0000 02 01 00 jmp Start

 

;=----------------------------------------

000B ORG 0Bh;прерывание

000B C2 8C clrTR0;таймера T1

Thu Nov 20 2011 15:24 Page 2

000D A8 26 movR0,FonVr

000F 20 97 08 jbVkl_PC,$del

0012 C2 8D clrTF0

51 0014 12 01 72 callTimePr;если от сторожевого

0017 02 00 1D jmp$Ex

53 001A $del:

001A 12 01 62 callTimePC

$Ex:;продолжаем ждать

56 001D 32 reti

;=----------------------------------------

0023 ORG 23h;прерывание от ПК

59 0023 C2 8C clrTR0

0025 12 02 80 callPoslPC

0028 D2 8C setbTR0

62 002A 32 reti

 

;=----------------------------------------

0100 ORG 100h

;Начало основной программы.

0100 Start:

0100 75 89 21 movTMOD,#21h;0-й Т во 1-м, 1-й Т во 2-м режиме

0103 53 87 7F anlPCON,#01111111b;делитель скорости на 2

0106 75 98 50 movSCON,#50h;8 бит, скорость от таймера

0109 75 A8 82 movIE,#10000010b;прерывание от таймера Т0

010C C2 97 clrVkl_PC; отключение ПК от линии

010E 75 26 14 movFonVr,#Ch_Pause; время фоновой задачи

0111 12 01 97 callNach_Opros

0114 75 20 00 movNumDat,#0;опрашиваем 0-й датчик

0117 75 24 02 movChPovtMax,#ChPovtMaxWork;макс. число повторений

011A 75 21 10 movN_Ind,#NDMax; начальное смещение кода ошибки

011D MetWork:

011D 75 21 FF movN_Ind,#FFh; если ошибок нет, на индикаторе FF

0120 12 02 3B callIndikac; вывод на индикатор FF

0123 12 01 F6 callWork

0126 75 A8 92 movIE,#10010010b;разрешаем прерывание от ПК и от Т0

0129 D2 BC setbPS; приоритет у ПК

012B D2 97 setbVkl_PC; подключение к линии

;настройка посл. канала

012D 43 87 80 orlPCON,#10000000b;делитель скорости на 2 откл.

87 0130 SerTime0FFh;57600 бот

0130 75 8D FF movTH1,#0FFh

0133 75 8B FF movTL1,#0FFh

0136 C2 8F clrTF1

0138 D2 8E setbTR1

013A ENDM

013A 75 26 14 movFonVr,#Ch_Pause;время фоновой задачи

94 013D TimeTime_Pause; ожидание запроса ПК

95 013D 75 8C 3C movTH0,#>Time_Pause

0140 75 8A B0 movTL0,#<Time_Pause

0143 C2 8D clrTF0

0145 D2 8C setbTR0

0147 ENDM

 

0147 20 97 FD jbVkl_PC,$;фоновая задача

 

014A C2 8D clrTF0

014C C2 8C clrTR0

Thu Nov 20 2011 15:24 Page 3

014E 75 A8 82 movIE,#10000010b;запрещаем прерывание от ПК

0151 53 87 3F anlPCON,#0111111b;делитель скорости на 2 вкл.

107 0154 SerTime0FAh;4800 бот

0154 75 8D FA movTH1,#0FAh

0157 75 8B FA movTL1,#0FAh

015A C2 8F clrTF1

015C D2 8E setbTR1

015E 

015E A8 20 movR0,NumDat

0160 21 1D jmpMetWork;опрос следующего датчика

115

;=----------------------------------------------

;Список подпрограм.

;=----------------------------------------------

TimePC:; Прерывание от таймера.

120 0162 TimeTime_Pause;ожидание запроса ПК

0162 75 8C 3C movTH0,#>Time_Pause

0165 75 8A B0 movTL0,#<Time_Pause

0168 C2 8D clrTF0

016A D2 8C setbTR0

016C ENDM

016C D5 26 02 djnzFonVr,$Ex

016F C2 97 clrVkl_PC;отключение ПК от линии

128 0171 $Ex:

0171 22 ret

;=----------------------------------------------

TimePr:; Прерывание от таймера.

132 0172 C0 E0 pushA

0174 C0 D0 pushPSW

0176 75 25 FF movData,#Error;с-л ошибки

135 0179 E5 23 movA,ChPovt; проверка кол-ва

017B B5 24 03 cjneA,ChPovtMax,$Ex; лимит попыток исчерпан

017E 02 01 89 jmp$Ind; переход на индикацию ошибки

0181 $Ex

0181 43 98 01 orlSCON,#00000001;иммитация принятия байта

0184 D0 D0 popPSW

141 0186 D0 E0 popA

0188 22 ret

0189 $Ind:

0189 E5 20 movA,NumDat;вычисление

018B 25 21 addA,N_Ind;№ ошибки

146 018D F5 21 movN_Ind,A;для индикации

147 018F 12 02 3B callIndikac

0192 12 02 60 callSignal

0195 21 81 jmp$Ex

150;=----------------------------------------------

Nach_Opros:;подпрограмма начального опроса датчиков

 

0197 75 24 05 movChPovtMax,#ChPovtMaxNach; макс. число повторений

019A 75 20 00 movNumDat,#0;опрашиваем 0-й датчик

019D 75 21 FF movN_Ind,#FFh; если ошибок нет, на индикаторе FF

156 01A0 SerTime0FAh;4800 бот

01A0 75 8D FA movTH1,#0FAh

01A3 75 8B FA movTL1,#0FAh

01A6 C2 8F clrTF1

01A8 D2 8E setbTR1

01AA ENDMNov 20 2011 15:24 Page 4

01AA MetNach:

163;попытка опроса

01AA 85 20 25 movData,NumDat;посылка в линию № датчика

01AD 12 02 76 callPosl;посылаем запрос на датчик

;с номером NumDat

01B0 75 F0 02 movB,#2;вычисление адреса

01B3 A4 mulAB;для хранения данных

01B4 24 30 addA,#30h;и ожидание 5мс

170 01B6 F5 22 movAddr,A

171 01B8 TimeTime_Dog;запуск сторожевого таймера

172 01B8 75 8C E8 movTH0,#>Time_Dog

01BB 75 8A 90 movTL0,#<Time_Dog

01BE C2 8D clrTF0

01C0 D2 8C setbTR0

01C2 ENDM

177 01C2 12 02 AA callPriem; прием ст-го байта данных с датчика

01C5 E5 23 movA, ChPovt;проверка

01C7 B4 00 05 cjneA,#0,$Er;ответа датчика

01CA 05 20 incNumDat; следующий датчик

01CC 02 01 D7 jmp$D; датчик ответил

$Er:;не ответил

01CF B5 24 05 cjneA,ChPovtMax,$D; сколько раз

01D2 75 23 00 movChPovt,#0;если > максимума, обнуляем

01D5 05 20 incNumDat; следующий датчик

01D7 $D:

01D7 A8 22 movR0,Addr;вычисление адреса для

01D9 E5 25 movA,Data; записи полученного байта

01DB F6 mov@R0,A;сохранение ст-го байта

01DC B4 FF 03 cjneA,#Error,$M; был ли ответ датчика

01DF 02 01 E7 jmpPrNach

$M:;-был

01E2 12 02 AA callPriem; прием мл-го байта данных с датчика

01E5 C2 8C clrTR0;если байт принят,

;останавливаем таймер T0

PrNach:;-небыло

01E7 05 22 incAddr;вычисление

01E9 A8 22 movR0,Addr;адреса

01EB E5 25 movA,Data

01ED F6 mov@R0,A;сохранение мл-го байта данных с датчика

01EE A8 20 movR0,NumDat

01F0 B8 10 01 cjneR0,#NDMax,$Dal;пока не опросим все

01F3 22 ret

01F4 $Dal:

01F4 21 AA jmpMetNach;опрос следующего датчика

 

;=----------------------------------------------

Work:;подпрограмма "Рабочего режима".

 

;попытка опроса

01F6 85 20 25 movData,NumDat;посылка в линию № датчика

01F9 12 02 76 callPosl;посылаем запрос на датчик

;с номером NumDat

01FC 75 F0 02 movB,#2;вычисление адреса

01FF A4 mulAB;для хранения данных

0200 24 30 addA,#30h;и ожидание 5мс

0202 F5 22 movAddr,A

217 0204 TimeTime_Dog;запуск сторожевого таймера

0204 75 8C E8 movTH0,#>Time_DogNov 20 2011 15:24 Page 5

0207 75 8A 90 movTL0,#<Time_Dog

020A C2 8D clrTF0

020C D2 8C setbTR0

020E ENDM

223 020E 12 02 AA callPriem; прием ст-го байта данных с датчика

0211 E5 23 movA,ChPovt; проверка

0213 B4 00 05 cjneA,#0,$Er;ответа датчика

0216 05 20 incNumDat; следующий датчик

0218 02 02 23 jmp$D; датчик ответил

$Er:;не ответил

021B B5 24 05 cjneA,ChPovtMax,$D; сколько раз

021E 75 23 00 movChPovt,#0;если > максимума, обнуляем

0221 05 20 incNumDat; следующий датчик

0223 $D:

0223 A8 22 movR0,Addr;вычисление адреса для

0225 E5 25 movA,Data; записи полученного байта

0227 F6 mov@R0,A;сохранение ст-го байта

0228 B4 FF 03 cjneA,#Error,$M; был ли ответ датчика

022B 02 02 33 jmpPrWork

$M:;-был

022E 12 02 AA callPriem; прием мл-го байта данных с датчика

0231 C2 8C clrTR0;если байт принят, останавливаем таймер

PrWork:; -небыло

0233 05 22 incAddr; вычисление

0235 A8 22 movR0,Addr;адреса

0237 E5 25 movA, Data

0239 F6 mov@R0,A; сохранение мл-го байта данных с датчика

023A 22 ret

;=----------------------------------------------

Indikac:; Подпрограмма вывода на индикатор

023B C0 E0 pushA

023D C0 82 pushDPTR

023F C0 A8 pushIE

0241 75 A8 00 movIE,#0;запрет всех прерываний

0244 74 00 movA,#0

0246 90 02 C7 movDPTR,#Tabl_Ind;загрузка таблицы

0249 E5 21 movA,N_Ind; дешефрирование

024B 75 F0 10 movB,#10h;№ индикации

024E 84 divAB;в код семисегментного

024F 93 movcA,@A+DPTR;индикатора

0250 F5 80 movP0,A;P0 - старший байт

260 0252 E5 F0 movA,B

0254 93 movcA,@A+DPTR

0255 F5 90 movP1,A;P1 - младший байт

0257 D2 87 setbBit_Ind

0259 D0 A8 popIE

025B D0 82 popDPTR

025D D0 E0 popA

025F 22 ret

268;=----------------------------------------------

Signal:; Подпрограмма сигнализации ошибки

0260 78 28 movR0,#Kol_Pause;высвечиваем сигнал ошибки

271 $Wait:;заданное время

0262 TimeTime_Pause

0262 75 8C 3C movTH0,#>Time_Pause

0265 75 8A B0 movTL0,#<Time_Pause

0268 C2 8D clrTF0Nov 20 2011 15:24 Page 6

026A D2 8C setbTR0

026C ENDM

026C 30 8D FD jnbTF0,$

026F D8 F1 djnzR0,$Wait

0271 C2 8C clrTR0

281 0273 C2 8D clrTF0

0275 22 ret

;=----------------------------------------------

Posl:; процедура отправки байта датчикам

285 0276 E5 25 movA,Data

0278 F5 99 movSBUF,A

027A 30 99 FD jnbTI,$

027D C2 99 clrTI

289 027F 22 ret

;=----------------------------------------------

PoslPC:; процедура отправки байта ПК

0280 C0 E0 pushA

0282 53 98 FE anlSCON,#11111110b;иммитация непринятия байта

0285 E5 99 movA,SBUF; прием байта адреса

0287 B4 00 03 cjneA,#Num_PS,$Ex0;проверка на соответствие

296 028A 02 02 90 jmp $0

028D $Ex0:

028D 02 02 A7 jmp Ex

0290 $0:

0290 C0 20 pushNumDat

0292 75 20 00 movNumDat,#0

0295 $M:

0295 E5 20 movA,NumDat;вычисление адреса

304 0297 24 30 addA,#30h;где хранятся данные

0299 F8 movR0,A

029A 86 25 movData,@R0

029C 51 76 callPosl; отправка байт данных с датчиков

308 029E 05 20 incNumDat

02A0 E5 20 movA,NumDat

310 02A2 B4 20 F0 cjneA,#Kol_Byte,$M; пока не отправим все

311 02A5 D0 20 popNumDat

02A7 Ex:

02A7 D0 E0 popA

02A9 22 ret

315;=----------------------------------------------

Priem:; процедура приема байта

02AA 75 25 00 movData,#0;останавливаем таймер

02AD $M:

02AD 30 98 FD jnbRI,$M

02B0 C2 98 clrRI;если датчик ответил

02B2 C2 8C clrTR0;с 1-го раза, заносим

02B4 C2 8D clrTF0;принятые данные

02B6 05 23 inc ChPovt;в Data

02B8 A8 25 movR0,Data;если датчик не ответил,

325 02BA B8 FF 03 cjneR0,#Error,$0;в Data заносим FFh

326 02BD 02 02 C6 jmp $Ex0;если ответил не с первого

$0:;раза, заносим в Data принятые

02C0 85 99 25 movData,SBUF;данные и обнуляем ChPovt

329 02C3 75 23 00 movChPovt,#0

02C6 $Ex0:

02C6 22 ret

332;=----------------------------------------------

Thu Nov 20 2011 15:24 Page 7

;таблица дешефрирования символов индикации.

334 02C7 3F 06 5B 4F 66 Tabl_Ind: db3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h

CC 6D 7D 07

02CF 7F 6F 77 7C 39 db7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h

D4 5E 79 71 Nov 20 2011 15:24 Page 8Symbol Name Value References

Addr = 0022 170 187 196 197 216 233 242 243

Bit_Ind = 0087 263BSECT 0000

ChPovt = 0023 135 178 184 224 230 323 329

ChPovtMax = 0024 76 136 153 183 229

ChPovtMaxNach = 0005 153

ChPovtMaxWork = 0002 76

Ch_Pause = 0014 73 93CODE 0000 DATA 0000

Data = 0025 134 164 188 198 210 234 244 285 306 317 324

 

Error = 00FF 134 190 236 325

Ex 02A7 298

FonVr = 0026 48 73 93 126

Indikac 023B 80 147

Kol_Byte = 0020 310

Kol_Pause = 0028 270

MetNach 01AA 204

MetWork 011D 114

Nach_Opros 0197 74

NDMax = 0010 33 77 201

NumDat = 0020 75 113 144 154 164 180 185 200 210 226 231

301 303 308 309 311

Num_PS = 0000 295

N_Ind = 0021 77 79 145 146 155 255

Posl 0276 165 211 307

PoslPC 0280 60

Priem 02AA 177 193 223 239

PrNach 01E7 191

PrWork 0233 237RSECT 0000

Signal 0260 148

Start 0100 43

Tabl_Ind 02C7 254

TimePC 0162 54

TimePr 0172 51

Time_Dog = E890 172 173 218 219

Time_Pause = 3CB0 95 96 121 122 273 274

Vkl_PC = 0097 49 72 84 101 127

Work 01F6 81Assembled: 335 Assembly Errors: 0

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...