5344

Микропроцессорное устройство Измерения частоты вращения ротора двигателя

Курсовая

Информатика, кибернетика и программирование

Объектом проектирования является измеритель частоты вращения ротора двигателя. Цель работы – создание микропроцессорного комплекса измерения частоты вращения ротора двигателя . В результате проектирования разработана принципиальная...

Русский

2012-12-07

99 KB

91 чел.

АННОТАЦИЯ

Объектом проектирования является измеритель частоты вращения ротора двигателя.

Цель работы – создание микропроцессорного комплекса измерения частоты вращения ротора двигателя .

В результате проектирования разработана принципиальная схема микропроцессорного измерителя частоты и необходимое для его работы программное обеспечение .

Устройство выполнено преимущественно на широко распространенных отечественных компонентах .


1. Введение

Применение микропроцессорных средств позволяет строить универсальные устройства измерения частоты импульсов, легко перестраиваемые на различные режимы его работы.

Анализ технического задания показывает, что проектируемое устройство должно выполнять три основные задачи:

1) содержать счетчик числа измерительных импульсов ;

2) содержать таймер измерительного интервала ;

3) обеспечить вывод частоты вращения вала на жидкокристаллический индикатор.

2. Конкретизация режима работы микропроцессорного измерителя .

Одновременное выполнение поставленных задач облегчается при использовании таймера и режима прерывания программы по его переполнению. Таймер синхронизирует работу счетчиков (секунд  и измерительных импульсов).

При использовании микропроцессорного комплекта серии К580 устройство измерения частоты вращения вала кроме центрального процессора (пять микросхем) должно включать в себя параллельный интерфейс, программируемый таймер, ПЗУ для хранения прикладной программы и ОЗУ для организации стека.

Предпочтительнее использование однокристальных микроконтроллеров, где все перечисленные устройства реализованы в одной микросхеме и требуется лишь один источник питания. Наиболее красивое решение получается при применении микроконтроллеров семейства МК51 [7] с более гибкой и развитой системой команд и многофункциональным таймером. Самый экономичный вариант реализуется при использовании микросхем серии К1830, выполненных по КМОП технологии.

         Измерение частоты вращения вала двигателя устройством происходит после нажатия кнопки системного сброса . Индикация частоты вращения вала происходит статически . Если частота вращения вала выходит за пределы предусмотренного в техническом задании диапазона (100 – 1000 об/мин) на индикаторе устройства отображаются 4 знака «-» .

3. Разработка функциональной схемы измерителя.

Вариант функциональной схемы прибора, рассчитанный на применение микроконтроллера К1830ВЕ35, приведен на рис.3.1. Информацию о частоте вращения вала формирует оптический датчик инфракрасного излучения. Основу оптического датчика составляет перфорированный диск с 16 радиально расположенными прорезями. Сигнал, излучаемый светодиодом VD1 улавливается фотодиодом VD2. Операционный усилитель DA1.1 включен по схеме преобразователя тока в напряжение. Максимум принятого фотодиодом инфракрасного излучения приходится на момент когда одна из прорезей оптического диска находится напротив излучающего диода. Принятый инфракрасный сигнал преобразуется в сигнал на выходе DA1.1 и усиливается в 1000 раз усилителем DA1.2. Амплитуда напряжения на его выходе достигает уровня, достаточного для срабатывания триггера Шмитта DD1. Счетный триггер DD2 формирует сигнал на тестируемом входе микроконтроллера DD3.

Измерительные импульсы поступают на вход Т0 микроконтроллера. Используя синхронизацию измерительных импульсов со временем внутреннего таймера вычисляется частота вращения вала двигателя Х и вывод ее значения через дешифраторы DD6-DD9 на индикаторы DD10-DD13. При подключении внешней памяти программ DD5 адрес очередной ячейки ПЗУ фиксируется во внешнем регистре DD4. При реализации цифровой части прибора можно ориентироваться на следующую элементную базу: DD1-К555ТЛ1, DD2-К555ТМ2, DD3-КР1830ВЕ35, DD4-К580ИР82, DD5-К556РТ5, DD6...DD9-К514ИД1, DD10...DD13-АЛС324А. Датчик реализован на светодиоде АЛ107Б (VD1), фотодиоде ФД27К (VD2) и сдвоенном операционном усилителе К140УД20 (DA1). ОУ имеют внутреннюю цепь частотной коррекции, малые входные токи и малое потребление тока источника питания.

    С помощью резистора R1 при настройке устанавливается рабочий ток светодиода порядка 1-3 мА. Величина сопротивления резистора R2 определяет коэффициент преобразования тока фотодиода в напряжение на выходе DA1.1. Резистор R3 уменьшает влияние входных токов ОУ на сдвиг и дрейф нуля на выходе операционного усилителя. Выбираем R2=R3= 1 МОм. Отношение резисторов R5 и R4 определяет коэффициент усиления DA1.2. по напряжению. Выбираем R5 = 1 МОм, R4 = 1 кОм.

Ограничим полосу пропускания DA1.2 диапазоном от fн = (100*16)/60 = 26 Гц до fв = (1000*16)/60 = 267 Гц. Тогда С1 = 1 / 2**fн*R4= 6 мкФ, С2 = 1 / 2**fв*R5= 0.6 нФ.

       

 Рисунок 3.1 – Функциональная схема микропроцессорного измерителя частоты вращения вала.

 

4. Обоснование алгоритма работы устройства

 

Значение частоты вращения вала Х (об/ мин)связано с количеством счетных импульсов N и временем измерения  T (сек.) зависимостью

где N - число измерительных  импульсов

Т – период измерения частоты в секундах

Рисунок 5.1 – Функциональная схема алгоритма управляющей программы.

Погрешность измерения частоты вращения вала складывается из погрешности измерения периода Т и погрешности деления (делить желательно с точностью до десятых долей, которые не выводятся на индикатор, но учитываются при округлении младшего разряда Х). Удобно выбрать Т = 60/512 = 0,1171875 с. Тогда Х = N*32. Для Х в диапазоне 100-1000 оборотов в минуту N будет находиться в диапазоне 3-31.

  1.  Разработка схемы алгоритма прикладной программы

Схема иллюстрирующая алгоритм прикладной программы приведена на рисунке 6.1. Поясним его. После подачи питания устройству происходит системный сброс. При этом выполнение прикладной программы начинается с нулевого адреса. Далее происходит начальная установка используемых регистров микроконтроллера (инициализация) .

Цикл счета числа измерительных импульсов выполняется внутри цикла отсчета измерительного интервала Т = 60/512 с. По его окончании на цифровой индикатор выводится число Х равное числу счетных импульсов N за измерительный период Т . Остановка программы и фиксирование текущего значения оборотов двигателя на ЖКИ индикаторе осуществляется после нажатия кнопки «СТОП». Перевод измерителя обратно в рабочее состояние происходит нажатием кнопки «СБРОС».

6. Разработка управляющей программы.

Приведем текст управляющей программы , составленной в соответствии с алгоритмом рисунка 6.1 и рекомендациями изложенными в методическом пособии [1].

  ORG 0              ;Начало программы после сброса

  JMP MAIN              ;Переход к основной программе

MAIN:

           ANL           P1,#0              ;Погасить индикаторы

  ANL P2,#0

M3:   CLR  A               ;Обнуление таймера

   MOV T,A

   STRT CNT               ;Старт счетчика внешних событий

  CALL DELAY     ;Вызов подпрограммы задержки

  STOP         TCNT     ;Останов счетчика событий

  MOV A,T               ;Число измерительных импульсов в А

   ADD A,#0                ;Преобразуем содержимое А к

   DA           A                ;двоично-десятичному виду

   CALL MULT      ;Умножить А=А*32Н

   CALL IND                ;Вывести результат на индикатор

   JT1           M3                ;Перейти на М3 если не нажата клавиша "СТОП"

   JNT1 $                ;Ожидать отпускание клавиши "СТОП"

   JMP $                ;Останов программы. Ожидать системный сброс.

;Подпрограмма формирования измерительного интервала

DELAY:

            MOV R3,#252      ;Загрузка вычитающих двоичных счетчиков

M1:    MOV R4,#94      ;

    DJNZ R4,$                ;Цикл в счетчике R4

   DJNZ R3,M1      ;Цикл в счетчике R3

   RET

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

;числа оборотов

