Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Введення байта стану одного датчика

Читайте также:
  1. II. Оформление перевозки пассажиров в поездах дальнего следования и пригородного сообщения
  2. III Задания для вводного контроля знаний
  3. III Санкт-Петербургского международного культурного форума
  4. Jus Gentium как прообраз международного права.
  5. V. Посадка пассажиров в поезд дальнего следования и пригородного сообщения и условия проезда
  6. XI. Возврат денег, уплаченных за проезд в поездах пригородного сообщения
  7. А для того, чтобы просчитать период прохождения одного зала, мы должны период обращения вокруг Ярило - Солнца разделить на 144, либо время прохождения чертога разделить на 9.
  8. А для того, чтобы просчитать период прохождения одного зала, мы должны период обращения вокруг Ярило - Солнца разделить на 144, либо время прохождения чертога разделить на 9.
  9. Акционерное соглашение заключается в письменной форме путем составления одного документа, подписанного сторонами.
  10. Аналіз стану забруднення довкілля.

Після запуску MPSIM необхідно вибрати регістри, що контролюються в області перегляду на екрані монітора. Для цього можна користуватися наступними командами:

AD – дозволяє додати регістр в область перегляду (формат команди можна подивитись в MPSIM, набравши команду?);

DV – прибрати заданий регістр з області перегляду;

DR – дозволяє продивитись зміст всієї пам'яті;

NV – повністю очищати область перегляду;

V – заносить регістр в область перегляду.

Вибравши необхідні регістри для перегляду, можна приступати до моделювання. При цьому можна скористатись наступними командами:

SS – виконує одну команду програми;

DX – показує поточні параметри трасування;

TF – відкриває і закриває файл для запису даних, що трасуються;

ТА – трасує всі команди між двома адресами;

ТС – трасує команду за конкретною адресою;

GO – перехід за заданою адресою;

Е – запускає програму на безперервне виконання.

Дуже складно перебирати програму одиночними командами або моделювати безупинно. Тому зручно використовувати точки зупину:

В <адреса > – перервати виконання за заданою адресою;

ВС – очистити всі точки зупину;

DB – показати всі точки зупину.

Встановивши точки зупину, можна запустити програму на виконання і спостерігати роботу програми у відповідності з вхідними стимулами (див. далі "Файли, що завантажуються і створюються MPSIM").

 

3.7.3. Файли, що завантажуються і створюються MPSIM

 

Файл INI. Даний файл містить команди, що виконуються автоматично при запуску MPISM. Він необхідний, бо перед симуляцією необхідно з'ясувати, які регістри необхідно продивлятися в процесі симуляції. Якщо файл не використати, то потрібні регістри прийдеться описувати при кожному запуску симулятора.

Приклад INI-файлу:

ZP; Обнулити таблицю шляхів

ZR; Обнулити всі регістри

ZT; Обнулити таймер

RE

LO <ім'я файлу>; Завантажити файл з програмою

NV; Очистити екран перегляду.

VW, B, 8; Задати новий регістр в область перегляду

AD F1, X, 2; Додати в область перегляду регістр за

; адресою 1, формат виведення

; шістнадцятирічний, дві цифри

AD F3, B, 8

AD F5, B, 5

AD TRISA, B, 5

AD TRISB, B, 8

ST SS; Завантажити файл стимулу

RS

Наведений приклад є стандартним і може бути використаний в якості INI-файлу для Вашої програми, адреси регістрів для перегляду виберіть відповідно своєму додатку.

Файл стимулу. Файл стимулу завантажується командою ST <ім’я файлу>, розширення повинно бути STI. Файл стимулу містить вхідні події, що надходять на ніжки портів. Він повинен бути текстовим.

 

Приклад:

 

Step RTCC RA3 RA2 RA1 RA0
           
           
           
           
           
           

 

Даний спосіб моделювання зручний при використанні команди Е. Можна задати стимули іншим способом:

SE < номер ніжки > < дія >.

Після цієї команди, якщо вивід МК встановлений на ввід, він переключиться.

Файл журналу. Даний файл створюється автоматично при виході з програми MPSIM. Команда виходу Q. Цей файл містить послідовність команд, що використовувалися під час останнього запуску MPSIM.

Команда LJ завантажує файл журналу на виконання. Але враховуйте, що після кожного виходу файл журналу оновлюється.

Програмний файл. За командою LO < ім’я файлу > Ваша програма завантажиться в симулятор.

Файл команд. Команда GE < ім’я файлу > завантажує в симулятор набір команд, що міститься в файлі з розширенням INI. Ім'я повинно бути не MPSIM.

 

