Расходомер на основе электромагнитного датчика расхода

Автор: Пользователь скрыл имя, 02 Марта 2013 в 19:22, курсовая работа

Краткое описание

В последние годы в микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для "интеллектуализации" оборудования различного назначения. ОЭВМ представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя все составные части микроЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой. Использование микроконтроллеров в системах различного назначения обеспечивает достижение исключительно высоких показателей эффективности при низкой стоимости. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно однокристальные ЭВМ.

Оглавление

введение
обзор методов решения поставленной задачи
разработка функциональной схемы прибора
разработка принципиальной схемы устройства
разработка ПО
заключение
литература

Файлы: 1 файл

Ткачева.doc

— 751.50 Кб (Скачать)

При сопряжении МК со стандартным последовательным интерфейсом необходимо решать следующие проблемы [1]:

  • поддержание стандартной скорости приемо-передачи;
  • поддержание стандартных форматов посылки;
  • поддержание стандартных протоколов обмена

На рис. 3.14 приведена схема сопряжения МК51 с интерфейсом RS-232c. Согласование уровней выполняется с помощью микросхемы DD1 КР559ИП20 (прием) и микросхемы DD2 КР559ИП19 (передача), специально разработанных для этой цели. При этом потребуются дополнительные источники электропитания напряжением +12 и -12 В. В схеме используется стандартный разъем DB9S (розетка). Сигналы RxD - принимаемые данные (от компьютера), TxD - передаваемые данные (в компьютер).

Рисунок 3.15- Схема сопряжения МК с интерфейсом RS-232c

  1. Разработка ПО

Основная программа

 

ORG 000H

; начальный адрес

 

JMP BEGIN

 
 

ORG 100H

 

BEGIN:

CLR P1.0

; запуск АЦП

WAIT:

JNB P1.1, WAIT

; переход, если данные  не готовы

 

MOVX A, #00010000B

;ввод данных с АЦП

 

MOV 30H, A

; данные из АЦП в  ячейке 30Н ОЗУ

 

SETB P1.0

; гашение АЦП

 

ACALL SPEED

; вызов п/п вычисления  скорости

 

ACALL VOLUME

; вызов п/п вычисления  расхода

 

ACALL AMOUNT

; вызов п/п вычисления  времени

 

ACALL VOLUME ALL

SETB P3.0

; вызов п/п вычисления  накопленного расхода

; установить сигнал DTR

 

NOP

 
 

NOP

 
 

CLR P3.0

; снять сигнал DTR

 

SETB EA

; разрешение прерывания

 

SETB ЕХ1

 
 

SETB ЕХ0

 
 

ACALL DELAY1

; п/п задержки на 1 минуту

 

JMP BEGIN

; цикл

; Подпрограмма перекодировки  из двоично-десятичного в семисегментный  код

 

ORG 40H

 

TABLECOD:

DB 3FH

; "0"

 

DB 06H

; "1"

 

DB 5BH

; "2"

 

DB 4FH

; "3"

 

DB 66H

; "4"

 

DB 6DH

; "5"

 

DB 7DH

; "6"

 

DB 87H

; "7"

 

DB 7FH

; "8"

 

DB 6FH

; "9"

; Подпрограмма преобразования  данных с АЦП в значение  уровня жидкости.

; Входной параметр: ячейка 30Н – последние данные с АЦП

; Выходные параметры:  ячейки 50Н, 51Н, 52Н, 53Н – соответственно  сотни,

; десятки, единицы,  десятые значения уровня 

SPEED:

MOV A, 30H

; в (А) данные АЦП  в двоичном коде

 

MOV B, #156

; (В)←156 множитель

 

MUL AB

; (В)(А) ←(А)•(В)

 

MOV R7, A

; (R7) ← (А) Мл.Б. произведения

 

XCH A, B

; (А)↔(В)

 

MOV R6, A

; (R6) ← (А) Ст.Б. произведения

 

ACALL PREOBR2-210

; вызов п/п преобразования 

 

MOV 50H, R3

; по адресу 50Н количество  сотен

 

MOV A, R4

; (А)← (R4)

 

SWAP A

; обмен тетрад в  аккумуляторе

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 51H, A

; по адресу 51Н количество  десятков

 

