Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Процес зливання розчину з резервуару.




ГОСПОДАРСТВА ТА ПРИРОДОКОРИСТУВАННЯ

Факультет прикладної математики та комп’ютерно–інтегрованих систем

 

Кафедра електротехніки та автоматики

КУРСОВА РОБОТА

з предмету “Мікропроцесорна техніка” на тему

"Мікропроцесорна система управління резервуаром для проявки фотоплівки"

Варіант № 4

 

Виконав студент

3 курсу групи АУТП-1

Гринько Віталій Іванович

 

 

Робота захищена з оцінкою_______________.

 

Члени комісії к.т.н., доц. Круліковський Б.Б.

асс. Мельник

 

 

Рівне – 2011

 

Зміст

Вступ  
   
Розділ І. Формалізація поставленої задачі  
1.1 Постановка задачі  
1.2 Опис алгоритму роботи фотобачка  
1.3 Математична модель роботи фотобачка  
   
Розділ ІІ. Апаратне забезпечення системи  
2.1 Мікроконтроллери сімейства MCS-51  
2.2 Апаратний комплекс «Навчальний стенд EV8032»  
   
Розділ III. Програмне забезпечення системи  
3.1 Алгоритм роботи програми  
3.1.1 Алгоритм підпрограми переривань  
3.1.2 Алгритм підпрограми індикаціх роботи транспортера  
3.2 Розрахунок часових параметрів та затримок  
3.4 Код програми  
   
Висновок  
   
Література  

 

 

Вступ

 

В нас час процес проявки фотоплівки є дуже важливим, хоча й досить складним з фізико-хімічної точки зору процесом. Для того, щоб він пройшов успішно важливо під час проявки тримати параметри процесу (температуру розчину проявника, час витримування фотоплівки у розчині проявника та фіксатора, кількість промивок) на сталому, конкретному рівні.

Для автоматизації цього процесу використаємо мікропроцесорну систему на базі MCS-51, завдання якої полягатиме в контролі поточного рівня розчину в бачку (керування процесом наповнення бачка і зливу), температури розчину, відлік часу перебування фотоплівки у кожному розчині. Крім того система повинна буде провести певну кількість промивок.

Курсова робота скадається з вступу, 3 розділів, основної частини, висновків, списку використаної літератури та додатку А.

В І розділі описаний технологічний процес проявки фотоплівки, його параметри та алгоритм роботи фото бачка. Також розроблена математична модель процесу керування бачком.

В ІІ розділі наведено опис апаратних засобів стенда, що використовується для реалізації системи управління: мікроконтроллер MCS-51, динамічний семисегментний індикатор(ДСІ), резидентна пам'ять даних та резидентна пам'ять програм, динамічний семисегментний індикатор(ДСІ), світлодіодний індикатор(СІ), знакосинтезуючим індикатор(ЗСІ).

ІІІ розділ містить опис алгоритму управління фото бачка, опис алгоритмів та ПЗ використаних підпрограм індикації, відліку часу, часових затримок.

Загальний об’єм роботи 41 сторінока, список літератури містить 5 найменувань, 6 рисунків, 8 таблиць.
Розділ I. Формалізація поставленої задачі

1.1. Постановка задачі

Завдання курсової роботи полягає в розробці МПС, що здійснює автоматизований процес проявки фотоплівки. Цей процес триває декілька етапів: наповнення розчином фотобачка, його нагрівання, витримка фотоплівки у розчині заданий час та злив розчину за допомогою мікропроцесора.

