Команда
Контакти
Про нас

    Головна сторінка


Відбраковування резисторів на виробництві





Скачати 18.64 Kb.
Дата конвертації 10.02.2019
Розмір 18.64 Kb.
Тип курсова робота
    Навігація по даній сторінці:
  • ВСТУП

ЗМІСТ

Вступ

1. Словесний опис роботи системи

2. Попередній розподіл пам'яті

3. Алгоритм функціонування мікропроцесорної системи

4. Розподіл ресурсів

5. Програма роботи системи

6. Контрольний приклад

висновок

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

ВСТУП

У цій роботі описується відбраковування резисторів на виробництві. Резистори упорядковано відповідно до допускам і розкладаються в відповідні контейнери. Якщо опір не входить ні в один діапазон допуску, він поміщається в окремий контейнер і включає сигнал, що попався шлюб. Система побудована на процесорі К1816ВЕ48.

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

1. словесний опис РОБОТИ СИСТЕМИ

Принципова схема системи приведена на рис. 1.1

Працює система таким чином:

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

Далі цикл повторюється спочатку.

2. ПОПЕРЕДНЄ РОЗПОДІЛ ПАМ'ЯТІ

Попередній розподіл пам'яті в системі показано на рис. 2.1. Т. к. Програма, що керує системою, швидше за все, буде порівняно невеликий, то вона вся поміститися у внутрішньому ПЗУ процесора (пам'яті комп'ютера), тому на малюнку зображена тільки ця пам'ять; зовнішні ПЗУ не потрібні і тому розподіл для них не показано.

Система буде обробляти порівняно невеликий обсяг даних, тому показання на схемі розподілу пам'яті даних область "ОЗУ даних" швидше за все, залишиться незадіяною.

3FFh

YYYh

XXXh

000h

вільно

3Fh

20h

1Fh

18h

17h

08h

07h

00h

ОЗУ даних
Банк регістрів RB1
підпрограма
8-рівневий стек
Програма, що управляє роботою системи
Банк регістрів RB0

Мал. 2.1. Пам'ять команд Пам'ять даних

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 процесору повідомляється режим роботи:

0- сортування резисторів по допускам;

1 зміна еталонного опору.

Через висновок Р20 роботу видається команда "встановити резистор". Активний стан - 1.

Через висновок Р21 роботу видається команда покласти резистор в контейнер "ПОЗА ДОПУСКУ". Активний стан - 1.

Через висновок Р22 здійснюється запуск АЦП. Активний стан - 0.

Через висновки Р25, Р26, Р27, Р28 і Р29 роботу видається команда покласти резистор в контейнер з допуском відповідно. Активний стан - 1.

На висновок Т0 від робота надходить 1, якщо резистор встановлений.

На висновок Т1 від АЦП надходить 1, коли дані готові до зчитування.

Програма в пам'яті починається з адреси 000h.

5. ПРОГРАМА РОБОТИ СИСТЕМИ

Адреса код кількість циклів

мітка

мнемоніка коментар

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- число повторень циклу-100 10

; В аккумуляторе- різницю між виміряним і еталонним; опорами, взята по модулю.

; Обнулення регістру 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 06

3A

04 5C

F9

03 FB

E6 56

D5

1A

C5

23 44

3A

04 5C

D5

1B

C5

23 24

3A

23 04

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

; А = А-10 10

; Якщо А <10 10, то переходимо на Р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 05

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'10 + 1'4 + 2 + 2 + 1'4 + 2 + 1 + 2 + 1 + (1 + 2 + 1 + 2) '100 + 1 + 1 + 2 + (1'11 + 2 + 1 + 2) '8 + 1 + 1 + 1 + 2 + 2 + 2 + 1 + 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% система подає світловий сигнал.


Список використаних джерел

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

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

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