MOV A, R4

; (А)← (R4)

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 52H, A

; по адресу 52Н количество  единиц

 

MOV A, R5

; (А)← (R5)

 

SWAP A

; обмен тетрад в  аккумуляторе

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 53H, A

; по адресу 53Н количество  десятых

 

RET

 

; Подпрограмма преобразования  данных с АЦП в значение  объёма.

; Входной параметр: ячейка 30Н – последние данные с  АЦП.

; Выходные параметры: ячейки 55Н, 56Н, 57Н, 58Н–соответственно десятки,

; единицы, десятые, сотые значения  емкости

VOLUME:

MOV A, 30H

; в (А) данные АЦП  в двоичном коде

 

MOV B, #59

; (В)←59 множитель

 

MUL AB

; (В)(А) ←(А)•(В)

 

MOV R7, A

; (R7) ← (А) Мл.Б. произведения

 

XCH A, B

; (А)↔(В)

 

MOV R6, A

; (R6) ← (А) Ст.Б. произведения

 

ACALL PREOBR2-210

; вызов п/п преобразования 

 

MOV 55H, R3

; по адресу 55Н количество  десятков

 

MOV A, R4

; (А)← (R4)

 

SWAP A

; обмен тетрад в  аккумуляторе

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 56H, A

; по адресу 56Н количество единиц

 

MOV A, R4

; (А)← (R4)

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 57H, A

; по адресу 57Н количество  десятых

 

MOV A, R5

; (А)← (R5)

 

SWAP A

; обмен тетрад в  аккумуляторе

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 58H, A

; по адресу 58Н количество сотых

 

RET

 

; Подпрограмма вычисления  значения количества

; Выходные параметры:  ячейка 5АН – десятки часов,  ячейка 5ВН – единицы часов

QUANTITY:

MOV A, 30H

; в (А) данные АЦП  в двоичном коде

 

MOV B, #16

; (В)←156 множитель

 

MUL AB

; (В)(А) ←(А)•(В)

 

MOV R7, A

; (R7) ← (А) Мл.Б. произведения

 

XCH A, B

; (А)↔(В)

 

MOV R6, A

; (R6) ← (А) Ст.Б. произведения

 

ACALL PREOBR2-210

; вызов п/п преобразования 

 

MOV 50H, R3

; по адресу 50Н количество  сотен

 

MOV A, R4

; (А)← (R4)

 

SWAP A

; обмен тетрад в аккумуляторе

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 51H, A

; по адресу 51Н количество  десятков

 

MOV A, R4

; (А)← (R4)

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 52H, A

; по адресу 52Н количество  единиц

 

MOV A, R5

; (А)← (R5)

 

SWAP A

; обмен тетрад в  аккумуляторе

 

ANL A, 00001111B

; (А)← (А)&0FH

 

MOV 53H, A

; по адресу 53Н количество  десятых

 

RET

 
 

; Подпрограмма преобразования  двоичного целого беззнакового  числа формата 16

; в двоично-десятичное число  формата 4х4

; Входные параметры: R6 – Ст.Б., R7 – Мл.Б.

; Выходные параметры: R3 – Ст.Б., R4 – Ср.Б., R5 – Мл.Б.

 

; обнуление текущей  суммы

PREOBR2-210:

CLR A

 
 

MOV R4, A

 
 

MOV R5, A

 
 

MOV A, R6

 
 

MOV R1, A

 
 

MOV A, R7

 
 

MOV R2, A

 
 

MOV R0, #16H

; счетчик циклов

 

CLR A

 
 

; сдвиг двоичного числа влево

CYCLE:

XCH A, R4

 
 

XCH R1, A

 
 

XCH R4, A

 
 

XCH A, R5

 
 

XCH R2, A

 
 

XCH R5, A

 
 

MOV A, R5

 
 

ADD A, R5

 
 

MOV R5, A

 
 

MOV A, R4

 
 

ADDC A, R4

 
 

XCH A, R4

 
 

XCH R1, A

 
 

XCH R4, A

 
 

XCH A, R5

 
 

XCH R2, A

 
 

XCH R5, A

 
 

; двоично-десятичное удвоение суммы с учетом переноса

 

MOV A, R5

 
 

ADDC A, R5

 
 