3.7.4. Особливості використання симулятора MPSIM

 

При використанні симулятора MPSIM версії 5.11 потрібно враховувати те, що обробка переривання починається тільки через 4 такти, а симулятор переходить на обробку переривання через 1 такт.

Окрім цього, симулятор "вважає", що всі порти мають фіктивне навантаження на виходах ОМК PIC 16F84 (16С84).

Слід зауважити, що симулятор також "не звертає уваги" на невірну ініціалізацію портів, переривань, таймера і таке інше.

 

 

___________

Введення байта стану одного датчика

 

Нехай, наприклад, необхідно ввести байт стану датчика дискретних сигналів (Di), порівняти його з уставкою, що зберігається у вигляді константи Ki в пам'яті даних, і за результатами порівняння здійснити:

Введення наступного байта стану датчика, якщо Di = Ki;

Формування і виведення керуючих сигналів у випадку, якщо Di > Ki або Di < Ki (сформувати і вивести позитивний імпульс заданої тривалості).

Для вирішення даної задачі необхідно:

Вибрати лінії (розряди) портів А і В для введення сигналів від датчика і виведення імпульсних сигналів (наприклад, RB0... RB7 – на введення, а RA0 – на виведення);

Заборонити всі переривання;

Здійснити опитування стану датчика;

Проаналізувати його (порівняти отриманий байт з константою, використовуючи, наприклад, прапорець переносу позики «С» в регістрі STATUS);

Організувати процедуру передачі управління на дві підпрограми в залежності від результатів порівняння;

Сформувати сигнал заданої тривалості за допомогою тимчасового інтервалу, рівного часу затримки. Для цього можна використати:

 

 
 

 


Рис. 5.2. Загальний алгоритм

програми

 

програмний лічильник, працюючий, наприклад, в декрементному режимі. При цьому в лічильник заноситься константа, лічильник декрементується. Онулення лічильника є сигналом закінчення часового інтервалу;

внутрішній таймер-лічильник (TMRO);

зовнішній (додатковий) таймер-лічильник у випадку, якщо TMRO з будь-якої причини використати неможливо;

одну або декілька холостих команд NOP;

Організувати введення наступного байта.

На підставі попередніх міркувань можна запропонувати варіант блок-схеми алгоритму робочої програми мікроконтролера (рис. 5.5).

На рис. 5.6 наведена БСА підпрограми порівняння двох восьми- розрядних кодів (СОМР), один з яких представляє собою байт стану датчика (Di), а другий – константу (Ki), що зберігається в одному з регістрів пам'яті даних.

На підставі блок-схем алгоритмів і розподілу пам'яті даних можна запропонувати текст програми, що наведений нижче:

 

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

LIST p = 16C84, r = HEX

Title ‘Z2’

; Секція заголовка

; Опис спеціальних регістрів

TRISA EQU 85H

TRISB EQU 86H

INTCON EQU 0BH

STATUS EQU 03H

; Опис регістрів вводу/ виводу PIC

 

PORTA EQU 05H; Регістр вводу/ виводу

; порту А

PORTB EQU 06H; Регістр вводу/ виводу

; порту В

; Опис комірок ОЗУ

CTD EQU 0DH; Лічильник циклу в підпрограмі

; затримки (DELAY)

CONST EQU 0EH; Регістр зберігання константи Ki

;

; Робоча секція

; Точка входу в програму після команди RESET

ORG 0

GOTO INMK

ORG 100H

; Процедура ініціалізації МК

; Заборона переривань

INMK BCF INTCON, 7; Скидання 7-го біта в регістрі

; INTCON

; Завантаження регістра

; керування портом В

MOVLW B'1111 1111’; Переслати константу в W

TRIS 6

; Завантаження регістра

; керування портом A

MOVLW B'0000 0000’; Переслати константу в W

TRIS 5

BCF PORTA, 0; Скидання 0-го біта в регістрі

; порту А

; Опитування стану датчика і процедура порівняння (COMP)

LESS MOVF PORTB, 1

 

SUBWF CONST, 1

ADDLW B'11111111’

; Перевірка стану прапорця

; переносу/позики С

BTFSC STATUS, 0

GOTO LESS

; Видавання імпульсу заданої тривалості (IMPULS)

BSF PORTA, 0

; Затримка (DELAY)

MOVLW B'0000 1111’; Завантаження лічильника

; затримки

MOVWF CTD

; Цикл затримки

M1 DECFSZ CTD; Декремент CTD, пропустити

; команду, якщо 0 (якщо

; регістр CTD онулився)

