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

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

ПЕРЕТВОРЕННЯ ІНФОРМАЦІЇ

Читайте также:
  1. Автоматизація оброблення інформації у податковій системі України
  2. Автоматизоване оброблення банківської інформації.
  3. Вили джерел інформації
  4. Витрати ® перетворення ® результати
  5. Відмова особі в доступі до інформації про неї, приховування, незаконне збирання, використання, зберігання чи поширення інформації можуть бути оскаржені.
  6. ВІДОБРАЖЕННЯ ІНФОРМАЦІЇ В МКП
  7. Газета як джерело оперативної інформації.
  8. Для чого призначений автоматичний збір інформації?
  9. Документ як джерело соціальної інформації.
  10. Документ – це засіб закріплення різними способами на відповідному матеріалі інформації про факти, події, явища об’єктивної дійсності та розумову діяльність людини.

 

Нехай, наприклад, необхідно ввести байт стану датчика дискретних сигналів (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; просмотров: 137 | Поможем написать вашу работу | Нарушение авторских прав




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