DA A

 
 

MOV R5, A

 
 

MOV A, R4

 
 

ADDC A, R4

 
 

DA A

 
 

MOV R4, A

 
 

MOV A, R7

 
 

ADDC A, R7

 
 

DA A

 
 

MOV R7, A

 
 

; проверка конца цикла

 

DJNZ R0, CYCLE

 
 

MOV A, R7

 
 

MOV R3, A

 
 

RET

 

; Подпрограмма задержки  на 1 минуту

DELAY1:

MOV R7, #00H

; обнулить счетчик  переполнения

 

MOV R6, #00H

; обнулить счетчик  переполнения

 

SETB EA

; общее разрешение  прерывания

 

SETB ET0

; разрешение прерывания  от Т/С0

 

MOV TMOD, #01H

; режим 1 Т/С0

 

MOV TL0, #0B0H

 
 

MOV TH0, #3CH

; загрузка числа

 

SETB TR0

; запуск Т/С0

LOOP:

CJNE R6, #60, LOOP

; переход при (R6)≠60

 

RETI

 
 

ORG 000BH

; вектор прерывания

 

CLR TR0

; остановить Т/С0

 

CLR TF0

; сбросить TF0

 

INC R7

; инкремент

 

JMP MET

 
 

ORG 0030Н

 

MET:

CJNE R7, #20, AGAIN

; переход при (R7)≠20

 

MOV R7, #00H

; обнуление

 

INC R6

; инкремент

 

RETI

 

AGAIN:

MOV TL0, #0B0H

 
 

MOV TH0, #3CH

; загрузка числа

 

MOV TR0

; запуск Т/С0

 

RETI

 

; Подпрограмма обработки  прерывания по входу INT0

 

ORG 0003H

; вектор прерывания

INT:

CLR ES

; запрет прерываний  от УАПП

 

MOV SCON, #42H

; режим УАПП

 

CLR TR1

; останов Т/С1

 

MOV R0, #50H

; адрес пересылаемых  данных

 

ACALL USTAN

; вызов п/п

 

RET

 

USTAN:

MOV TMOD, #20H

; режим 2 Т/С1

 

MOV TH1, #0FAH

; загрузка числа

 

SETB TR1

; запуск Т/С1

PROV:

MOV A, @R0

 

SPOUT:

JNB TI, SPOUT

; ожидание готовности  передатчика

 

CLR TI

; сброс TI

 

INC R0

; инкремент

 

MOV SBUF, A

; пересылка символа

 

CJNE R0, #5CH, PROV

; все переслали?

 

RET

 

; Подпрограмма обработки прерывания по входу INT1

 

ORG 0013H

; вектор прерывания

 

MOV A, 40H

; команда чтения FIFO

 

MOV P0, A

 
 

MOV A, P1

; в (А) код нажатой  клавиши

 

RLC A

; сдвиг

 

RLC A

; сдвиг

 

RLC A

; сдвиг

 

JB C, SP

; переход, если перенос

 

RRC

; сдвиг

 

JB C, VL

; переход, если перенос

 

RRC

; сдвиг

 

JB C, QNT

; переход, если перенос

SP:

ACALL SP_OUT

; вызов п/п

 

RET

 

VL:

ACALL VL_OUT

; вызов п/п

 

RET

 

QNT:

ACALL QNT_OUT

; вызов п/п

 

RET

 

; Подпрограмма вывода  на дисплей значения скорости

SP_OUT:

SETB P1.5

;зажигание светодиода

 

MOV R2, #00H

;адрес 1-ого индикатора

 

MOV R0, #50H

; (R0)←50Н

 

SETB P3.7

 

AGN:

MOV A, @R0

 
 

MOV A, R1

 
 

MOVX @R2,A

 
 

MOV A,R2

 
 

RL A

 
 

MOV R2,A

 
 

INC R0

; инкремент

 

CJNE R0, #54H, AGN

; все выведено?

 

RET

 
 

CLR P3.7

 

; Подпрограмма вывода  на дисплей значения объёма

VL_OUT:

SETB P1.6

;зажигание светодиода

 

MOV R2, #00H

;адрес 1-ого индикатора

 

MOV R0, #55H

; (R0)←56Н

 

SETB P3.7

 