Кожний етап характеризується певними параметрами. Етап заповення фотобачка характеризується такими параметрами: об’єм бачка 40 л, швидкість заповнення 8 л/c, швидкість зливу 5 л/c. При заповненні та зливі рівень рідини відображається на динамічному семисегментному індикаторі МПС. В якості системи керуванням завданням визначено використати навчально-відлагоджувальний стенд EV8031/AVR. Для відобрадення процесу наповнення фотобачка слід використати крапки динамічного семисегментного індикатора стенда. Процес проявки починається із заповнення бачка розчином проявника, що відображається на динамічному семисегментному індикаторі. Після завершення процесу заповнення починається процес нагрівання розчину. Поточна температура відображається на знакосинтезуючому індикаторі стенда. Завданням визначені такі параметри нагрівання розчину проявника: температура проявника 35 oС, швидкість нагрівання становить 1.8 оС/с, індикатор температури – знакосинтезуючий індикатор стенда. Після встановлення температури розчину на заданому рівні починається відлік часу проявки, який відображається на семисегментному динамічному індикаторі в секундах. Після закінчення проявки розчин зливається і бачок наповнюється фіксажом. Починається відлік часу фіксації (також на семисегментному динамічному індикаторі). Останнім етапом є промивка, яка являє собою процес наповнення і зливання води 4 рази.

 

Перелічені параметри технологічного процесу наведені в табл. 1.

 

Таблиця 1. Технологічні параметри процесу проявки фотоплівки.

 
Об’єм, л  
Швидкість заповнення, л/c  
Індикатор заповнення Динамічний
Т проявки (індикатор), oC  
Швидкість нагріву  
Індикатор нагріву Знакосинтезуючий
Час проявки (відлік часу)  
Фіксаж (відлік часу), c  
Кількість промивок (лічильник)  
Швидкість зливу, л/с  

 

Технологічну схему системи керування процесом проявки фотоплівки можна відобразити на рис. 1.

 

Рис.1. С истема керування процессом проявки фотоплівки

1 – резервуар, 2 – фотоплівка, 3 – вхідний клапан, 4 – вихідний клапан, 5- давач температури. МПС – мікропроцесорна система, СКН – система керування нагрівником, ДР – давач рівня.

 

1.2 Опис алгоритму роботи бачка для проявки фотоплівки

Рис. 2. Блок-схема роботи фотобачка

 

При запуску програми мікропроцесора починається заповнення резервуара розчином проявника (блок 1), що відображається на динамічному індикаторі (перший сегмент сигналізує про початок роботи з бачком, мінімільному рівню відповідає 1 сегмент, максимальному – 7). Після завершення процесу заповнення вмикається нагрівання (блок 2). Поточна температура відображається на знакосинтезуючому індикаторі (значення температури відображається засвічення необх. к-сті стовпців). Коли температура розчину вийшла на заданий рівень починається відлік часу проявки (блок 3), який відображається на семисегментному динамічному індикаторі в секундах. Після закінчення проявки розчин зливається і бачок наповнюється фіксажом (блок 4). Починається відлік часу фіксації (також на семисегментному динамічному індикаторі (блок 5)). Останнім етапом є промивка, яка являє собою процес наповнення і зливання розчину 2 рази (блок 6).

 

1.3 Математична модель процесу проявки фотоплівки.

1.3.1.Процес заповнення резервуара рідиною.

Процес заповнення бачка ємністю 40 л зі швидкістю 8 л/с здійснюється за 5 секунд (табл 1.1).

Табл 1.1

Час t3(c)          
Об’єм розчину V(л)          

 

Точний час заповнення: tз=40/8=5c. Тобто, за 5 с наповнення рівень розчину у бачку зміниться з 0 до 40(л). Для відображення рівня використовується 4 розряди статичного семисегментного індикатора таким чином (табл 1.2)

Табл. 1.2

t (c)      
V (л)      
Спосіб відображення
Керуючий код для індикатора      

 

   
   
4+1
   

 

 

Кожне значення послідовно заноситься в регістр даних індикатора за адресою 8002h і фіксується в ньому протягом 1с за допомогою виклику підпрограми DEL.

1.3.2.Процес нагрівання проявника в резервуарі.

Процес нагрівання бачка до температури 35°С зі швидкістю 1,8 °С/с здійснюється за більше ніж 19 секунд (табл 1.3).

Табл. 1.4

Час t3(c)                    
Температура °С 1,8 3,6 5,4 7,2   10,8 12,6 14,4 16,2  

 

 

                   
19,8 21,6 23,4 25,2   28,8 30,6 32,4 34,2  

 