GOTO M1

; Припинити видавання сигналу

BCF PORTA, 0

GOTO LESS

END

 

       
   
 
 
 

 


Рис. 5.5. Загальний алгоритм програми

 

5.2.2. Введення байтів стану двох незалежних датчиків

 

Будемо сподіватись що, наприклад, необхідно ввести водночас через порти введення/ виведення байти стану 2-х незалежних датчиків дискретних сигналів, виконати порівняння введених байтів між собою, і за результатами порівняння здійснити:

У випадку, якщо D1 <= D2 управління передається фрагменту програми з адресою А1 і встановлюється в ²1² ознака (прапорець) F0;

У випадку, якщо D1 > D2 ознака F0 встановлюється в ²0², у відповідності з варіантом завдання формуються керуючі сигнали, а управління передається на фрагмент програми з адресою А2.

Вибрати мікроконтролер, що має не менше 17-ти ліній введення/ виведення дискретних сигналів (наприклад, PIC 16C55);

Вибрати лінії (розряди) портів А, В і С для введення сигналів від датчиків і виведення імпульсних сигналів (наприклад, RB0... RB7 – для вводу сигналів від датчика D1, RC0... RC7 – для вводу сигналів від датчика D2 і RA0 – для виводу імпульсних сигналів управління заданої тривалості);

Здійснити опитування стану обох датчиків;

Порівняти отримані байти стану між собою;

Організувати процедуру передачі управління на дві підпрограми в залежності від результатів порівняння;

Сформувати сигнал заданої тривалості за допомогою часового інтервалу, рівного часу затримки.

Для цього можна використати:

одну або декілька холостих команд NOP;

програмний лічильник, працюючий, наприклад, в декрементному режимі. При цьому в лічильник заноситься константа, лічильник декрементується. Онулення лічильника є сигналом закінчення часового інтервалу;

внутрішній таймер-лічильник (TMRO);

зовнішній (додатковий) таймер-лічильник у випадку, якщо TMRO з будь-якої причини використати неможливо;

Організувати введення наступного байта.

На підставі попередніх міркувань можна запропонувати варіант блок-схеми алгоритму робочої програми мікроконтролера. Цей алгоритм наведений на рис. 5.7. На рис. 5.8 наведена БСА підпрограми порівняння двох байтів стану незалежних датчиків D1 і D2 між собою (СОМР1).

 


На підставі блок-схем алгоритмів і розподілу пам'яті даних можна запропонувати текст програми, що наведений нижче:

; Текст програми:

LIST p = 16C55, r = HEX

Title ‘Z3’

; Секція заголовка

; Опис спеціальних регістрів

TRISA EQU 85H

TRISA EQU 86H

INTCON EQU 0BH

STATUS EQU 03H

; Опис регістрів вводу/ виводу PIC

PORTA EQU 05H

PORTB EQU 06H

PORTC EQU 07H

; Опис комірок ОЗП

F0 EQU 0DH

; Робоча секція

; Точка входу в програму після RESET

ORG 0

GOTO INP

ORG 100H

; Процедура ініціалізації MK

; Заборона переривань

INMK BCF INTCON, 7; Скидання 7-го біта в регістрі

; INTCON

 

; Завантаження регістра

; керування портом

MOVLW B’ 1111 1111’; Переслати команду в регістр W

TRIS 6

; Завантаження регістра

; керування портом А

MOVLW B’ 0000 0000’; Переслати команду в регістр W

TRIS 5

; Завантаження регістра

; керування портом С

MOVLW B’ 1111 1111’; Переслати команду в регістр W

TRIS 7

BCF PORTA, 0; Скидання 0-го біта в регістрі

; порту А

; Опитування стану датчиків і процедура порівняння (COMP1)

LESS MOVF PORTB, 0

SUBWF PORTC, 1

; Перевірка стану прапора

; переносу/ позики C

BTFSC STATUS, 0; Якщо С = 1 (D1 <= D2), то

GOTO A1; перехід на фрагмент

; програми з адресою A1

; Настанова прапора F0 в 0

BCF F0, 0

; Видавання імпульсу заданої тривалості (IMPULS)

BSF PORTA, 0; Виставити "1" в порт А

NOP; Затримка (DELAY)

NOP

BCF PORTA, 0; Виставити 0 в порт А

GOTO A2; Перехід на фрагмент

; програми з адресою А2

; Настанова прапора F0 в 1

A1 BSF F0, 0

GOTO LESS

A2 GOTO LESS

END

___________

 




Дата добавления: 2014-12-18; просмотров: 220 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.041 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав