Главная > История > Мікропроцесори та мікро-ЕОМ в РЕЗ
Мікропроцесори та мікро-ЕОМ в РЕЗ25-01-2012, 10:54. Разместил: tester4 |
О. В. Байдакова Московська державна академія приладобудування іінформатики Москва, 2001 Текстзавдання. Розробити автоматизовану систему відбраковування резисторів навиробництві. Виготовлені резистори необхідно розсортувати по допусках іпомістити в окремі контейнери. Управління операціями по сортуваннюздійснюється роботом, який бере черговий резистор і поміщає його в затиск,він же після вимірювання опору виймає його і кладе у відповіднийконтейнер. Вимірювання опору проводитися на основі вимірювання напругина резисторі при проходженні через нього відомого струму, тобтоRізм. = Uізм./Iеталон. Управління роботом і вимірами здійснюється МПС. Їїфункції наступні: Видачакоманди роботові на установку резистора; Перевірка,чи встановлений резистор; Проведеннявимірювання опору резистора; Командароботові зняти резистор і помістити його в заданий контейнер. Необхіднопередбачити включення режиму "еталонний резистор" - тобто Вимірювання тазанесення в пам'ять номінального значення при зміні партії резисторів. Потрібновибрати значення "еталон" для даного номіналу резистора, щоб вихіднанапруга вимірника відповідало діапазону вхідних напруг АЦП.Необхідно в пам'яті підрахувати число резисторів, що потрапили в кожний контейнер.Передбачити запалювання світлодіода "поза допуску" при вимірі опорурезистора, яке не входить в самий широкий заданий допуск. Вихіднідані для проектування: Кількістьполів допуску: 2 Діапазонноміналів резисторів: 1 ... 100Ом Полядопуску: 5 і 10% Видмікропроцесорної системи: К1816ВЕ48 Введення Вданій курсовій роботі описується відбраковування резисторів на виробництві.Резистори сортуються по допусках і розкладаються у відповідніконтейнери. Якщо опір не входить ні в один діапазон допуску, вінпоміщається в окремий контейнер і включає сигнал, що попався шлюб. Системапобудована на мікропроцесорі К1816ВЕ48. Вимірюванняопору проводитися за допомогою вимірювання падіння напруги надосліджуваному резисторі при пропусканні через нього фіксованого струму. Працюєсистема таким чином: Вдеякий момент часу процесор подає роботу команду встановити резистор іпочинає чекати. Робот, коли встановить резистор в измеряющее пристрій, сигналізуєпро це процесору. Процесор виходить з режиму очікування і видає командупочати перетворення і знову починає чекати. АЦП, завершивши перетворенняпадіння напруги на вимірюваному резистори в цифровий код, подає сигналпроцесору. Процесор зчитує з АЦП цифровий код і приступає до порівняння йогоіз записаним в пам'ять еталонним опором. У результаті обчисленьпроцесор визначає до якої групи по відхиленню від номіналу відноситьсявимірюваний резистор і видає відповідну команду роботові-помістити резисторв один з п'яти контейнерів з відхиленнями Даліцикл повторюється спочатку. Попередній розподіл пам'яті Попереднєрозподіл пам'яті в системі показано на рис. 2.1. Т. к. програма, управляючасистемою швидше за все буде порівняно невеликою, то вона вся поміститися підвнутрішньому ПЗУ процесора (пам'яті комп'ютера), тому на малюнку зображенатільки ця пам'ять; зовнішні ПЗУ не потрібні і тому розподіл для них непоказано. Системабуде обробляти порівняно невеликий обсяг даних, тому показання насхемою розподілу пам'яті даних область "ОЗУ даних" швидше за все залишитьсянезадіяною. 3FFh YYYh XXXh 000h Вільно3Fh 20h 1Fh 18h 17h 08h 07h 00h ОЗУ даних Банк регістрів RB1 Підпрограма 8-рівневий стек Програма, що управляє роботою системи Банк регістрів RB0Пам'ятькоманд Пам'ять даних 3.АЛГОРИТМ функціонування мікропроцесорної системи. Укрупненаструктурна схема алгоритму програми, що управляє процесором, зображена нарис. 3.1. Привключенні системи спочатку вона примусово переходить в режим занесенняеталонного опору. Процесор зчитує з АЦП значення опору, записуєйого в пам'ять і обнуляє всі лічильники, в яких ведеться облік резисторів зпевним допуском. Даліслід установка та вимірювання опору чергового резистора. Лічене зАЦП значення опору піддається обробці процесором і обчислюєтьсявідсоток відхилення опору резистора від еталонного. В залежності відзначення цього відхилення процесором видається команда роботові на розміщеннярезистора в певному контейнері і збільшення на одиницю відповідноголічильника резисторів. Даліаналізується стан перемикача "ЕТАЛОН". Якщо він замкнутий, то зновупроводиться заміна в пам'яті еталонного опору і обнуління лічильників.Якщо цей перемикач розімкнений, то система починає обробку наступногорезистора.
4.РОЗПОДІЛ РЕСУРСІВ Врегістрі R0 банку 0 знаходиться поточне еталонне опір. Рештарегістри банку 0 використовуються у міру потреби для зберігання проміжнихрезультатів і тимчасового збереження вмісту акумулятора. Врегістрі R0 банку 1 знаходиться лічильник кількості резисторів з опоромпоза допуску. Врегістрі R2 банку 1 знаходиться лічильник кількості резисторів з відхиленням небільше 10% від еталону. Врегістрі R2 банку 1 знаходиться лічильник кількості резисторів з відхиленням небільше 10% від еталону. Врегістрі R2 банку 1 знаходиться лічильник кількості резисторів з відхиленням небільше 10% від еталону. Врегістрі R2 банку 1 знаходиться лічильник кількості резисторів з відхиленням небільше 10% від еталону. Врегістрі R2 банку 1 знаходиться лічильник кількості резисторів з відхиленням небільше 10% від еталону. Черезвисновок Р10 процесору повідомляється режим роботи: сортуваннярезисторів по допусках; змінаеталонного опору. Черезвисновок Р20 роботу видається команда "встановити резистор". Активний стан -1. Черезвисновок Р21 роботу видається команда покласти резистор в контейнер "ПОЗА ДОПУСКУ".Активний стан - 1. Черезвисновок Р22 здійснюється запуск АЦП. Активний стан - 0. Черезвисновки Р25, Р26, р27, Р28 і Р29 роботу видається команда покласти резистор вконтейнер з допуском відповідно. Активний стан - 1. Нависновок Т0 від робота надходить 1, якщо резистор встановлений. Нависновок Т1 від АЦП надходить 1, коли дані готові до зчитування. Програмав пам'яті починається з адреси 000h. ПРОГРАМАРОБОТИ СИСТЕМИ. Адреса Код Кількість циклів Мітка Мнемоніка Коментар000 002 003 004 008 00А 00С 00D 00F 010 011 12 013 015 017 018 019 01A 01B 01D 01E 020 021 023 024 026 027 028 02A 02B 02C 02D 02E 02F 030 031 032 033 034 035 037 038 03A 03B 03C 14 70 A8 D5 D8 00 BA 00 BB 00 C5 14 70 33 17 68 AB 53 80 C6 1B FB 07 33 AB BC 64 FB BA 00 6B E6 24 1A EC 20 A9 97 BB 08 F9 F7 A9 FA F7 AA F8 33 17 6A A7 F6 38 F8 EB 2A F9 F7 A9 2 1 1 2 2 2 1 2 1 1 1 1 2 2 1 1 1 1 2 1 2 1 2 1 2 1 Change: Call Meas MOV R0.A SEL RB1 MOV R0, 00h MOV R2, 00h MOV R3, 00h SEL RB0 Work: CALL Meas CPL A. INC A ADD A, R0 MOV R3, A ANL A, 80H. JZ Mul. MOV A, R3 DEC A CPL A MOV R3, A. Mul: MOV R4, 64h MOV A, R3 MOV R2, 00h M1: ADD A, R3 JNC M2 INC R2 M2: DJNZ R4, M1 MOV R1, A CLR C MOV R3, 08h M3: MOV A, R1 RLC A MOV R1, A MOV A, R2 RLC A MOV R2, A MOV A, R0 CPL A. INC A ADD A, R2 CPL C JC M4 ADD A, R0 M4: DJNZ R3, М3 MOV A, R1 RLC A MOV R1, A ; Виклик підпрограми вимірювання опору резистора; Запам'ятаємо в R0 еталонне опір. ; Підключимо банк регістрів RB1. ; Обнулення лічильника ; Обнулення лічильника ; Обнулення лічильника ; Підключимо банк регістрів RB0. ; Вимірювання опору резистора. ; Інвертування вмісту акумулятора ; А = А +1 ГћА вдодатковому коді. ; Віднімаємо з еталонного опору виміряний: А = R0-А. ; Рятуємо А регістрі R3 ; Перевіряємо знаковий біт ; Якщо А> 0, то переходимо на мітку Mul ; Відновимо вміст А. ; А = А-1 ; Інвертування А; А-у прямому коді. ; Збережемо вміст А ; В R4-число повторень циклу-10010 ; В акумуляторі-різниця між вимірюються і еталонним; Опорами, взята по модулю. ; Обнулення регістру R2 ; А = А + R3. ; Якщо А + R3 ВЈ FFh,то переходимо на М2. ; Враховуємо перенесення (А + R3> FFh). ; Зменшуємо лічильник циклу. Якщо R4> 0 - повторюємо цикл. ; Копіюємо акумулятор в регістр R1 ; Після множення в регістрі R1 буде молодший байт ; твори, в R2-старший, тобто R2R1 = ВЅ Nет-N ВЅ * 100. ; Розділимо вміст цієї пари регістрів на вміст ; регістра R0 (еталон). ; Обнуляємо прапор переносу. ; Лічильник циклу. ; ВА-молодший байт твори. ; Циклічне зрушення вліво через прапор переносу. ; R1 = А ; ВА-молодший байт твори. ; Циклічне зрушення вліво через прапор переносу ; R2 = А ; ВА-еталонне вопротівленіе (дільник). ; Інвертування вмісту акумулятора А = А +1 Гћ А в додатковомукоді ; А = R2-А ; Інвертування прапора переносу ; Якщо прапор З встановлений, переходимо на М4. ; А = А + R0 ; Зменшуємо лічильник циклу. Якщо R3> 0, то повторюємо цикл.; А = R1 ; циклічний зсув вліво через прапор переносу. ; В R1-результат ділення, тобто відхилення у відсоткахвиміряного опору від еталонного. ; перевірка на приналежність до групи по допуску. 03D 03F 041 042 043 044 046 047 049 04A 04C 04E 04F 050 051 053 054 056 057 058 059 05B 05C 05E 05F 060 062 03 F6 E6 49 D5 18 C5 23 червня 3A 04 5C F9 03 FB E6 56 D5 1A C5 23 44 3A 04 5C D5 1B C5 23 24 3A 23 квітня 3A 09 12 00 04 0D 2 2 1 1 1 2 2 2 1 2 2 1 1 1 2 2 2 1 1 1 2 2 2 2 2 2 2 P 10: P 5: Mode: ADD JNC SEL IBC SEL MOV OUTL JMP MOV ADD JNC STL INC SEL MOV OUTL JMP SEL INC SEL MOV OUTL MOV OUTL IN JB0 JMP A. F6h P10 RB1 ​​ R0 RB0 A, 06h P2, A Mode A, R1 A, FBh P5 RB1 ​​ R2 RB0 A, 44h P2, A Mode RB1 ​​ R3 RB0 A, 24h P2, A A, 04h P2, A A, P1 Change Work ; А = А-1010 ; Якщо А <1010, то переходимо на Р10 ; Підключаємо банк регістрів RB1 ; Збільшуємо лічильник резисторів "ПОЗА ДОПУСКУ" ; Підключаємо банк регістрів RB0 ; Встановлюємо 1-й і 2-й біти в одиницю ; Команда роботові-покласти резистор в контейнер "позадопуску " ; Пропускаємо інші відхилення ; A = R1 ; A = A-5 ; Якщо А <5, то переходимо на Р5 ; Підключаємо банк РЕГИСТОР RB1 ; Збільшуємо лічильник резисторів з відхиленням до 10% ; Підключаємо банк регістрів RB0 ; Встановлюємо в одиницю 2-й і 6-й біти ; Команда роботу - покласти резистор в контейнер "10%" ; Пропускаємо відхилення 5% ; Підключаємо банк регістрів RB1 ; Збільшуємо лічильник резисторів з відхиленням до 5% ; Підключаємо банк регістрів RB0 ; Встановлюємо в одиницю 2-й і 5-й біти ; Команда роботу - покласти резистор в контейнер "10%" ; Встановлюємо в одиницю тільки 2-й біт ; Знімаємо всі активні сигнали з порту Р2 ; Читаємо порт Р1 ; Нульовий біт встановлений в одиницю-команда зміни еталона. ; Перевіряємо наступний резистор. 070 072 073 075 077 079 07В 07С 07Е 07D 23 травня 3A 26 73 9A 00 8A 04 56 79 09 12 7B 08 83 2 2 2 2 2 2 2 2 2 2 Meas: W1: W2: W3: MOV OUTL JNT0 ANL ORL JT1 IN JB0 INS RET A, 05h P2, A W1 P2, 00h P2, 04h W2 A, P1 W3 A, Bus ; Встановлюємо в одиницю 0-й і 2-й біти ; Команда роботові-встановити резистор ; Чекаємо установки резистора ; На АЦП-сигнал "почати вимір" ; Прибираємо всі активні сигнали з порту Р2 ; Чекаємо закінчення виміру ; Чекаємо виключення режиму ; "еталонне опір" ; Прочитуємо з АЦП значення опору ; Повернення в основну програму. Доотриманої програмі важко застосувати термін "швидкодія", на це єкілька причин: Впрограмі є декілька затримок на невизначений час (ці затримкивизначаються роботом); Програмамає сильно розгалужену структуру, а вибір гілки в деяких випадках залежитьвід зовнішніх умов; Програмаявляє собою нескінченний цикл, тобто програма виконується з моментувключення системи і до вимикання. Длятого, щоб все-таки оцінити швидкодію, зробимо деякі припущення:припустимо, що зовнішні пристрої абсолютно не загальмовують систему, тобтоякщо система видає запит під зовнішні пристрої, результат приходить миттєво.Таким чином буде пораховано швидкодія власне програми. Длявизначеності приймемо, що система працює в режимі сортування, еталоннезначення вже занесено в пам'ять і в вимірювач встановлено резистор з 10%допуском. Такяк програма зациклена, порахуємо кількість машинних циклів за один прохідпрограми: 2 +2 +1 +1 +1 +2 +2 +2 +1 +1 +1 +2'7 = 812циклівДопроцесору підключений кварцовий резонатор на частоту 6 МГц, отжетактова частота процесора дорівнює 6/3 = 2 МГц; час одного такту дорівнює 0, 5 мкс.Один машинний цикл дорівнює п'яти тактів, тобто 2, 5 мкс. Часвиконання одного циклу програми одно 812'2,5 = 2030 мкс В»2 мс. 6.КОНТРОЛЬНИЙ ПРИКЛАД Напруга,подається на АЦП, одно U = Iет'R;Iет = 0, 025 А Вхіднідані: Rет = 51Ом; Rізм = 53 Ом; Uет = Iет'Rет= 0, 025 А'51Ом = 1, 28 В ЗАЦП в пам'ять запишеться число 128 = 80h, тобто (R0) = 80h U= Iет'Rет = 0, 025 А'53 Ом = 1, 33 В ЗАЦП в акумулятор запишеться число 133 = 85h. Знаходимомодель різниці еталонного і виміряного опорів: ВЅ Rет-Rізм ВЅ = ВЅ 128-133 ВЅ = ВЅ -5 ВЅ = 5
ісаме за цією формулою працює написана вище програма. Множиморізниця на 100: ВЅ Rет-Rізм ВЅ '100 = 500 Ділимоотримане число на Rет/800/102 = 3, т. к. поділ цілочисельне.
Число,отримане програмою, і число, розраховане безпосередньо, досить близькіодин до одного. Системапомістить даний резистор в контейнер з допуском 5%. ВИСНОВОК Впроцесі роботи була розроблена система, здатна розсортувати партіюрезисторів по допусках 5, 10% і шлюб. Система також підраховує кількістьрезисторів кожного допуску. Впристрої передбачена можливість зміни еталонного опору, записаногов пам'яті, при зміні партії резисторів. Прикожному попаданні резистора з відхиленням більше 10% система подає світловийсигнал. Список літератури Мікропроцесори.У 3-х кн. Кн. 1. Архітектура та проектування мікро-ЕСВ. Організаціяобчислювальних процесів: Підручник для вузів. Під редакцією Л. Н. Преснухін. -М.: Вища школа, 1986р. КалабековБ. А. Мікропроцесори та їх застосування в системах передачі та обробки сигналів:Навчальний посібник для вузів. - М.: Радіо і зв'язок, 1988р. В.Н. Пильщиків. Програмування на мові асемблер IBM PC. - М.: Діалог МИФИ, 1994р. Дляпідготовки даної роботи були використані матеріали з сайту referat.ru/ |