Загрузить архив: | |
Файл: ref-30854.zip (19kb [zip], Скачиваний: 109) скачать |
КУРСОВАЯ РАБОТА
ГруппаПР–7
Специальность20.08
СтудентО. В. Байдакова
2001г.
МОСКОВСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ
ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
к курсовой работе на тему:
Студент ___________________ О. В. Байдакова
ГруппаПР–7
Специальность 20.08 “Конструирование и технология радиоэлектронных средств”
Работа защищена_________________Оценка__________________
Руководитель работы_____________А. К. Малиновский
Москва, 2001г.
МОСКОВСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ
ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
СтуденткаО. В. Байдаковашифр 98159группа ПР–7
Вечернее отделение.
Специальность 20.08 “Конструирование и технология радиоэлектронных средств”
1.Тема: “Микропроцессоры и микро-ЭВМ в РЭС”
2.Текст задания. Разработать автоматизированную систему отбраковки резисторов на производстве. Изготовленные резисторы необходимо рассортировать по допускам и поместить в отдельные контейнеры. Управление операциями по сортировке осуществляется роботом, который берет очередной резистор и помещает его в зажим, он же после измерения сопротивления вынимает его и кладет в соответствующий контейнер. Измерение сопротивления проводиться на основе измерения напряжения на резисторе при прохождении через него известного тока, т. е. Rизм.=Uизм./Iэталон. Управление роботом и измерениями осуществляется МПС. Ее функции следующие:
-Выдача команды роботу на установку резистора;
-Проверка, установлен ли резистор;
-Проведение измерения сопротивления резистора;
-Команда роботу снять резистор и поместить его в заданный контейнер.
Необходимо предусмотреть включение режима “эталонный резистор”- т. е. Измерение и занесение в память номинального значения при смене партии резисторов. Нужно выбрать значение “эталон” для данного номинала резистора, чтобы выходное напряжение измерителя соответствовало диапазону входных напряжений АЦП. Необходимо в памяти подсчитать число резисторов, попавших в каждый контейнер. Предусмотреть зажигание светодиода “вне допуска” при измеренном сопротивлении резистора, которое не входит в самый широкий заданный допуск.
3.Исходные данные для проектирования:
Количество полей допуска:2
Диапазон номиналов резисторов:1…100Ом
Поля допуска: 5 и 10 %
Вид микропроцессорной системы:К1816ВЕ48
4.Содержание пояснительной записки:
Введение.
4.1. Словесное описание работы системы.
4.2. Предварительное распределение памяти.
4.3. Алгоритм функционирования микропроцессорной системы.
4.4. Распределение ресурсов.
4.5. Программа работы системы.
4.6. Контрольный пример.
Заключение.
Руководитель работы___________________________ А. К. Малиновский
Содержание пояснительной записки:
Введение.5 стр.
1. Словесное описание работы системы.5 стр.
2. Предварительное распределение памяти.6 стр.
3. Алгоритм функционирования микропроцессорной системы.6 стр.
4. Распределение ресурсов.8 стр.
5. Программа работы системы.8 стр.
6. Контрольный пример.10 стр.
Заключение.11 стр.
Список использованной литературы12 стр.
В данной курсовой работе описывается отбраковка резисторов на производстве. Резисторы сортируются по допускам и раскладываются в соответствующие контейнеры. Если сопротивление не входит ни в один диапазон допуска, он помещается в отдельный контейнер и включает сигнал, что попался брак. Система построена намикропроцессореК1816ВЕ48.
Измерение сопротивления производиться посредством измерения падения напряжения на исследуемом резисторе при пропускании через него фиксированного тока.
1.СЛОВЕСНОЕ ОПИСАНИЕ РАБОТЫ СИСТЕМЫ.
Принципиальная схема системы приведена на рис. 1.1
Работает система следующим образом:
В некоторый момент времени процессор подает роботу команду установить резистор и начинает ждать. Робот, когда установит резистор в измеряющее устройство, сигнализирует об этом процессору. Процессор выходит из режима ожидания и выдает команду начать преобразование и снова начинает ждать. АЦП, завершив преобразования падения напряжения на измеряемом резисторе в цифровой код, подает сигнал процессору. Процессор считывает с АЦП цифровой код и приступает к сравнению его с записанным в память эталонным сопротивлением. В результате вычислений процессор определяет к какой группе по отклонению от номинала относится измеряемый резистор и выдает соответствующую команду роботу- поместить резистор в один из пяти контейнеров с отклонениями
Далее цикл повторяется сначала.
Изм.
Лист
№ докум.
Подп.
Дата
Студентка
Байдакова
Автоматизированная система отбраковки резисторов на производстве
Лит.
Лист
Листов
Руковод.
Малиновский
У
5
12
Группа ПР–7
Вечернее отделение
Зав. Каф.
2.Предварительное распределение памяти
Предварительное распределение памяти в системе показано на рис. 2.1. Т. к. программа, управляющая системой скорее всего будет сравнительно небольшой, то она вся поместиться во внутреннем ПЗУ процессора (памяти компьютера), поэтому на рисунке изображена только эта память; внешние ПЗУ не нужны и поэтому распределение для них не показано.
Система будет обрабатывать сравнительно небольшой объем данных, поэтому показания на схеме распределения памяти данных область “ОЗУ данных” скорее всего останется незадействованной.
YYYh
XXXh
000h
3Fh
20h
1Fh
18h
17h
08h
07h
00h
ОЗУ данных
Подпрограмма
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:CallMeas
MOVR0.A
SELRB1
MOVR0, 00h
MOVR2, 00h
MOVR3, 00h
SELRB0
Work:CALL Meas
CPLA.
INCA
ADDA,R0
MOVR3,A
ANLA,80H.
JZMul.
MOVA,R3
DECA
CPLA
MOVR3,A.
Mul:MOVR4,64h
MOVA,R3
MOVR2, 00h
M1:ADDA, R3
JNCM2
INCR2
M2:DJNZR4, M1
MOVR1, A
CLRC
MOVR3,08h
M3:MOVA, R1
RLCA
MOVR1, A
MOVA, R2
RLCA
MOVR2, A
MOVA, R0
CPLA.
INCA
ADDA, R2
CPLC
JCM4
ADDA, R0
M4:DJNZR3,М3
MOVA, R1
RLCA
MOVR1, 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 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
;А=А-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 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г.