Точний час нагрівання: 35°С/1,8°С/c=19,44с Для рівномірного відображення цього процессу на знакосинтезуючому індикаторі приймемо, що бачок протягом 0,56с нагрівається на 1 °С.Тобто за 20 с нагрівання температура розчину у бачку зміниться з 0 до 35(°С). Для відображення рівня використовується матриця світлодіодів таким чином (табл 1.4)

Табл. 1.5

t (c)          
Т(°С)          
К-сть світлодіодів    
Керуючий код для індикатора 8000h          
8002h          

 

Кожне значення послідовно заноситься в регістр даних індикатора за адресою 8000h і (8002h відповідно) фіксується в ньому протягом 5с за допомогою виклику підпрограми DEL1.

Процес зливання розчину з резервуару.

Процес зливу розчину з бачка ємністю 40 л зі швидкістю 5 л/с здійснюється за час 8 секунд (табл 1.6).

Табл 1.6

Час t3(c)                
Об’єм розчину V(л)                

Точний час зливу: 8 с. Тобто за 8 с зливу рівень розчину у бачку зміниться з 40 до 0 (л). Для відображення рівня використовується статичний індикатор таким чином (табл 1.7)

Табл. 1.7

t (c)        
V (л)        
К-сть сегментів
Керуючий код для індикатора        
       
       
       

 

Кожне значення послідовно заноситься в регістр даних індикатора за адресою8002h і фіксується в ньому протягом 1с за допомогою виклику підпрограми DEL

 

Розділ II. Апаратне забезпечення системи

2.1. Мікроконтролер MCS-51 [1], [2]

Мікроконтроолер або однокристальна мікроЕОМ — виконана у вигляді мікросхеми спеціалізована мікропроцесорна система, що включає мікропроцесор, блоки пам'яті для збереження коду програм і даних, порти вводу-виводу і блоки зі спеціальними функціями

Апаратні особливості мікроконтролера MCS-51 [1]:

- наявність 128 байт внутрішнього ОЗП;

- наявність 4-х двонаправлених побітно 8-розряднихх| портів вводу/виводу|виведення|, що настроюються|набудовують|;

- наявність двох 16-розрядних таймерів-лічильників;

- вбудований тактовий генератор;

- адресація 64К| пам'яті програм і 64К| пам'яті даних;

- дві лінії запитів на переривання від зовнішніх пристроїв|устроїв|;

- інтерфейс для послідовного обміну інформацією з|із| іншими мікроконтролерами або персональними комп'ютерами;

- мікроконтролер MCS-51 забезпечений УФ-ПЗП об'ємом|обсягом| 4К|.

 

Функціональна схема МК приведена на рис. 1, призначення їх виводів|виведень| — на рис. 2.

Рис. 3. Функціональна схема МК

 

Рис. 4. Призначення виводів МК

 

Коротко пояснимо приведені| на останньому позначення:

Vss| — потенціал землі|грунту|;

Vcc| — основна напруга|напруження| +5 У;

XI, Х2 — входи для підключення кварцевого резонатора;

RST| — вхід загального|спільного| скидання|скиду| мікроконтролера;

PSEN| — дозвіл зовнішній пам'яті програм; видається тільки| при зверненні до зовнішнього ПЗП;

ALE| — строб адреси зовнішньої пам'яті;

ЕА — відключення внутрішньої програмної|програмової| пам'яті; рівень 0 на цьому вході примушує|заставляє| МК виконувати програму тільки|лише| зовнішнього ПЗП, ігноруючи внутрішнє (якщо останнє є|наявний|);

Р0 — 8-бітовий двонаправлений порт введення/виводу|виведення| инфор­мації|; при роботі із|із| зовнішніми ОЗУ і ПЗП по лініях порту в режимі тимчасового мультиплексування видається адреса зовнішньої пам'яті, після чого здійснюється передача або при­йом| даних.

Р1 — 8-бітовий квазідвонаправлений порт введення/виводу|виведення|; кожний| розряд порту може бути запрограмований як на введення, так і на вивід|виведення|, незалежно від стану|достатку| інших розрядів;

