Лекции.ИНФО


Сбои в лабораторном комплексе и их устранение



Основным сбоем в работе лабораторного комплекса является отсутствие связи ПЭВМ с рабочими местами. Об этом на рабочем месте сигнализирует загорание красного светодиода "Запрет обмена" блока управления.
Если появился сигнал "Запрет обмена", а нужно осуществлять набор и редактирование программы, то для восстановления связи с ПЭВМ необходимо проверить следующее:

– убедиться, что переключатель режима работы блока связи с ПЭВМ стоит в положении "Программирование";
– убедиться, что на рабочих местах переключатели режима работы стоят в положении "Программирование";
– убедиться, что кабель "Порт COM2 – блок связи с ЭВМ" подключен правильно;

Если все указанные переключатели стоят в требуемых положениях и подключен порт COM2 к блоку связи с ЭВМ, но по-прежнему нет связи рабочих мест с ПЭВМ, то следует выключить питание всех элементов комплекса. Затем включить блок питания лабораторного комплекса. Нажимая последовательно на каждом рабочем месте кнопку "Сброс" блока управления, убедиться что нет рабочих мест с одинаковыми номерами. На всех блоках управления горят светодиоды "Запрет обмена". Включить питание ПЭВМ. В подкаталоге SERVER запустить файл server.bat и обеспечить восьмиоконный режим работы монитора, светодиоды "Запрет обмена" на блоках управления рабочих мест должны погаснуть.

Если описанные действия не дают положительного результата, то следует отключить все кабели рабочих мест от блока связи с ЭВМ. Подключить к блоку связи кабель одного рабочего места. Проверить есть ли связь с ПЭВМ этого единственного места. Если нет, то, возможно, что неисправен кабель этого рабочего места. Отключить его и аналогично, подключая кабели других рабочих мест к блоку связи с ЭВМ, проверить исправность их кабелей. Неисправность кабеля хотя бы одного рабочего места приводит к отсутствию связи рабочих мест с ПЭВМ. Если же все блоки управления ведут себя одинаково, то причина не в кабелях рабочих мест.
Возможна неисправность кабеля "Порт COM2 - блок связи с ЭВМ". Проверьте его исправность и надежность контактов в его разъемах. Следующей причиной отсутствия связи может быть выход из строя элемента MAX232 мультиплексорного блока в блоке связи с ЭВМ. Он установлен на контактной панельке. Замените этот элемент.

Если обмен с ПЭВМ есть, но какое-то рабочее место ведет себя неадекватно, например, при нажатии кнопки "Сброс" появляется номер рабочего места не в левом верхнем углу ЖКИ, а где-то в середине, то, не отключая питание комплекса, отключите и включите вновь кабель блока управления этого рабочего места. Нажмите кнопку "Сброс" этого рабочего места. Номер рабочего места должен высвечиваться на положенном ему месте. Иногда эту операцию нужно повторить несколько раз, или при отключении рабочего места подождать несколько секунд и подключить его.

Система команд микроконтроллеров семейства AVR

 

3. Система команд микроконтроллеров семейства AvR

Таблица 3.1. Арифметические и логические команды

Мнемо-ника Операнды Описание Операция Флаги Кол-во циклов
ADD Rd,Rr 0<=d<=31 0<=r<=31 Сложить без переноса Rd <-Rd + Rr Z, C, N, v, H
ADC Rd.Rr 0<=d<=31 0<=r<=31 Сложить с переносом Rd <- Rd + Rr+ С Z, C, N, v, H
ADIW Rd,K dE{24,26,28,30} 0<=K<=63 Сложить непосредственное значение со словом Rdh:Rdl<-Rdh:Rdl+ К Z, C, N, v
SUB Rd,Rr 0<=d<=31 0<=r<=31 Вычесть без заема Rd <- Rd – Rr Z, C, N, v, H
SUBI Rd, К 16<=d<=31 0<=K<=255 Вычесть непосредственное значение Rd <- Rd – К Z, C, N, v, H
SBC Rd, Rr 0<=d<=31 0<=r<=31 Вычесть с заемом Rd<--Rd-Rr-C Z, C, N, v, H
SBCI Rd, К 16<=d<=32 0<=K<=255 Вычесть непосредственное значение с заемом Rd<--Rd-K-C Z, C, N, v, H
SBIW Rd, К dE{24,26,28,30} О<=К<=бЗ Вычесть непосредственное значение из слова Rdh:Rdl<--Rdh:Rdl-K Z, C, N, v
AND Rd, Rr 0<=d<=31 0<=r<=31 Выполнить логическое AND Rd <-- Rd * Rr Z, N, v
ANDI Rd, К 16<d<31 0<k<=255 Выполнить логическое AND Rd <-- Rd * К Z, N, v
OR Rd, Rr 0<=d>=31 0<=r<=31 Выполнить логическое OR Rd <--Rd v Rr Z, N, v
ORI Rd, К 16<=d<=31 0<=K<=255 Выполнить логическое OR с непосредственным значением Rd <--Rd v К Z, N, v
EOR Rd, Rr 0<=d<=31 0<=г<=31 Выполнить исключающее OR Rd <--Rd Rr Z, N, v
СОМ Rd 0<=d<=31 Выполнить дополнение до единицы Rd<--SFF-Rd Z, C, N, v
NEG Rd 0<=d<=31 Выполнить дополнение до двух Rd <-- S00 - Rd Z, C, N, v, H
SBR Rd, К 16<=d<=31 0<=K<=255 Установить биты в регистре Rd <-- Rd v К Z, N,v

 

 

