Главная > История > Мікропроцесори та мікро-ЕОМ в РЕЗ

Мікропроцесори та мікро-ЕОМ в РЕЗ


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, т. к. поділ цілочисельне.


Отже, в програмі виходить, що Rізм має відхилення 3% від номіналу. На самомусправі Rізм має відхилення

Число,отримане програмою, і число, розраховане безпосередньо, досить близькіодин до одного.

Системапомістить даний резистор в контейнер з допуском 5%.

ВИСНОВОК

Впроцесі роботи була розроблена система, здатна розсортувати партіюрезисторів по допусках 5, 10% і шлюб. Система також підраховує кількістьрезисторів кожного допуску.

Впристрої передбачена можливість зміни еталонного опору, записаногов пам'яті, при зміні партії резисторів.

Прикожному попаданні резистора з відхиленням більше 10% система подає світловийсигнал.

Список літератури

Мікропроцесори.У 3-х кн. Кн. 1. Архітектура та проектування мікро-ЕСВ. Організаціяобчислювальних процесів: Підручник для вузів. Під редакцією Л. Н. Преснухін. -М.: Вища школа, 1986р.

КалабековБ. А. Мікропроцесори та їх застосування в системах передачі та обробки сигналів:Навчальний посібник для вузів. - М.: Радіо і зв'язок, 1988р.

В.Н. Пильщиків. Програмування на мові асемблер IBM PC. - М.: Діалог МИФИ, 1994р.

Дляпідготовки даної роботи були використані матеріали з сайту referat.ru/