Р2 — 8-бітовий квазідвонаправлений порт, аналогічний Р1; крім того, виводи|виведення| порту використовуються для видачі адресної ин­формації| при зверненні до зовнішньої пам'яті програм або дан­их| (якщо використовується 16-бітова адресація останньої).

РЗ — 8-бітовий квазідвонаправлений порт, аналогічний Р1; крім того, виводи|виведення| порту можуть виконувати ряд|лаву| альтернативних функцій, які описані нижчим.

2.2. ОЗП, ПЗП, регістри|реєстрів| MCS-51 [1]

Об'єм|обсяг| пам'яті програм, розташованої|схильної| на кристалі MCS-51, рівний 4 К|. При зверненні до зовнішньої пам'яті програм всі МК сімейства 8051 завжди використовують 16-розрядну адресу, що забезпечує ним доступ до 64К| ПЗП. МК звертається|обертається| до програмної|програмової| пам'яті при читанні кода операції і операндів (використовуючи лічильник команд РС), а також при виконанні команд перенесення|переносу| байта з пам'яті програм в акумулятор. При виконанні| команд перенесення|переносу| даних адресація елементу пам'яті програм, з|із| якої будуть прочитані дані, може здійснюватися як з використанням| лічильника РС, так і з використанням спеціального двохбайтового| регістра|реєстру|-покажчика даних DPTR|.

Пам'ять даних, розташована|схильна| на кристалі, має об'єм|обсяг| 128 байт. Перші 32 байти організовано в чотири банки регістрів|реєстрів| загального|спільного| призначення, що позначаються|значать| відповідно банк 0...3. Кожен банк складається з 8 регістрів|реєстрів| 110...117. У будь-який момент часу про­грамі доступний тільки|лише| один банк регістрів|реєстрів|, номер якого знаходиться| в 3-му і 4-му бітах слова стану|достатку| програми PSW|.

Адресний простір|простір-час|, що залишився, може конфігуруватися| розробником на свій розсуд — в нім розташовуються стек, системні і призначені для користувача області даних. Звернення до осередків|вічок| пам'яті даних можливо двома способами. Перший спосіб — пряма адресація елементу пам'яті. В цьому випадку адреса осередку|вічка| є|з'являється| операндом відповідної команди. Другий спосіб — непряма адресація за допомогою регістрів|реєстрів| R0| або R1|. Перед виконанням відповідної команди в один з цих регістрів|реєстрів| має бути занесений адреса осередку|вічка|, до якої необхідно| звернутися|обертатися|.

До адресного простору|простір-час| пам'яті даних примикає адресний простір|простір-час| регістрів|реєстрів| спеціальних функцій SFR|. Отме­тім, що регістри|реєстри| займають|позичають| тільки|лише| частку|частину| 128-байтового адресного простору|простір-час|. Ті елементи пам'яті з|із| адресами 80Н|...0FFН, які не зайняті|позичати| регістрами|реєстрами|, фізично відсутні на кристалах МК сімейства 8051, і при зверненні до них можна прочитати лише код команди повернення.

При зверненні до зовнішньої пам'яті даних МК стає доступним 64К| ОЗП. Адресація згаданих осередків|вічок| зовнішнього ОЗУ здійснюється методом непрямої адресації за допомогою ре­гістрів| R0| і R1| або за допомогою вищезгаданого двобайтового регістра|реєстру| DPTR|.

Акумулятор є|з'являється| джерелом операнда і местомом фіксації результату при виконанні ряду|лави| операцій. Тільки|лише| з використанням| акумулятора можуть бути виконані операції зсуву|зсуву|, перевірки на нуль|нуль-індикатор| і ряду|лави| інших. Проте|однак| на відміну від більшості мікропроцесорів|, система команд 8051 містить|утримує| велику кількість команд пересилок, логічних операцій і переходів, не використовуючих акумулятор|.

При виконанні ряду|лави| команд в арифметично-логічному пристрої| (АЛП) формуються ознаки операцій — прапори, які фіксуються в регістрі|реєстрі| PSW|.

Перелік прапорів, їх символічні імена і умови їх формування приведені в таблиці 6.

Таблиця 6. Формат слова стану|достатку| програми PSW [1]

 

|Регістр|реєстр|-покажчик даних DPTR| найчастіше використовується для фіксації 16-бітової адреси в операціях звернення до зовнішньої па­мяті| програм і даних. З погляду програміста він може виступати|вирушати| як у вигляді одного 16-бітового регістра|реєстру|, так і у вигляді двох незалежних регістрів|реєстрів| DPL| і DPH|.

2.3. Семисегментний статичний індикатор [2], [3]

Для відображення цифрової інформації найбільшого поширення набули семисегментні індикатори, у яких зображення цифри складають із семи лінійних світлодіодних сегментів розташованих у вигляді цифри 8

На основі світлодіодів і семисегментних індикаторів будуються підсистеми відображення інформації. При побудові підсистем відображення інформації розрізняють два підходи – динамічна й статична схеми побудови підсистем індикації.

Статична індикація полягає в постійному підсвічуванні індикаторів HL1-n від одного джерела інформації.

У такій системі кожен індикатор HG1-n підключений через власний дешифратор DC1-n і регістр-засувку RG1-n до шини даних, вибірка регістрів RG1-n виробляється за допомогою селектора адреси DА. Апаратні витрати при такій організації становлять: n пар регістрів, дешифратор при n десяткових розрядів індикатора.

Рис. 6. Структурна схема статичної індикації.

DA - дешифратор адреси, необхідний для вибірки відповідного регістра;

R1-R4 - регістри, у яких тимчасово зберігається значення коду числа для відображення (відповідний регістр вибирається DA);

DC1-DC4 - семисегментні дешифратори, що перетворять двійковий код у семисегментний код;

HG1-HG4 - семисегментні індикатори;

ШД - шина даних, по якій здійснюється передача даних на індикацію.

У стенді EV8031 статична індикація реалізована на чотирьох статичних семисегментних індикаторах HG1 (розряди HG1.0, HG1.1, HG1.2, HG1.3). Звернення до них відбувається як до комірок пам'яті з адресами А000h (пара старших розрядів).

Цей індикатор слугує для відображення зворотнього відліку часу проявки та фіксації, а також для відображення кількості промивок фотоплівки.

2.4. Семисегментний динамічний індикатор

Сутність динамічної індикації полягає в почерговому циклічному підключенні кожного індикатора HL1-n до джерела інформації через загальну шину даних.

Вибірка індикатора здійснюється дешифратором DА. У регістрі RD зберігається цифровий код, призначений для відображення. У регістрі RA зберігається адреса індикатора.

Рис. 7. Структурна схема динамічної індикації.

RD - регістр даних для тимчасового зберігання відображуваного числа або символу;

RA - регістр адреси для тимчасового зберігання двійкового коду адреси вибраного індикатора;

DA - для перетворення адреси, що задається двійковим кодом, в позиційний код;

HL1-HL4 - семисегментні індикатори.

При такому включенні значно зменшуються апаратні витрати. Але необхідно забезпечити достатній час свічення одного індикатора, для того щоб не зменшувалась яскравість. Також необхідно забезпечити таку частоту перебору індикаторів, щоб не було помітно мерехтіння. Переваги такого способу помітні при кількості розрядів індикації більше п’яти.

Динамічна індикація реалізована на платі розширення за допомогою чотирьохрозрядного семисегментного індикатора HL2. Керування динамічною індикацією здійснюється за допомогою порту В мікросхеми системного контролера, сигнали вибірки відповідного індикатора надходять від лінії порту РС0, РС1 до дешифратора адреси розряду DD3.

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

2.5 На платі також розміщений світлодіодний знакосинтезуючий індикатор (матриця світло діодів 5х7), що використовується для відображення процесу нагрівання проявника.

 

 

Розділ III. Програмне забезпечення системи

3.1 Блок-схема алгоритму роботи програми

 
 


1

 
 


2

 
 
Виклик підпрограми nahriv  


3

   
 
 
 
 
 

 


4

 

 

 
 

 

 


           
   
   
 

 


7

 

 

 
 

 

 


 

 
 


Опис блок-схеми роботи програми.

1.Викликаємо підпрограму для заповнення бачка на статичному індикаторі.

2.Викликаємо підпрограму нагріву на знакосинтезуючому індикаторі.

3.Викликаємо підпрограму відліку часу проявки на статичному індикаторі.

4.Викликаємо підпрограму зливу проявника на статичному індикаторі.

5.Викликаємо підпрограму заповнення фіксажу на статичному індикаторі.

6.Викликаємо підпрограму для відліку часу фіксажу на статичному індикаторі.

7.Викликаємо підпрограму зливу фіксажу на статичному індикаторі.

8. Викликаємо підпрограму промивки.

3.2.1. Алгоритм роботи підпрограми наповнення.

Блок-схема алгоритму підпрограми наповнення.

 

 
 


Світимо 1 сегмент на статичному індикаторі
1

 

 

2

 
 

 


 

Світимо 2 сегменти на статичному індикаторі  
3

 

 
 


Викликаємо підпрограму затримки
4

 

 
 


Світимо 3 сегменти на статичному індикаторі  
5

 

 
 

 


Викликаємо підпрограму затримки
6

 
 

 


Світимо 5 сегментів на статичному індикаторі  
Викликаємо підпрограму затримки

 

8

 

 

 

 

10

 

 
 


 
 
Світимо 6 сегментів на статичному індикаторі  

 


 

12

 

 
 


 
 

 

 


14

 

 
 

 


Світимо 7 сегментів на статичному індикаторі  
15

 

 
 


16

 

 
 

 


Опис блок-схеми роботи підпрограми zapovnennya.

1. Світимо 1 сегмент на статичному індикаторі

2.Викликаємо підпрограму затримки(1с).

3. Світимо 2 сегменти на статичному індикаторі

4.Викликаємо підпрограму затримки(1с).

5. Світимо 3 сегменти на статичному індикаторі

6.Викликаємо підпрограму затримки(1с).

7. Світимо 4 сегменти на статичному індикаторі

8.Викликаємо підпрограму затримки(1с).

9. Світимо 5 сегментів на статичному індикаторі

10.Викликаємо підпрограму затримки(1с).

11. Світимо 6 сегментів на статичному індикаторі

12.Викликаємо підпрограму затримки(1с).

13. Світимо 7 сегментів на статичному індикаторі

14.Викликаємо підпрограму затримки(1с).

15. Світимо 8 сегментів на статичному індикаторі

16.Викликаємо підпрограму затримки(1с).

3.2.2. Алгоритм роботи підпрограми зливу.

Блок-схема алгоритму підпрограми зливу.

 
 

 

 


1.Викликаємо підпрограму затримки
1

 
 

 


Гасимо 1 сегмент на статичному індикаторі
2

 

 
 


3.Викликаємо підпрограму затримки
3

 

 
 


Гасимо 2 сегменти на статичному індикаторі  
4


5.Викликаємо підпрограму затримки
5

 
 


Гасимо 3 сегменти на статичному індикаторі  

Гасимо 4 сегменти на статичному індикаторі  
7.Викликаємо підпрограму затримки

 

7

 

 

 

 

9

 

 
 


 
 

 

 


 
 

 


12

Гасимо 6 сегменти на статичному індикаторі  
 
 


13

 
 


14

 
 


15


Опис блок-схеми роботи підпрограми zliv.

1.Викликаємо підпрограму затримки(1с).

2. Гасимо 1 сегмент на статичному індикаторі

3.Викликаємо підпрограму затримки(1с).

4. Гасимо 2 сегменти на статичному індикаторі

5.Викликаємо підпрограму затримки(1с).

6. Гасимо 3 сегменти на статичному індикаторі

7.Викликаємо підпрограму затримки(1с).

8. Гасимо 4 сегменти на статичному індикаторі

9. Викликаємо підпрограму затримки(1с).

10. Гасимо 5 сегментів на статичному індикаторі

