5344

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

Курсовая

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

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

Русский

2012-12-07

99 KB

94 чел.

АННОТАЦИЯ

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

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

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

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


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

ДА

НЕТ

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

НЕТ

ДА

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

НЕТ


 

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

53041. Фотосинтез 556.5 KB
  За казкою Фарида Алекперова Про що ця казка Ви вже здогадалися Так про процес фотосинтезу. Вивчення нового матеріалу Історія вивчення фотосинтезу Міні – доповіді учнів У 1630 році голландський лікар Ян Гельмонт хотів довести що рослини харчуються за допомогою землі і тому проводив дослід: верба що росте в горщику і поливається водою за 5 років збільшила вагу на 74 кг а вага...
53042. Сочинение по картине И.И. Левитана «Золотая осень» 29 KB
  Левитана Золотая осень Цель. Какое время года сейчас Осень . А какая осень Ранняя Чем ранняя осень отличается от поздней Ранней осенью природа богата разнообразными красками. Пушкина и скажите при помощи чего изображена осень Унылая пора Очей очарованьеПриятна мне твоя прощальная краса Люблю я пышное природы увяданьеВ багрец и золото одетые леса.
53043. Части тела 29.5 KB
  В данном уроке я буду использовать телепередачу «Funny English – части тела». А именно: считалочку на английском языке, которую сочинили Энн и Сэм, мы заучим с ребятами и с помощью данной считалочки мы выберем того человека, который будет проводить физ.минутку.
53044. Фрактали – це наука чи краса 6.62 MB
  Обговорення та складання плану роботи кожною групою проекту. «Історики» отримали завдання зібрати відомості про дослідження та виникнення поняття «фрактал», а також про вчених, які зробили внесок у розвиток цієї теми
53045. Сучасний образ Франції 2.06 MB
  Обладнання: політична карта світу карта Франції стенди Будинки мод і косметика Франції Французькі актори Архітектурні скарбниці Географи науковці Франції Вчені французи . Дорогі друзі сьогодні ми спробуємо уявити що тиждень тому ви повернулись із Франції де кожен із вас місяць працював за фахом. Ви вивчали причини успіхів і проблеми сучасної Франції порівнювали їх з українськими думали й аналізували.
53047. Співтворчість: Учитель – Учень 1.1 MB
  Це поривання душі й серця що колись були наче весняні зелені листочки†які пахли радістю щастям молодим сильним коханням. Завірюха загасила кохання та мрії і листочки зів’яли скрутились розвіялись за вітром. Збірка складається з трьох циклів – трьох жмутків†по 20 віршів у кожному: це немов три акти драми а Франко назвав жанр збірки ліричною драмою†в яких розвивається історія кохання від його зародження зміцнення через надії на щастя до розчарування безнадії відчаю трагедії. Кожен Жмуток†– це шматок душі...