Автор работы: Пользователь скрыл имя, 14 Декабря 2010 в 08:11, курсовая работа
Цель работы: разработать структурную и принципиальную схемы микропроцессорной системы.
Параметрами контроля являются: уровень и температура компонентов эпоксидного покрытия в емкости для хранения дневного запаса, температура смесителя компонентов эпоксидки для внутреннего покрытия и температура сушильной печи. Управление установкой заключается в поддержании необходимой температуры в смесители компонентов.
ВВЕДЕНИЕ……………………………………………………………………………... 5
1 ЛИНИЯ АНТИКОРРОЗИОННОГО ЗАЩИТНОГО ПОКРЫТИЯ
ТРУБ КАК ОБЪЕКТ АВТОМАТИЗАЦИИ………………………………………… 7
1.1 Описание технологического процесса антикоррозионного
защитного покрытия труб………………………………………………………………. 7
1.2 Автоматизация установки нанесения внутреннего покрытия…………………… 13
1.3 Измерительные приборы…………………………………………………………… 13
1.3.1 Преобразователь измерительный уровня буйковый САПФИР-22 ДУ………... 14
1.3.2 Преобразователь температуры ПТ-С…………………………………………….. 15
2 МИКРОПРОЦЕССОРНАЯ СИСТЕМА КОНТРОЛЯ ТЕМПЕРАТУРЫ УСТАНОВКИ НАНЕСЕНИЯ ВНУТРЕННЕГО ПОКРЫТИЯ …………………. 16
2.1 Проектирование центрального процессора……………………………………….. 16
2.2 Выбор памяти……………………………………………………………………….. 18
2.3 Блок дешифратора адресов памяти и портов ввода/вывода……………………… 18
2.4 Выбор микросхем устройств ввода/вывода и системного таймера-счетчика…... 18
2.5 Организация дешифрации адреса для УВВ и таймера-счетчика………………… 19
2.6 Организация опроса датчиков……………………………………………………… 19
2.7 Организация сигнализации и управления…………………………………………. 20
2.8 Организация опроса клавиатуры и индикации……………………………………. 20
2.9 Расчет потребляемой мощности…………………………………………………. 21
3 КРАТКОЕ ОПИСАНИЕ РАБОТЫ КОНТРОЛЛЕРА…………………………... 22
3.1 Задание предельных значений……………………………………………………... 22
3.2 Принцип управления и сигнализации……………………………………………... 22
ЗАКЛЮЧЕНИЕ ………………………………………………………………………... 23
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ………………………………. 24
ПРИЛОЖЕНИЕ 1. Структурная схема микропроцессорной системы…………. 25
ПРИЛОЖЕНИЕ 2. Алгоритм функционирования системы…………………….. 26
ПРИЛОЖЕНИЕ 3. Распределение адресов ОЗУ…………………………………... 28
ПРИЛОЖЕНИЕ 4. Распределение адресов ПЗУ…………………………………... 29
ПРИЛОЖЕНИЕ 5. Программа………………………………………………………. 30
ПРИЛОЖЕНИЕ 6. Спецификация элементов……………………………… …….. 39
ПРИЛОЖЕНИЕ 7. Схема электрическая функциональная…………...Формат А1
3. Ильин В.А. «Телеуправление и телеизмерение» – М.: Энергоиздат 1982. – 558с., ил.
4. Интегральные микросхемы : Справочник. / Под ред Тарабрина Б.В. - М.: Радио и связь 1983.
5. Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учебное пособие для высших учебных заведений. - М.: Радио и связь, 1988.
6. Коломбет Е.А. Микропроцессорные средства обработки аналоговых сигналов. - М.: Радио и связь, 1991.
7. Кузяков О.Н., Силифонкина И.А., Колесов В.И. Методические указания по оформлению студенческих работ специальности 2101 - “Автоматика и управление в технических системах ”. - Тюменский Индустриальный институт, 1992.
8. Колесов В.И. Лекции по передачам данных в информационных управляющих системах. – Тюмень, 2001
9. Тарабарин Б.В. «Интегральные микросхемы. Справочник» - М.: Радио и связь, 1983. – 528 с.,ил.
10. Уайдер С. «Справочник по технологиям и средствам связи» - М: Мир, 2000.-429с., ил.
11. Четвериков В.Н. «Подготовка и телеобработка данных в АСУ» – М.: Высшая школа 1981. – 319с., ил.
12. Шило
В.В. Популярные цифровые микросхемы: Справочник.-2
изд., исправленное.- М.: Радио и связь, 1989.-352с.
Структурная
схема микропроцессорной
системы.
ПРИЛОЖЕНИЕ
2
Алгоритм
функционирования системы.
ПРИЛОЖЕНИЕ
3
Распределение
адресов ОЗУ.
Адрес | Содержание |
F400 | Младший адрес стека |
F4FA-F4FC | Преобразованное значение показаний датчика. |
F4FF | Временное хранение показаний датчика. |
F500 | Номер опрашиваемого датчика (00h-03h) |
F6A0-F6E0 | Хранение текущих и предельных значений для каждого датчика |
F701 | Счетчик сканирования |
F702 | Предварительное сохранение цифры после ввода с клавиатуры |
F703 | (00h-02h) Определяет
режим изменения информации:
00 - индикация текущего значения 01 - ввод «минимума» 02 - ввод «максимума» |
F705 | Индикатор сброса перед записью [00h] - сброшено, [01h] - нет. |
F706 | Запоминание последнего выбранного датчика для проверки повторного выбора. |
Младшие байты адресов подпрограмм | |
F70E | «1» |
F71E | «2» |
F72E | «3» |
F73E | «4» |
F70D | «5» |
F71D | «6» |
F72D | «7» |
F73D | «8» |
F70B | «9» |
F71B | «0» |
F72B | «С» |
F73B | «Ent» |
F707 | «A» |
F717 | «B» |
F727 | «C» |
F737 | «D» |
F7FE-F7FC | (00h-09h) Определяет текущее индицируемое значение. |
F7FF | (0Ah-0Dh) Определяет датчик, показания с которого индицируются. |
ПРИЛОЖЕНИЕ
4
Распределение
адресов ПЗУ.
Адрес | Содержание |
0028 | JMP M1 Переход
к подпрограмме обработки |
0600-0629 | Подпрограмма клавиши «Ent» |
0630 | Подпрограмма клавиши «A» |
0640 | Подпрограмма клавиши «B» |
0650 | Подпрограмма клавиши «C» |
0660 | Подпрограмма клавиши «D» |
Коды символов: | |
06F0 | «0»=11000000=C0h |
06F1 | «1»= 11111001=F9h |
06F2 | «2»=10100100=A4h |
06F3 | «3»=10110000=B0h |
06F4 | «4»=10011001=99h |
06F5 | «5»=10010010=92h |
06F6 | «6»=10000010=82h |
06F7 | «7»=11111000=F8h |
06F8 | «8»=10000000=80h |
06F9 | «9»=10010000=90h |
06FA | «A»=10001000=88h |
06FB | «B»=10000011=83h |
06FC | «C»=11000110=C6h |
06FD | «D»=10100001=A1h |
06FE-070D | Хранение младших
байтов адресов подпрограмм клавиш,
которые при инициализации |
Подпрограммы клавиш хранятся по следующим адресам: | |
070E | «1» |
0713 | «2» |
0718 | «3» |
071D | «4» |
0722 | «5» |
0727 | «6» |
072C | «7» |
0731 | «8» |
0736 | «9» |
073B | «0» |
0740-07A9 | Подпрограмма ввода цифровых значений. |
07B0 | Переход на подпрограмму клавиши «A» |
07B3 | Переход на подпрограмму клавиши «B» |
07B6 | Переход на подпрограмму клавиши «C» |
07B9 | Переход на подпрограмму клавиши «D» |
07BC | Переход на подпрограмму клавиши «Ent» |
07D0 | Начало подпрограммы клавиши «C» |
Остальные | Программы: инициализации, основная, вспомогательные подпрограммы. |
ПРИЛОЖЕНИЕ 5
Программа.
Метка | Команда | Комментарий |
MVI A, 90h | Настройка ППИ (датчики, управление). | |
OUT F3h | ||
MVI A, FFh | Выключаем всю сигнализацию и управление. | |
OUT F2h | ||
MVI A, 82h | Настройка ППИ (индикация, клавиатура). | |
OUT FBh | ||
LXI SP, F400h | Инициализация стека. | |
LDA 06FEh | Перенос адресов подпрограмм из ПЗУ в ОЗУ. | |
STA F70Eh | ||
LDA 06FFh | ||
STA F71Eh | ||
LDA 0700h | ||
STA F72Eh | ||
LDA 0701h | ||
STA F73Eh | ||
LDA 0702h | ||
STA F70Dh | ||
LDA 0703h | ||
STA F71Dh | ||
LDA 0704h | ||
STA F72Dh | ||
LDA 0705h | ||
STA F73Dh | ||
LDA 0706h | ||
STA F70Bh | ||
LDA 0707h | ||
STA F71Bh | ||
LDA 0708h | ||
STA F72Bh | ||
LDA 0709h | ||
STA F73Bh | ||
LDA 070Ah | ||
STA F707h | ||
LDA 070Bh | ||
STA F717h | ||
LDA 070Ch | ||
STA F727h | ||
LDA 070Bh | ||
STA F737h | ||
MVI A, 30h | Настройка таймера. | |
OUT 03h | ||
MVI A, 30h | ||
OUT 00h | ||
MVI A, 75h | ||
OUT 00h | ||
JMP OPR2 | Переход к основной программе. | |
M1 | PUSH PSW | Подпрограмма обработки прерывания. |
PUSH B | ||
PUSH D | ||
PUSH H | ||
LDA F701h | Начало ввода с клавиатуры | |
RLC | ||
RLC | ||
RLC | ||
RLC | ||
OUT FAh | Сканирование | |
MOV E,A | ||
MVI D, F7h | ||
IN F9h | Ввод с клавиатуры | |
XRI F0h | Обнуление старших битов | |
ADD E | ||
MOV E, A | ||
LDAX D | ||
MVI H, 07h | ||
MOV L, A | ||
PCHL | Вызов подпрограммы конкретной клавиши | |
M2 | LDA F701h | Начало индикации |
MVI D,F7h | ||
MVI E, FCh | ||
ADD E | ||
MOV E, A | ||
LDAX D | Чтение символа для индикации | |
MVI D, 06h | ||
MVI E, F0h | ||
ADD E | ||
LDAX D | Чтение кода символа из ПЗУ | |
OUT F8 | Вывод на индикаторы | |
LDA F701h | Изменяем значение счетчика сканирования | |
INR A | ||
STA F701h | ||
XRI 04h | ||
JNZ M4 | ||
STA F701h | Изменили | |
M4 | MVI A, 30h | Настройка таймера. |
OUT 03h | ||
MVI A, 30h | ||
OUT 00h | ||
MVI A, 75h | ||
OUT 00h | ||
POP H | ||
POP D | ||
POP B | ||
POP PSW | ||
RET | Выход из подпрограммы обработки прерывания | |
Подпрограммы клавиш | ||
MVI A, 00h | «0» | |
JMP M3 | ||
MVI A, 01h | «1» | |
JMP M3 | ||
MVI A, 02h | «2» | |
JMP M3 | ||
MVI A, 03h | «3» | |
JMP M3 | ||
MVI A, 04h | «4» | |
JMP M3 | ||
MVI A, 05h | «5» | |
JMP M3 | ||
MVI A, 06h | «6» | |
JMP M3 | ||
MVI A, 07h | «7» | |
JMP M3 | ||
MVI A, 08h | «8» | |
JMP M3 | ||
MVI A, 09h | «9» | |
JMP M3 | ||
M3 | STA F702h | Сохранение данных из аккумулятора |
LDA F703h | Проверка режима ввода | |
XRI 00h | ||
JZ M2 | Проверка окончена | |
LDA F705h | Проверка: сброшена ли ячейка ввода. | |
XRI 00h | ||
JNZ M2 | Проверили. | |
LDA F7FDh | ||
STA F7FEh | Переписали со второй позиции в третью | |
LDA F7FCh | ||
STA F7FDh | Переписали с первой позиции во вторую | |
LDA F702h | ||
STA F7FCh | Записали в первую позицию новое число | |
JMP M2 | Индикация | |
«С» | ||
LDA F703h | Проверка режима ввода | |
XRI 00h | ||
JZ M2 | Проверили | |
MVI A,00h | Обнуляем: аккумулятор, | |
STA F7FCh | первую позицию, | |
STA F7FDh | вторую, | |
STA F7FEh | третью, | |
STA F705h | индикатор сброса. | |
JMP M2 | Индикация | |
«Ent» | ||
JMP ENT | ||
ENT | LDA F703h | Проверка режима ввода |
XRI 00h | ||
JZ M2 | Проверили | |
LDA F703h | Идентификация адреса ввода. | |
RLC | ||
RLC | ||
MOV E, A | ||
LDA F7FFh | ||
RLC | ||
RLC | ||
RLC | ||
RLC | ||
ADD E | ||
MOV E, A | ||
MVI D, F6h | Идентификация завершена. | |
LDA F7FCh | Пересылка данных с индикаторов в память. | |
STAX D | ||
INR E | ||
LDA F7FDh | ||
STAX D | ||
INR E | ||
LDA F7FEh | ||
STAX D | Пересылка окончена. | |
MVI A, 01h | ||
STA F705h | Установка индикатора сброса в [1] | |
JMP M2 | Индикация. | |
«A» | ||
JMP A | ||
A | MVI A, 0Ah | Фиксируем датчик |
STA F7FFh | в памяти. | |
CALL REPEAT | Проверка повторного выбора. | |
JMP M2 | Индикация. | |
«B» | ||
JMP B | ||
B | MVI A, 0Bh | Фиксируем датчик |
STA F7FFh | в памяти. | |
CALL REPEAT | Проверка повторного выбора. | |
JMP M2 | Индикация. | |
«C» | ||
JMP C | ||
C | MVI A, 0Ch | Фиксируем датчик |
STA F7FFh | в памяти. | |
CALL REPEAT | Проверка повторного выбора. | |
JMP M2 | Индикация. | |
«D» | ||
JMP D | ||
D | MVI A, 0Dh | Фиксируем датчик |
STA F7FFh | в памяти. | |
CALL REPEAT | Проверка повторного выбора. | |
JMP M2 | Индикация. | |
REPEAT | LDA F706h | Проверяем повторный выбор датчика. |
MOV C, A | ||
LDA F701h | ||
XRA C | ||
JZ M5 | Проверили. | |
LDA F701h | ||
STA F706h | ||
MVI A, 00h | ||
STA F703h | Обнуляем индикатор изменения информации | |
M5 | LDA F703h | |
INR A | Увеличиваем на единицу | |
MOV C, A | индикатор изменения информации | |
XRI 03h | и проверяем | |
JNZ M6 | на переполнение. | |
MVI A, 00h | ||
STA F703h | ||
JMP IDEN | ||
M6 | MOV A, C | |
STA F703h | ||
IDEN | RLC | Идентификация адреса вывода информации. |
RLC | ||
MOV E, A | ||
LDA F7FFh | ||
RLC | ||
RLC | ||
RLC | ||
RLC | ||
ADD E | ||
MOV E, A | ||
MVI D, F6h | Идентификация завершена. | |
LDAX D | Пересылка данных из памяти на индикаторы. | |
STA F7FCh | ||
INR E | ||
LDAX D | ||
STA F7FDh | ||
INR E | ||
LDAX D | ||
STA F7FEh | Пересылка окончена. | |
RET | Конец подпрограммы. | |
Основная программа. | ||
OPR2 | MVI A, F0h | Опрос датчиков. |
STA F500h | ||
OPR1 | LDA F500h | Читаем порядковый номер датчика |
RLC | Сдвигаем для передачи в порт | |
RLC | ||
RLC | ||
RLC | ||
OUT F1h | Отправляем в порт | |
XRI 01h | ||
OUT F1h | ||
NOP | ||
NOP | ||
NOP | ||
NOP | ||
XRI 02h | ||
OUT F1h | ||
IN F0h | Ввод информации с датчика. | |
SUI 33h | ||
JNC WREM | ||
При обрыве датчика выводим на индикаторы [- - -]. | ||
LDA F500h | Идентификация адреса ввода. | |
ADI 0Ah | ||
SUI F0h | ||
RLC | ||
RLC | ||
RLC | ||
RLC | ||
MOV E, A | ||
MVI D, F6h | Идентификация завершена. | |
MVI A, BFh | Код символа [-]. | |
STAX D | ||
INX D | ||
STAX D | ||
INX D | ||
STAX D | ||
JMP WR1 | Переход к следующему датчику. | |
WREM | STA F4FFh | Временно сохраняем результат в ячейке памяти. |
CALL SRAVN | ||
WR1 | LDA F500h | |
INR A | Увеличиваем порядковый номер опрашиваемого датчика. | |
STA F500h | ||
XRI F4h | Проверяем счетчик на переполнение. | |
JNZ OPR1 | Продолжаем опрос. | |
JMP OPR2 | Возобновляем опрос. | |
SRAVN | MVI D, 00h | Преобразование, сохранение и сравнение данных. |
LDA F4FFh | ||
MOV E, A | ||
LDA F500h | ||
INR A | ||
MOV C, A | ||
MVI B, 00h | ||
XRA A | Программа перевода числа из 16-тиричной в 10-тичную систему. | |
MVI D, F4h | ||
MVI E, FCh | ||
STAX D | ||
DCX D | ||
STAX D | ||
DCX D | ||
STAX D | ||
BEG | DCX B | |
LDAX D | ||
INR A | ||
STAX D | ||
XRI 0Ah | ||
JNZ B | ||
MVI A, 00h | ||
STAX D | ||
INX D | ||
LDAX D | ||
INR A | ||
STAX D | ||
XRI 0Ah | ||
JNZ B1 | ||
MVI A, 00h | ||
STAX D | ||
INX D | ||
LDAX D | ||
INR A | ||
STAX D | ||
XRI 0Ah | ||
JNZ B2 | ||
MVI A, 86h | Символ [E] выводится на индикаторы, если число больше 999. | |
STAX D | ||
DCX D | ||
STAX D | ||
DCX D | ||
STAX D | ||
JMP ENDE | ||
B2 | DCX D | |
B1 | DCX D | |
B | MOV A, B | |
XRI 00h | ||
JNZ BEG | ||
MOV A, C | ||
XRI 00h | ||
JNZ BEG | ||
Запись в соответствующую ячейку памяти | ||
ENDE | LDA F500h | Идентификация адреса ввода. |
ADI 0Ah | ||
SUI F0h | ||
RLC | ||
RLC | ||
RLC | ||
RLC | ||
MOV E, A | ||
MVI D, F6h | Идентификация завершена. | |
LDA F4FAh | ||
STAX D | ||
INX D | ||
LDA F4FBh | ||
STAX D | ||
INX D | ||
LDA F4FCh | ||
STAX D | Запись окончена. | |
Сравнение. | ||
SR | LDAX D | |
MOV H, A | ||
MVI B, F6h | ||
MVI A, 04h | ||
ADD E | ||
MOV C, A | ||
LDAX B | Загрузка “минимума”. | |
SUB H | Вычитаем текущее значение из “минимума”. | |
JNC ALARM1 | Если нет переноса, значит текущее значение меньше “минимума”. | |
MVI A, 08h | ||
ADD E | ||
MOV C, A | ||
LDAX B | Загрузка “максимума”. | |
SUB H | Вычитаем текущее значение из “максимума”. | |
JC ALARM2 | Если есть перенос, то текущее значение больше “максимума”. | |
MOV A, E | ||
ANI 0Fh | ||
JNZ PER | Если проверили все разряды и все в порядке, то отменяем сигнализацию. | |
LDA F500h | Поиск сигнала для отмены и формирование управляющих слов. | |
ANI 0Fh | ||
JNZ S1 | ||
MVI A, 01h | ||
JMP SIG | ||
S1 | MOV B, A | |
XRI 01h | ||
JNZ S2 | ||
MVI A, 03h | ||
JMP SIG | ||
S2 | MOV A, B | |
XRI 02h | ||
JNZ S3 | ||
MVI A, 05h | ||
JMP SIG | ||
S3 | MVI A, 07 | |
PER | DCX D | Переходим к меньшему разряду. |
JMP SR | ||
ALARM1 | LDA F500h | |
ANI 0Fh | ||
JZ A11 | ||
MOV B, A | ||
XRI 01h | ||
JZ A12 | ||
MOV A, B | ||
XRI 02h | ||
JZ A13 | ||
MOV A, B | ||
XRI 03h | ||
JZ A14 | ||
ALARM2 | LDA F500h | |
ANI 0Fh | ||
JZ A11 | ||
MOV B, A | ||
XRI 01h | ||
JZ A12 | ||
MOV A, B | ||
XRI 02h | ||
JZ A23 | ||
MOV A, B | ||
XRI 03h | ||
JZ A14 | ||
A11 | MVI A, 00h | |
JMP SIG | ||
A12 | MVI A, 02h | |
JMP SIG | ||
A13 | MVI A, 0Bh | |
OUT F3h | ||
MVI A, 08h | ||
OUT F3h | ||
MVI A, 04h | ||
JMP SIG | ||
A23 | MVI A, 09h | |
OUT F3h | ||
MVI A, 0Ah | ||
OUT F3h | ||
MVI A, 04h | ||
JMP SIG | ||
A14 | MVI A, 06h | |
JMP SIG | ||
SIG | OUT F3h | Посылаем команду управления (сигнализации). |
JMP ENDSR | ||
ENDSR | RET | Выход из подпрограммы преобразования, сохранения и сравнения. |
ПРИЛОЖЕНИЕ 6
Спецификация элементов.
Цифровые микросхемы
Позиционное обозначение | Марка | Количество |
DD1 | К1821ВМ85 | 1 |
DD2 | КР580ВИ53 | 1 |
DD3,DD4 | КР580ВА86 | 2 |
DD5 | К573РУ14 | 1 |
DD6 | КР537РУ8 | 1 |
DD7, DD8 | КР580ВВ55 | 2 |
DD9 | КР580ВИ53 | 1 |
DD10, | К590КН1 | 1 |
DD11,12 | К155ИД4 | 2 |
Цифроаналоговые элементы
Позиционное обозначение | Марка | Количество |
DA1 | К572ПВ3 | 1 |
DA2-DA9 | АОТ127 | 8 |
Светодиодные индикаторы
Позиционное обозначение | Марка | Количество |
HG1-HG4 | АЛ305Г | 4 |
Транзисторы
Позиционное обозначение | Марка | Количество |
VT1-VT4 | КТ630 | 4 |
Диоды
Позиционное обозначение | Марка | Количество |
VD1-VD5 | КД530 | 5 |
Резисторы
Позиционное обозначение | Марка | Количество |
R1-R6 | МЛТ 0.125 | 6 |
Информация о работе Установка нанесения внутреннего антикоррозийного покрытия труб