IND:    MOV A,R0               ;Единицы и десятки в аккумуляторе

   OUTL P1,A               ;Индикация единиц и десятков

   MOV A,R1               ;Сотни и тысячи в аккумуляторе

   SWAP A               ;Обмен полубайт в аккумуляторе

   OUTL P2,A               ;Индикация сотен и тысяч

   RET

;Подпрограмма умножения (R1,R0)=A*32

;результат умножения - двоично-десятичное число (R1,R0)

MULT:

     MOV R0,#0               ;Очистка двухбайтового накопителя       MOV R1,#0        ;Произведения П       

M2:    JZ           M3               ;Переход к выводу П        

   ADD A,#99H     ;Декремент двоично-десятичного       DA           A               ;счетчика в аккумуляторе         MOV R2,A               ;и R2       

   MOV A,#32H     ;Ввод множимого       

   ADD A,R0               ;Сложение       

   DA           A               ;множимого           

   XCH A,R0               ;с двухбайтовым            

   CLR A               ;накопителем

   ADDC A,R1               ;произведения

    DA           A

          XCH A,R1

   MOV A,R2

    JMP M2               ;Продолжать сложение

M3:    RET

Кратко поясним ее работу. Цикл измерения начинается после нажатия кнопки сброса. Подсчет числа измерительных импульсов реализуется с помощью таймера, работающего в режиме счетчика внешних событий (Т0 – вход счетчика). Измерительный интервал времени Т = 60/512 с. реализуется программно (подпрограммой DELAY). Выражение для расчета содержимого регистров R3 ,R4 для получения задержки  60/512 с. имеет следующий вид :

В данном случае частота кварцевого резонатора предполагается равной 6 МГц при которой время выполнения одного машинного цикла составляет 2.5 мкс. Значения регистров R3, R4 были найдены нами методом координатного спуска. Листинг программы на языке Turbo Pascal 7.0 приведен в приложении к отчету. В результате выполнения этой программы нами были получены следующие значения регистров R3, R4:

R3 = 252    R4 = 92

 

Умножение числа измерительных импульсов на число 32 реализуется подпрограммой MULT. Причем произведение получено путем многократного сложения одного из сомножителей в двухбайтовом накопителе R0,R1 . Число циклов сложения равно другому сомножителю.  Множитель и множимое в нашем случае двоично-десятичные числа. Результат R0, R1 – также двоично-десятичное число.

Вывод частоты вращения вала в оборотах в минуту на цифровой индикатор производится подпрограммой IND.

Листинг управляющей программы приведен в приложении 1 пояснительной записки.

7. Разработка принципиальной схемы с перечнем элементов.

В качестве микроконтроллера применим К1830ВЕ48 с резидентной памятью программ , что позволило освободить линии порта Р0 и отказаться от  ряда микросхем среди которых дорогостоящая микросхема памяти. Освободившиеся линии порта Р0 можно задействовать для выбора программ или постоянной индикации текущего времени.

Некоторые элементы принципиальной схемы были рассчитаны нами ранее в пункте 3. Элементы интегрирующей цепи R6C4 не имеют принципиального назначения их обычно выбирают равными 8.2 кОм и 10 мкФ соответственно. Конденсаторы С5 , С3 подбирают исходя из рекомендаций производителя микроконтроллера. Используя рекомендации для микроконтроллера К1830ВЕ48 , емкости С5 , С3 выберем равными 30 пФ. В качестве соединительной вилки применим СНП58-64. Подробный перечень элементов представлен на отдельных листах в приложении к отчету.

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

В качестве контроллера в проектируемом нами измерителе можно использовать любые микросхемы семейства МК48 , а также  любые микросхемы семейства МК51. Применение нами микроконтроллера К1830ВЕ48 с резидентной памятью программ позволило освободить линии порта Р0 и отказаться от  ряда микросхем среди которых дорогостоящая микросхема памяти. Освободившиеся линии порта Р0 можно задействовать для выбора программ или постоянной индикации текущего времени.

Таким образом, спроектированное нами устройство полностью удовлетворяет всем предъявляемым к нему требованиям, перечень которых был изложен в техническом задании (ТЗ).

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

1. Шарапов А.В. Цифровая и микропроцессорная техника: Учебное пособие для вузов. - Томск: Изд-во Том. ун-та, 1991. - 148 с.

