Рабочий режим» и передача данных ПК
Оглавление
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 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|