Мнемо­ника Операнды Описание Операция Флаги Кол-во циклов
CBR Rd, К 16<=d<=31 O<=K<=255 Очистить биты в регистре Rd <--Rd * (SFF - К) Z, N, v
INC Rd 0<=d<=31 Инкрементировать Rd <--Rd + 1 Z, N,v
DEC Rd 0<=d<=31 Декрементировать Rd <-- Rd - 1 Z, N,v
TST Rd 0<=r<=31 Проверить на ноль или минус Rd<--Rd.Rd Z, N, v
CLR Rd 0<=d<=31 Очистить регистр Rd <-- Rd (+) Rd Z, N, v
SER Rd 16<=d<=31 Установить все биты регистра Rd <--SFF нет
CP Rd, Rr 0<=d<=31 0<=r<=31 Сравнить Rd-Rr Z, C, N, v, H
CPC Rd, Rr 0<=d<=31 0<=r<=31 Сравнить с учетом переноса Rd-Rr-C Z, C, N, v, H
CPI Rd, К 16<=d<=31 0<=K<=255 Сравнить с константой Rd-K Z, C, N, v, H

Таблица 3.2. Команды сдвигов и операций с битами

Мнемо­ника Операн­ды Описание Операция Флаги Кол-во циклов
LSL Rd 0<=d<=31 Логически сдвинуть влево Rd(n+1)<--Rd(n), Rd(0)<--0, C<--Rd(7) Z,C,N,v,H
LSR Rd 0<=d<=31 Логически сдвинуть вправо Rd(n)<--Rd(n+1), Rd(7) <--0, C<--Rd(0) Z,C,N,v
ROL Rd 0<=d<=31 Сдвинуть влево через перенос Rd(0) <--C, Rd(n+1)<--Rd(n), C<--Rd(7) Z,C,N,v,H
ROR Rd 0<=d<=31 Сдвинуть вправо через перенос Rd(7) <--C, Rd(n)<--Rd(n+1), C <-- Rd(0) Z,C,N,v
ASR Rd 0<=d<=31 Арифметически сдвинуть вправо Rd(n)<--Rd(n+1), n=0...6, Rd(0)<--C Z,C,N,v
SWAP Rd 0<=d<=31 Поменять нибблы местами Rd(3...0) <–>Rd(7...4) Нет
BSET s 0<=s<=7 Установить флаг SREG(s)<-- 1 SREG(s)
BCLR s 0<=s<=7 Очистить флаг SREG(s)<-- 0 SREG(s)

 

Мне­моника Операнды Описание Операция Флаги Кол-во циклов
SBI P,b O<=P<=31 0<=b<=7 Установить бит в регистр I/O l/0(P,b)<-- 1 Нет
CBI P,b 0<=P<=31 0<=b<=7 Очистить бит в регистре I/O l/0(P,b)<-- 0 Нет
BST Rd,b 0<=d<=31 0<=b<=7 Переписать бит из регистра во флаг Т Т<-- Rd(b) Т
BLD Rd,b 0<=d<=31 0<=b<=7 Загрузить Т флаг в бит регистра Rd(b) <-- Т Нет
SEC   Установить флаг переноса С<-- 1 С
CLC   Очистить флаг переноса С<--0 С
SEN   Установить флаг отрицательного значения М<--1 N
CLN   Очистить флаг отрицательного значения N<--0 N
SEZ   Установить флаг нулевого значения Z<--1 Z
CLZ   Очистить флаг нулевого значения Z<--0 Z
SEI   Установить флаг глобального прерывания I<-- 1 I
CLI   Очистить флаг гло­бального прерывания I<--0 I
SES   Установить флаг знака S<-- 1 S
CLS   Очистить флаг знака S<--0 S
SEv   Установить флаг переполнения v<-- 1 v
CLv   Очистить флаг переполнения v<--0 v
SET   Установить флаг Т T<--1 T
CLT   Очистить флаг Т Т<--0 T
Мне­моника Операнды Описание Операция Флаги Кол-во циклов
SEH   Установить флаг полу переноса Н<-- 1 Н
CLH   Очистить флаг полу переноса Н<--0 Н
NOP   Выполнить холостую команду   Нет
SLEEP   Установить режим SLEEP   Нет
WDR   Сбросить сторожевой таймер   Нет

 

 

Таблица 3.3. Команды пересылки данных

Мнемо­ника Операн­ды Описание Операция Флаги Кол-во циклов
ELPM   Расширенная загрузка из памяти программ в регистр RO R0<-- (Z+RAMPZ) Нет
MOv Rd,Rr 0<=d<=31 0<=r<=31 Копировать регистр Rd<--Rr Нет
LDI Rd,k 16<=d<=31 0<=k<=255 Загрузить непосредственное значение Rd<--K Нет
LDS Rd,k 0<=d<=31 0<=k<=65535 Загрузить из ОЗУ Rd<--(k) Нет
LD Rd,X 0<=d<=31 Загрузить косвенно Rd <-- (X) Нет
LD Rd,X+ 0<=d<=31 Загрузить косвенно с постинкрементом Rd <-- (X), X<--X+1 Нет
LD Rd,X- 0<=d<=31 Загрузить косвенно с преддекрементом X<--X-1, Rd <-- (X) Нет
LD Rd,Y 0<=d<=31 Загрузить косвенно Rd<--(Y), Нет
LD Rd,Y+ 0<=d<=31 Загрузить косвенно с постинкрементом Rd<--(Y), Y<--Y+1 Нет
LD Rd,Y 0<=d<=31 Загрузить косвенно с преддекрементом Y<--Y-1, Rd <-- (Y) Нет
LDD Rd,Y+q 0<=d<=31 0<=q<=63 Загрузить косвенно со смещением Rd<--(Y+q) Нет
LD Rd,Z 0<=d<=31 Загрузить косвенно Rd <-- (Z) Нет
Мнемо­ника Операн­ды Описание Операция Флаги Кол-во циклов
LD Rd,Z+ 0<=d<=31 Загрузить косвенно с постинкрементом Rd <-- (Z), Z<--Z+1 Нет
LD Rd,-Z 0<=d<=31 Загрузить косвенно с преддекрементом Z<--Z-1, Rd<--(Z) Нет
LDD Rd,Z+q 0<=d<=31 0<=q<=31 Загрузить косвенно со смещением Rd <-- (Z+q) Нет
STS k,Rr 0<=d<=31 0<=k<=65535 Загрузить непосредственно в ОЗУ (k) <--Rr Нет
ST X,Rr 0<=r<=31 Записать косвенно (X) <-- Rr Нет
ST X+,Rr 0<=r<=31 Записать косвенно с постинкрементом (X) <--Rr, X<--X+ 1 Нет
ST -X,Rr 0<=r<=31 Записать косвенно с преддекрементом X<--X-1, (X) <--Rr Нет
ST Y,Rr 0<=r<=31 Записать косвенно (Y) <--Rr Нет
ST Y+,Rr 0<=r<=31 Записать косвенно с постинкрементом (Y) <-- Rr, Y<--Y+ 1 Нет
ST -Y,Rr 0<=r<=31 Записать косвенно с преддекрементом Y<--Y-1, (Y) <-- Rr Нет
STD Y+q,Rr 0<=r<=31 0<=q<=63 Записать косвенно со смещением (Y+q)<--Rr Нет
ST Z,Rr 0<=r<=31 Записать косвенно (Z) <--Rr Нет
ST Z+,Rr 0<=r<=31 Записать косвенно с постинкрементом (Z) <-- Rr, Z<--Z+ 1 Нет
ST -Z,Rr 0<=r<=31 Записать косвенно с преддекрементом Z<--Z-1, (Z) <-- Rr Нет
STD Z+q,Rr 0<=r<=31 0<=q<=63 Записать косвенно со смещением (Z+q)<--Rr Нет
LPM   Загрузить байт из памяти программ R0 <-- (Z) Нет
IN Rd,P 0<=d<=31 0<=P<=63 Загрузить данные из порта I/O в регистр Rd<--P Нет
OUT P,Rr 0<=r<=31 0<=P<=63 Записать данные из регистра в порт I/O P<--Rr Нет
PUSH Rr 0<=r<=31 Сохранить регистр в стеке STACK <--Rr Нет

 

Таблица 3.4. Команды переходов

Мнемо­ника Операн­ды Описание Операция Флаги Кол-во циклов
RJMP k -2K<k<2K Перейти относительно PC <--PC + k + 1 Нет
LJMP   Перейти косвенно PC<--Z Нет
JMP k 0<k<4M Перейти PC<--k Нет
RCALL k -2K<=k<=2K Вызвать подпрограмму относительно PC <-- PC + k + 1 Нет
ICALL   Вызвать подпрограмму косвенно PC<--Z Нет
CALL k 0<=k<=64K Выполнить длинный вызов подпрограммы PC<--k Нет
RET   Вернуться из подпрограммы PC <-- STACK Нет
RETI   Вернуться из прерывания PC <-- STACK I
CPSE Rd,Rr 0<=d<=31, 0<=r<=31 Сравнить и пропустить, если равно If Rd=Rr then PC <-- PC + 2 (or 3) Нет (1/2)/3
SBRC Rr,b 0<=r<=31 0<=b<=7 Пропустить, если бит в регистре очищен if Rr(b)=0 then PC <-- PC + 2 (or 3) Нет (1/2)/3
SBRS Rr,b 0<=r<=31 0<=b<=7 Пропустить, если бит в регистре установлен If Rr(b)=1 then PC <--PC + 2 (or 3) Нет (1/2)/3
SBIC P,b 0<=P<=31 0<=b<=7 Пропустить, если бит в регистре I/O очищен if l/O P(b)=0 then PC <-- PC + 2 (or 3) Нет (1/2)/3
SBIS P,b 0<=r<=31 0<=b<=7 Пропустить, если бит в регистре I/O установлен If l/O P(b)=1 then PC <--PC + 2 (or 3) Нет (1/2)/3
BRBS s,k 0<=s<=7 -64<=k<=+63 Перейти, если бит в регистре статуса установлен if SREG(s)=1 then PC <-- PC + k + 1 Нет (1/2)
BRBC s,k 0<=s<=7 -64<=k<=+63 Перейти, если бит в регистре статуса очищен if SREG(s)=0 then PC <-- PC + k + 1 Нет (1/2)
BREQ k -64<=k<=+63 Перейти, если равно if Rd=Rr (Z=1) then PC <-- PC + k + 1 Нет (1/2)
BRNE k -64<=k<=+63 Перейти, если не равно if Rd != Rr(Z=0) then PC<<--PC+ k+ 1 Нет (1/2)

 

Мнемо­ника Операн­ды Описание Операция Флаги Кол-во циклов
BRCS k -64<=k<=+63 Перейти, если флаг переноса установлен if C=1 then PC <-- PC + k + 1 Нет 1/2
BRCC k -64<=k<=+63 Перейти, если флаг переноса очищен if C=0 then PC <-- PC + k + 1 Нет 1/2
BRSH K -64<=k<=+63 Перейти, если равно или больше (без знака) if Rd<Rr(C=0) then PC<--PC+ k+ 1 Нет 1/2
BRLO k -64<=k<=+63 Перейти, если меньше (без знака) if Rd<Rr (C=1) then PC <--PC + k + 1 Нет 1/2
BRMI k -64<=k<=+63 Перейти, если минус if N=1 then PC <-- PC + k + 1 Нет 1/2
BRPL k -64<=k<=+63 Перейти, если плюс if N=0 then PC <-- PC + k + 1 Нет 1/2
BRGE k -64<=k<=+63 Перейти, если больше или равно (с учетом знака) if Rd>Rr (N(+)v=0) then PC <-- PC + k + 1 Нет 1/2
BRLT k -64<=k<=+63 Перейти, если меньше чем (со знаком) if Rd<Rr (N(+)v=1)then PC <--PC + k+ 1 Нет 1/2
BRHS K -64<=k<=+63 Перейти, если флаг полупереноса установлен if H=1 then PC <-- PC + k + 1 Нет 1/2  
BRHC k -64<=k<=+63 Перейти, если флаг полупереноса очищен if H=0 then PC <-- PC + k + 1 Нет 1/2  
BRTS k -64<=k<=+63 Перейти, если флаг Т установлен if T=1 then PC <-- PC + k + 1 Нет 1/2  
BRTC k -64<=k<=+63 Перейти, если флаг Т очищен if T=0 then PC <-- pc + k + 1 Нет 1/2  
BRvS k -64<=k<=+63 Перейти, если флаг переполнения установлен if v=1 then PC <-- PC + k + 1 Нет 1/2  
BRvC k -64<=k<=+63 Перейти, если флаг переполнения очищен if v=0 then PC <-- PC + k + 1 Нет 1/2  
BRIE k -64<=k<=+63 Перейти, если глобальное прерывание разрешено if I=1 then PC <-- PC + k + 1 Нет 1/2  
BRID k -64k<=k<=+63 Перейти, если глобальное прерывание запрещено if I=0 then PC <-- PC + k + 1 Нет 1/2  
                 

 









Читайте также:

Последнее изменение этой страницы: 2016-03-22; Просмотров: 67;


lektsia.info 2017 год. Все права принадлежат их авторам! Главная