AGN1:

MOV A, @R0

 
 

MOV A, R1

 
 

MOVX @R2,A

 
 

MOV A,R2

 
 

RL A

 
 

MOV R2,A

 
 

INC R0

; инкремент

 

CJNE R0, #59H, AGN1

; все выведено?

 

RET

 
 

CLR P3.7

 

; Подпрограмма вывода  на дисплей значения времени

QNT_OUT:

SETB P1.7

;зажигание светодиода

 

MOV R2, #00H

;адрес 1-ого индикатора

 

MOV R0, #5AH

; (R0)←5АН

 

SETB P3.7

 

AGN2:

MOV A, @R0

 
 

MOV A, R1

 
 

MOVX @R2,A

 
 

MOV A,R2

 
 

RL A

 
 

MOV R2,A

 
 

INC R0

; инкремент

 

CJNE R0, #5CH,AGN2

; все выведено?

 

RET

 
 

CLR P3.7

 

  1. Заключение

В результате курсового  проекта был разработан измерительный  преобразователь для электромагнитного  датчика расхода. Система состоит  из объекта контроля и управления, микроконтроллера, пульта управления и аппаратуры их взаимосвязи. Система  реализована на базе микроконтроллера AT89S8252. Спроектированное устройство предназначено для измерения уровня жидкости, на контролируемом объекте, а также отображает на панели индикации скорость, расход , объём и суммарное время наблюдения. Также, результаты последних измерений передаются на ЭВМ, посредствам модуля последовательной передачи RS-485, если поступает соответствующий запрос. Устройство предназначено для работы в диапазоне измерения расхода 1,0...10 м3/с, диапазоне измерения температур 0...60°С, при допустимом напряжении поляризации не более 100 мВ, Коэффициент подавления помехи общего вида частоты 50 Гц не менее 80 дБ, основной приведенной погрешностью менее 2%, дополнительной погрешностью при изменении температуры окружающего воздуха на 10°С во всем рабочем диапазоне 0,5%.

 

 

Список использованной литературы

  1. Иванова Г. М. и др. Теплотехнические измерения и приборы: Учебник для вузов / Г. М. Иванова, Н. Д. Кузнецов, B. C. Чистяков. - М.: Энергоатомиздат., 1984.
  2. Измерения в промышленности: Справочник / В. Бастль и др. Под ред. П. Профоса. - М.: Металлургия, 1990.
  3. Хансуваров К. И., Цейтлин В. Г. Техника измерения давления, расхода, количества и уровня жидкости, газа и пара. - М.: Изд. станд., 1990.
  4. Практическое руководство: Комплексный курсовой проект для студентов "Промышленная электроника". Э. М. Виноградов, А. И. Никеенков, 2003.
  5. Операционные усилители: Справочник: - М.: ПАТРИОТ, 1996.
  6. Цифровые и аналоговые интегральные микросхемы: Справочник / Под ред., С. В. Якубовского. — М.: Радио и связь, 1990.
  7. Резисторы, конденсаторы, трансформаторы, дроссели, коммутационные устройства РЭА: Справочник / Н. Н. Акимов, Е. Л. Ващуков, В. А. Прохоренко, Ю. П. Ходоренок. - Мн: Беларусь, 1994.
  8. Вуколов Н. И., Михайлов А. Н. Знакосинтезирующие индикаторы: Справочник / Под ред. В. П. Балашова. - М: Радио и связь, 1987.
  9. Цифровые интегральные микросхемы: Справочник / П. П. Мальцев, Н. С. Долидзе, М. И. Критенко и др. - М.: Радио и связь, 1994.
  10. Цифровые интегральные микросхемы. Справочник. М. И Богданович. Мн. Беларусь 1991.
  11. В помощь радиолюбителю. Справочник В. Замятин-М.:Патриот,1991.
  12. Перабаскин А.В. и др. Интегральные микросхемы. Операционные усилители. Справочник. М.: Наука, 1993.
  13. Ю.А. Мячин. "180 аналоговых микросхем" (справочник)- М.:Патриот,1993.
         

КиИТ.ИИТ.609332

Лист

           

Изм.

Лист

№ докум.

Подп.

Дата


 


Информация о работе Расходомер на основе электромагнитного датчика расхода