Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ КР_ред_версия_5_07_12.doc
Скачиваний:
5
Добавлен:
12.11.2019
Размер:
709.63 Кб
Скачать

6.2 Особенности организации проверки для конкретной имс.

Анализ схемы дешифратора показывает, что полная проверка ДШ должна быть выполнена как по информационным, так и по управляющим входам.

Проверка по информационным входам осуществляется путем перебора сигналов на этих входах. Алгоритм перебора имеет структуру -цикл с параметром, в котором значение параметра цикла равно 8.

Для полной проверки ИМС по управляющим входам необходимо выполнить перебор 4 раза: три раза для проверки ДШ в запрещенном состоянии (Е1 = 0, = = 1) и один раз для проверки ДШ в разрешенном состоянии (Е1 = 100). В каждом из трех первых случаев надо убедиться в наличии неактивных сигналов на всех выходах ДШ при любом наборе сигналов на входах ИМС; в последнем случае необходимо зафиксировать наличие «бегущего 0» на выходах ДШ (в соответствии с таблицей истинности, см. табл. 3).

  1. Разработка схемы алгоритма проверки имс.

Алгоритм проверки ИМС осуществляет задание начальных условий для очередного перебора (начальное ТС, начальный эталон) и переход к перебору тестовых слов, который реализуется в виде вспомогательного алгоритма PTS.

    1. Схема алгоритма перебора PTS

7.2. Схема алгоритма проверки имс.

8. Разработка программы. Проверки имс.

8.1. Текст основной программы проверки имс

; Определение регистров

test_slovo : equ 30h

fakt_reakc : equ 31h

etalon : equ 32h

par_c : equ 33h

; Определение портов

; Порт Р0 используется для вывода ТС из МК на входы ИМС

; Порт Р1 используется для ввода в МК слов

; фактической реакции с выходов ИМС

; Порт Р2 – вывод сигналов засветки на светодиоды

START: MOV P1, #0FFh ; Настроить порт Р1 на ввод

MOV test_slovo, #00h ; Начальное ТС для I запрещ. комб. по управ. вх. (Е1 = 0)

MOV etalon, #0FFh ; Начальное значение эталона

ACALL PTS

MOV test_slovo, #10h ; Начальное ТС для II запрещ. комб. ( = 0)

ACALL PTS

MOV test_slovo, #8h ; Начальное ТС для III запрещ. комб. ( = 0)

ACALL PTS

MOV test_slovo, #20h ; Нач. ТС для разреш. комбинации

MOV etalon, #0FFh ; Начальное значение эталона

ACALL PTS

NO_ERR: MOV P2, #2h

SETB PCON.1 ; Переход в режим сниженного энергопотребления

ERROR: MOV P2, #1h

SETB PCON.1

Формат ФР (ЭТ)

7

6

5

4

3

2

1

0

    1. Текст подпрограммы перебора тестовых слов pts.

PTS: mov par_c, #8 ; Установить параметр цикла

m1: mov R5, P1 ; Ввод фактической реакции

mov a, etalon ; etalon → a

xrl R5, a ; R5 a → R5

jnz ERROR ; Ф.Р. ≠ ЭТ, если да – выход на проверки с засветкой красного светодиода

inc P0 ; Формирование нового ТС

JNB P0.5, m2 ; Если запрет по одному

JNB P0.4, m2 ; из управляющих входов

JNB P0.3, m2 ; то не изменять эталон

rl a ; Е1 = 100

mov etalon, a ; изменить эталон

m2: DJNZ par_c, m1 ; Е1 ≠ 100, не изменять эталон

RET

Таким образом, программа, управляющая процессом проверки, реализуется структурой вида цикл с параметром, где значение параметра определяется количеством элементарных проверок.

Тело цикла включает:

- прием ФР на очередное ТС;

- сравнение ФР с эталоном с последующим ветвлением, а именно, если ФР равно эталону, переход к следующему действию в теле цикла, в противном случае выход из процесса проверки;

- формирование следующего ТС;

- формирование (по необходимости) эталона для следующего ТС.

Рассмотрим реализацию последнего раздела 8 в случае использования других МК.

МК PIC16C73 фирмы MICROCHIP

Пусть через порт PORTD на входы ИМС поступают ТС, через порт PORTB МК принимает слова ФР, PORTC связан с светодиодами.

Init ; Настройка портов

Bsf STATUS,RPO ;

Movlw ‘11000000’b

Movwf TRISD

Movlw ‘11111100’b

Movwf TRISC

Movlw 0ffh

Movwf TRISB

Bcf STATUS,RPO

START clrf test_sl ; Начальное ТС для Е1 = 0

movlw 0FFh ; Значение ЭТ для запрещенной

movwf etal ; работы DC

CALL PTS

movlw 10h ; Начальное ТС для = 1

movwf test_sl

CALL PTS

movlw 8h ; Начальное ТС для = 1

movwf test_sl

CALL PTS

movlw 20h ; Начальное ТС для Е1 = 100

movwf test_sl

movlw 0FEh

movwf etal

CALL PTS

NO_ERR bsf PORTC, 0

sleep

ERROR bsf PORTC, 1