11. Викликаємо підпрограму затримки(1с).

12. Гасимо 6 сегментів на статичному індикаторі

13. Викликаємо підпрограму затримки(1с).

14. Гасимо 7 сегментів на статичному індикаторі

15. Викликаємо підпрограму затримки(1с).

 

3.2.3. Алгоритм роботи підпрограми нагрівання.

Блок-схема алгоритму підпрограми нагрівання

 
 

 

 


1.Виклик підпрограми затримки
1

 
 

 


Світіння 1 справа стовпчика знакосинтезуючого індикатора
2

 

 
 

 


 


 

 
 


5

 
 

 

 


Світіння 3 справа стовпчика знакосинтезуючого індикатора  
6

 

 
 


7

 

 
 


Світіння 4 справа стовпчика знакосинтезуючого індикатора  

       
   
 
 

 


 
 

 


 

11

 
 

 

 


12

 

 
 

 


Світіння 1 справа стовпчика знакосинтезуючого індикатора
13

 

 
 

 


 


 

 
 


16

 
 

 

 


Світіння 3 справа стовпчика знакосинтезуючого індикатора  
17

 

 
 


18

 

 
 


Світіння 4 справа стовпчика знакосинтезуючого індикатора  

 
 

 


 
 

 


 

 
 

 


22

 

 
 


Гасіння всіх діодів знакосинтезуючого індикатора  
23

 

 
 

 


 
 

 

 


Світіння всіх стовпчиків знакосинтезуючого індикатора  
25

 

 
 

 


Опис блок-схеми роботи підпрограми nahriv.

1. Викликаємо підпрограму затримки(10c).

2. Засвічуємо 1 стовпчик знакосинтезуючого індикатора.

3. Викликаємо підпрограму затримки(10c).

4. Засвічуємо 2 стовпчик знакосинтезуючого індикатора.

5. Викликаємо підпрограму затримки(10c).

6. Засвічуємо 3 стовпчик знакосинтезуючого індикатора.

7. Викликаємо підпрограму затримки(10c).

8. Засвічуємо 4 стовпчик знакосинтезуючого індикатора.

9. Викликаємо підпрограму затримки(10c).

10. Засвічуємо 5 стовпчик знакосинтезуючого індикатора.

11. Викликаємо підпрограму затримки(10c).

12. Гасіння всіх діодів знакосинтезуючого індикатора

13. Викликаємо підпрограму затримки(10c).

14. Засвічуємо 1 стовпчик знакосинтезуючого індикатора.

15. Викликаємо підпрограму затримки(10c).

16. Засвічуємо 2 стовпчик знакосинтезуючого індикатора.

17. Викликаємо підпрограму затримки(10c).

18. Засвічуємо 3 стовпчик знакосинтезуючого індикатора.

19. Викликаємо підпрограму затримки(10c).

20. Засвічуємо 4 стовпчик знакосинтезуючого індикатора.

21. Викликаємо підпрограму затримки(10c).

22. Засвічуємо 5 стовпчик знакосинтезуючого індикатора.

23. Викликаємо підпрограму затримки(10c).

24. Гасіння всіх діодів знакосинтезуючого індикатора

25.Світіння всіх стовпчиків знакосинтезуючого індикатора

 

 

3.1.6. Алгоритм підпрограми переведення 16-го числа в ДДК

Рис. 14. Блок-схема алгоритму підпрограми переведення 16-го числа в ДДК (perevod)

1. В регістр R2 заноситься 16-ве число.

2. Вміст R2 переноситься в А.

3. Від вмісту A віднімається 10d.

4. Якщо біт переносу c=1, то перехід на блок 6, якщо ні – перехід на блок

5. Інкремент регістра R1.

6. До вмісту А додається 10d.

7. Вміст А заноситься в R2.

8. Вміст R1 заноситься в А.

9. Тетради акумулятора обмінюються місцями.

10. До вмісту акумулятора додається вміст R2.

11. Вміст акумулятора переміщається в R2.

 

 

3.1.6. Алгоритм підпрограми відліку часу на ССІ

 

 

1. Занесення числа в R0