2. Шарапов А.В. Примеры решения схемотехнических задач. Учебное пособие. - Томск: ТИАСУР, 1994. - 141 с.

3. Шарапов А.В. Цифровая и микропроцессорная техника: Учебное пособие. 2-е изд., перев. и доп. - Томск: Изд-во Том. ун-та, 1997. - 108 с.

4. Бирюков С.А. Применение интегральных микросхем серий ТТЛ. - М.: Радио, 1992. - 120 с.

5. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. - М.: Радио и связь, 1990. - 304 с.

6. Лебедев О.Н. Микросхемы памяти и их применение. - М.: Радио и связь, 1990. - 160 с.

7. Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. - М.: Энергоатомиздат, 1990. - 224 с.

8. Боборыкин А.В., Липовецкий Г.П., Литвинский Г.В. и др. Однокристальные микроЭВМ: Справочник. - М.: БИНОМ, 1994. - 400 с.

9. Гуртовцев А.Л., Гудыменко С.В. Программы для микропроцессоров: Справ. пособие. - Минск: Вышэйш. шк., 1989. - 352 с.

10. Калабеков Б.А., Мамзелев И.А. Цифровые устройства и микропроцессорные системы: Учебник для техникумов связи. - М.: Радио и связь, 1987. - 400 с.

11. Микропроцессоры и микроЭВМ в системах автоматического управления: Справочник/ С.Т.Хвощ, Н.Н.Варлинский, Е.А.Попов; Под общ. ред. С.Т.Хвоща. - Л.: Машиностроение, 1987. - 640 с.

12. Токхайм Р. Микропроцессоры: Курс и упражнения/ Пер. с англ., под ред. В.Н.Грасевича. - М.: Энергоатомиздат, 1987. - 336 с.

13. Липовецкий Г.П., Литвинский Г.В., Оксинь О.Н. и др. Однокристальные микроЭВМ. Семейство МК48. Семейство МК51. Техническое описание и руководство по применению. - М.: БИНОМ, 1992. - 340 с.

 

Приложение 1

Листинг управляющей программы

              2500 A.D. 8748 Macro Assembler  -  Version 4.02b

              ------------------------------------------------

                      Input  Filename : gauge.asm

                      Output Filename : gauge.obj

   1   0000                     ORG 0 ;Начало программы после сброса

   2   0000   04 02             JMP MAIN ;Переход к основной программе

   3                           

   4   0002   99 00            MAIN: ANL P1,#0 ;Погасить индикаторы

   5   0004   9A 00             ANL P2,#0

   6                           

   7   0006   27               M3: CLR A ;Обнуление таймера

   8   0007   62                MOV T,A

   9   0008   45                STRT CNT ;Старт счетчика внешних событий

  10   0009   14 1A             CALL DELAY ;Вызов подпрограммы задержки

  11   000B   65                STOP TCNT ;Останов счетчика событий

  12   000C   42                MOV A,T ;Число измерительных импульсов в А

  13   000D   03 00             ADD A,#0 ;Преобразуем содержимое А к

  14   000F   57                DA A ;двоично-десятичному виду

  15   0010   14 29             CALL MULT ;Умножить А=А*32Н

  16   0012   14 23             CALL IND ;Вывести результат на индикатор

  17   0014   56 06             JT1 M3 ;Перейти на М3 если не нажата клавиша "СТОП"

  18   0016   46 16             JNT1 $ ;Ожидать отпускание клавиши "СТОП"

  19   0018   04 18             JMP $ ;Останов программы. Ожидать системный сброс.

  20                           

  21                           ;Подпрограмма формирования измерительного интервала

  22                           

  23   001A   BB FC            DELAY: MOV R3,#252 ;Загрузка вычитающих двоичных счетчиков

  24   001C   BC 5E            M1: MOV R4,#94 ;

  25   001E   EC 1E             DJNZ R4,$ ;Цикл в счетчике R4

  26   0020   EB 1C             DJNZ R3,M1 ;Цикл в счетчике R3

  27   0022   83                RET

  28                           

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

  30                           ;числа оборотов

  31                           

  32   0023   F8               IND: MOV A,R0 ;Единицы и десятки в аккумуляторе

  33   0024   39                OUTL P1,A ;Индикация единиц и десятков

  34   0025   F9                MOV A,R1 ;Сотни и тысячи в аккумуляторе

  35   0026   47                SWAP A ;Обмен полубайт в аккумуляторе

  36   0027   3A                OUTL P2,A ;Индикация сотен и тысяч

  37   0028   83                RET

  38                           

  39                           ;Подпрограмма умножения (R1,R0)=A*32

  40                           ;результат умножения - двоично-десятичное число (R1,R0)

  41                           

  42   0029   B8 00            MULT: MOV R0,#0 ;Очистка двухбайтового накопителя     

  43   002B   B9 00             MOV R1,#0 ;Произведения П       

  44   002D   C6 3D            M2: JZ M4 ;Переход к выводу П        

  45   002F   03 99             ADD A,#99H ;Декремент двоично-десятичного         

                                                          DA A ;счетчика в аккумуляторе        

                                                MOV      R2,A ;и R2       

  46   0031   23 32             MOV A,#32H ;Ввод множимого       

  47   0033   68                ADD A,R0 ;Сложение       

  48   0034   57                DA A ;множимого           

  49   0035   28                XCH A,R0 ;с двухбайтовым            

  50   0036   27                CLR A ;накопителем

  51   0037   79                ADDC A,R1 ;произведения

  52   0038   57                DA A

  53   0039   29                XCH A,R1

  54   003A   FA                MOV A,R2

  55   003B   04 2D             JMP M2 ;Продолжать сложение

  56   003D   83               M4: RET

  57   003E                     

          Lines Assembled :  57             Assembly Errors :  0

Приложение 2

Листинг программы координатного спуска

Program GAUGE;

USES CRT;

CONST Lim : Extended = 60/512;

VAR R3,R4,A,B :Integer;

   Delta,T,R33,R44 : Extended  ;

begin

 ClrScr;

 Delta:=200;

 for R3:=255 downto 0 do

   for R4:=255 downto 0 do

   begin

     R33:=R3;

     R44:=R4;

     T:=(10+R33*(5+R44*5))/1000;

     T:=T/1000;

     if Abs(Lim-T) < Delta then

       begin

         Delta:=Abs(T-Lim);

         A:=R3;

         B:=R4;

       end;

    end;

  Writeln('R3=',A,'     R4=',B);

 Repeat Until Keypressed;

end.


СБРОС

НИЦИАЛИЗАЦИЯ

Установка t = 0

 t = t + tзад

 t < 1/16 сек ?

Установка N = 0

Счет N

Вывести на индикатор число

X = N

ДА

НЕТ

Кнопка «СТОП» нажата ?

НЕТ

ДА

Кнопка «СБРОС» нажата ?

НЕТ


 

А также другие работы, которые могут Вас заинтересовать

49357. Составление алгоритма и программы вычисления функции с использованием нестандартных функций 44.54 KB
  Основной задачей выполнения курсовой работы по технологической информатике является закрепление теоретических знаний,полученных в процессе самостоятельной работы, а также на лекциях, практических , лабораторных занятия, развитие практических навыков программирования , работы за терминалами или персональными компьютерами.
49362. Особливості функціонування страхового ринку в Україні 136.24 KB
  Економічна сутність принципи та основні функції страхування Види та форми страхування в Україні Аналіз динаміки страхових премій та страхових виплат за видами страхування у 20072009 рр. Особливого значення в звязку з цим набувають питання страхування господарської діяльності усіх суб’єктів економіки що враховує інтереси незалежних суб'єктів держави і направленої на...
49363. Цифровые системы передачи непрерывных сообщений 1.12 MB
  Исходными данными для выполнения работы являются: 1 статистические характеристики сообщения: значение показателей степени k= 8; значение частоты fo 2000 Гц; тип распределения сообщения– № 4 распределение Лапласа; 2 допустимое значение относительной среднеквадратичной ошибки искажений сообщения при его преобразовании в цифровую форму и действии помех: δ = 02; 3 вид модуляции сигнала во второй ступени: ЧМ. Распределить относительную среднеквадратичную ошибку ОСКО входных преобразований на четыре...
49365. Разработка ЭТС, обеспечивающей увеличение объема и снижение себестоимости продукции сельскохозяйственных предприятий 367 KB
  Характеристика парка электрооборудования и Расчет объема работ по обслуживанию электрооборудования Разработка квартального графика технического обслуживания электрооборудования...