sleep

PTS movlw 8h

movwf par_c

bsf STATUS, C

m1 movf etal, w

xorwf PORTB, w ; PORTB – входной порт

btfss STATUS, Я

goto ERROR

incf PORTD ; PORTD – выходной порт

btfss PORTD, 5

goto m2

btfsc PORTD, 4

goto m2

btfsc PORTD, 3

goto m2

rrf etal, а

m2 decfsz par_c

goto m1

return

МК AT90S4414

Порт РА и порт С настраиваются на вывод информации, порт РВ - на ввод.

Разряды РА.2- 0 подключаются к адресным входам дешифратора, разряды РА.5 - 3 подключаются к его управляющим входам .Выходы дешифратора подключаются к порту РВ. Разряды РС.1 - 0 подключаются к светодиодам.

Org 0h

; Настройка портов

LDI R1, #00000000b

OUT DDRB, R1 ; Настройка порта В на ввод

LDI R1, #11111111b

OUT DDRA, R1 ; Настройка порта А на вывод

OUT DDRC, R1 ; Настройка порта C на вывод

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

Start: LDI R22, #00000000b; нач. ТС при запрете по Е1

LDI R23, #0FFh: эталон при запрете

RCALL PTS;

LDI R22, #10H нач. ТС при запрете по Е2

RCALL PTS

LDI R22, #08H; нач. ТС при запрете по Е3

RCALL PTS

LDI R22, #20H; нач. ТС при разрешении

LDI R23, #0FEh; нач. эталон при разрешении

RCALL PTS

No_err: LDI R1, #1h; GREEN

OUT PORTC,R1

SLEEP

Err: LDI R1, #2h; RED

OUT PORTC,R1

SLEEP

; Подпрограмма перебора ТС

PTS: LDI R2,#8h

M1: OUT PORTA,R22;вывод очередного ТС

IN R24,PORTB

CP R24,R23

BRNE Err

INC R22; очередное ТС

SBRS R22,5; пропустить, если Е1=1

RJMP M2

SBRC R22,4; пропустить, если Е2=0

RJMP M2

SBRC R22,3; пропустить, если Е3=0

RJMP M2

SEC C

ROL R23; эталон для следующего ТС

M2: DEC R2

BREQ M1

RET

МК MC68HC11E9 фирмы MOTOROLA

Порты РВ и РС используются в режиме вывода, порт РЕ - в режиме ввода.

Разряды РВ.2- 0 подключаются к адресным входам дешифратора, разряды РВ.5 - 3 подключаются к его управляющим входам . Выходы дешифратора подключаются к порту РЕ. Разряды РС.1 - 0 подключаются к светодиодам.

T_Sl: equ $40

Par_c: equ $41

Etalon: equ $42

Org 0

; Настройка портов

LDAA #11111111b

STAA DDRB

BSET DDRC, #3

; Порт E настраивать не надо, т.к. он является входным

LDAA #8 ; параметр цикла

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

Start: LDAA #$0

STAA T_Sl; начальное ТС при запрете по Е1

LDAB #$0FF; эталон при запрете работы DC в регистр В

JSR PTS

LDAA #$10

STAA T_Sl; начальное ТС при запрете по Е2

JSR PTS

LDAA #$08

STAA T_Sl; начальное ТС при запрете по Е3

JSR PTS

LDAA #$20

STAA T_Sl; начальное ТС при разрешении работы DC

LDAB #$0FE ; начальный эталон при разрешении работы DC

JSR PTS

No_err: BSET PORTC,#$1; GREEN

STOP

Err: BSET PORTC,#$2; RED

STOP

; Подпрограмма перебора ТС

PTS: LDAA #$8

STAA Par_c

M1: LDAA T_Sl

STAA PORTB ; Вывод очередного ТС на входы ИМС

CMPB PORTE

BNE Err

INC T_Sl ; формирование следующего ТС

BRCLR T_Sl,#$20,M2

BRSET T_Sl,#$10,M2

BRSET T_Sl,#$8,m2 ; проверка на запрет

SEC

ROLB

M2: DEC Par_c

BNE M1

RTS

рекомендуемая литература.

  1. Сташин В.В. Проектирование цифровых устройств на однокристальных микроконтроллерах - М.: 1991.

  2. Нерода В.Я.,Торбинский В.Э.,Шлыков Е.Л. Однокристальные микро-ЭВМ MCS-51.-М.:Диджитал Компонентс,1995.

  3. Бродин В.Б., Калинин А.В. Системы на микроконтроллерах и БИС программируемой логики – М: Издательство ЭКОМ, 2002

  4. Бродин В.Б., Шагурин И.И. Микроконтроллеры:справочник- М:ЭКОМ, 1999.

  5. Шагурин И.И. Микропроцессоры и микроконтроллеры фирмы MOTOROLA - М: Радио и связь, 1998.

  6. Ульрих В.А. Микроконтроллеры PIC16C7X: справочник - СПб: Наука и техника, 2000.

  7. Евстифеев А. В. Микроконтроллеры AVR семейства Classic фирмы ATMEL

- М.: “Додэка-ХХI”, 2002