2. Перенесення R0 в R2

3. Виклик підпрограми переведення 16-го числа в ДДК

4. Адресація і вивід на молодші розряди HG1

5. підпрограма затримки

6. декремент R0

7. перенесення R0 в R2

8. переведення 16-го числа в ДДК

9. вивід на HG-1

10. підпрограма затримки

11. якшо R0 = 0 ->вихід з підпрограми; ні -> перехід на блок 6

3.1.7. Алгоритм підпрограми лічильника кількості промивок

 

Рис. 15. Блок-схема алгоритму підпрограми лічильника кількості промивок (counter)

 

1. Обнулення вмісту R0.

2. Виклик підпрограми наповнення.

3. Виклик підпрограми зливу.

4. Виклик підпрограми підготовки пари молодших розрядів статичого індикатора.

5. Інкремент R0.

6. Занесення вмісту R0 в A.

7. Занесення адреси молодших розрядів в DPTR і вивід вмісту A за цією адресою.

8. Якщо вміст R0=2, то вихід з підпрограми, якщо ні – перехід на блок 2.

3.1.8. Алгоритм підпрограми затримки

 

Рис. 16. Блок-схема алгоритму підпрограми затримки

 

На основі цього алгоритму побудовані підпрограми затримки DEL_1 та DEL_2, які відрізняються лише даними, що заносяться в регістри R4, R5, R6.

 

1. В регістр R4 заноситься 16-ве число.

2. В регістр R5 заноситься 16-ве число.

3. В регістр R6 заноситься 16-ве число.

4. Декремнт регістра R6.

5. Якщо вміст регістра R6=0, то перейти на блок 6, якщо ні – блок 4.

6. Декремнт регістра R5.

7. Якщо вміст регістра R5=0, то перейти на блок 8, якщо ні – блок 3.

8. Декремнт регістра R4.

9. Якщо вміст регістра R4=0, то перейти на вихід з підпрограми, якщо ні, то перехід на блок 2.

 

 

Рис. 17. Блок-схема алгоритму підпрограми затримки

1. Занесення в А числа CFh.

2. Декремент А.

3. Якщо вміст А=0, то вихід з підпрограми, якщо ні то декремнт А.

 

3.2 Розрахунок часових параметрів та затримок

 

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

 

Такою підпрограмою являється підпрограма DEL. Дана підпрограма за час роботи використовує 5 * 256 * 256 * 3 = 983 040 машинних тактів тривалістю по 1 мкс, тобто створює затримку приблизно рівну 1 секунді.

Також для забезпечення виводу процесу нагрівання розчину використовується аналогічна підпрограма DEL1. Дана підпрограма за час роботи використовує 15 * 256 * 256 *3 = 5 043 020 машинних тактів тривалістю по 1 мкс, тобто створює затримку приблизно рівну 5 секунд.

Також для забезпечення виводу символів на СДІ використовується аналогічна програма, DELAY_ACC, яка циклічно декрементує акумулятор, створюючи затримку у 256*3 = 768 машинних тактів, або приблизно 0.8 мс.

 

Код програми

ORG 0;початок основної програми

call zapovnennya; виклик відповідних підпрограм

call DEL;виклик підпрограми затримки

Call nahriv;

Call DEL;

Call proyavka;

Call DEL;

Call zliv;

Call DEL;

Call zapovnennya;

Call DEL;

Call ficks;

Call DEL;

Call zliv;

Call DEL;

Call promuvka;

Call DEL;

kinec: jmp kinec; зациклення програми

;==================================================

zapovnennya:;підпрограма наповнення

mov A, #000001111b;гасіння статичного індикатора

call con; виклик підпрограми світіння сегментів

mov R1,#000000111b; занесення в R1 коду світіння 3 сегментів

call con; виклик підпрограми світіння сегментів

mov R1,#000000011b; занесення в R1 коду світіння 2 сегментів

call con; виклик підпрограми світіння сегментів

mov R1,#000000001b; занесення в R1 коду світіння 1 сегменту

call con; виклик підпрограми світіння сегментів






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных