Управление двигателем постоянного тока

Автор работы: Пользователь скрыл имя, 10 Декабря 2013 в 13:37, курсовая работа

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

Микроконтроллер — это электронный компонент объединяющий в себе 8-16 разрядный микропроцессор, RAM, ROM на флеше и ряд периферийных устройств: порты, ШИМ, AD/DA преобразователи и т.д.
Больше 10ти лет использования, микроконтроллеры зарекомендовали себя, как неприхотливые, дешёвые устройства для различного спектра задач.

Содержание

Введение. ……………………….……………………..……………………..……3
Анализ задачи………………………….…………………………………………...5
Предварительное проектирование системы……………………………………....6
Проектирование аппаратных средств системы……………………..………….…9
Проектирование программного обеспечения.……………………………………10
Заключение………………………………………………………………………...18
Литература………………………………………………………………………….19

Приложение 1. Схема электрическая принципиальная.
Приложение 2. Перечень элементов (спецификация).

Вложенные файлы: 1 файл

Kursovoj_proekt_mark_razd.docx

— 237.29 Кб (Скачать файл)

 Сопротивление сток-исток открытого  транзистора (Rds), Ohm: 0.18

 

Благодаря максимально допустимому  току 18А Можно управлять двигателями большой мощности.

ПРОЕКТИРОВАНИЕ АППАРАТНЫХ СРЕДСТВ  СИСТЕМЫ

 

Проектирование  в среде Proteus

Подключен внешний  тактовый генератор и осциллограф 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проектирование программного обеспечения

 

1 Алгоритм работы устройства

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок-схема алгоритма  программы

 

 

 

 

 

 

 

 

 

 

 

 

                         

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код программы

 

.include "m8def.inc"

 

.def tempL   = r16                   //присваиваем регистру R16 имя tempH

.def tempH   = r17                     // присваиваем регистру R17 имя tempL

.def input   = r19      // -"- R19 input

.def shimL   = r24      //-"- R24 shimL

.def shimH   = r25      // -"- R25 shimH

.def a=r22

.def b=r23

 

.dseg                                   // сегмент ОЗУ

.eseg                                   // сегмент ЕЕПРОМ

.cseg                                   //сегмент программы

.org 0

 

  ldi r26, $00 // присваиваем значения регистрам  

  ldi shiml,$10

  ldi a, 0b00000001

  ldi b, 0b00000010

  ldi r18,0b11111111  

 

out DDRd,r18 // порт D настраиваем на выход

 

PROG:           ldi r16,$04             // Инициализируем стек

                out SPH,r16

                ldi r16,$5F

                out SPL,r16

 

                ldi tempH,$00           // Заносим значение $0010 в регистр OCR1A

                out OCR1AH,tempH

                ldi tempL,$10           //заполнение сингала, от $0000 до $03FF (0-1023)

                out OCR1AL,tempL

 

                ldi tempH,$00           // Заносим значение $0010 в регистр OCR1A 

                out OCR1BH,tempH

                ldi tempL,$10          

                out OCR1BL,tempL

 

                ldi tempL,$A7           //инициализация таймер/счетчика Т1 частота делитель на 1024

                out TCCR1A,tempL

                ldi tempL,$04   //делитель на 64

                out TCCR1B,tempL

 

                sbi DDRB,1              //подключаем вывод PB1 к таймер/счетчику Т1

                sbi DDRB,2              // подключаем вывод PB2 к таймер/счетчику Т1

 

// основной код программы

main:    

 

in input,pinc   // чтение сигналов на портах С и запись в регист input

// реализация задержки

delay:

ldi r20,20

dl:

ldi r21,255

dl1:

dec r21

brne dl1

dec r20

brne dl

 

// реализация отображения заполненности  в процентах

     mov r30, shimL  //младший регистр shimL записываем в R30 (пример 10110101)

     mov r31, shimH  //страший регистр shimР записываем в R31 (00000011)

lsr r30   // свигаем вправо побитно R30 4 раза (010110101)

lsr r30   //  00101101

lsr r30   // 00010110

lsr r30   //  00001011 - результат, старшие 4 бита освободились

lsl r31   //свигаем влево побитно R31 4 раза (00000110)

 lsl r31   // 00001100

 lsl r31   //00011000

 lsl r31   //00110000

 or r31,r30   //логической командой или обеденяем

      // R31 и R30 (00111011) в R31

// преобразование чтобы заполнение  было от 0 до 64 (dec 0-100%)

lsl r31   // сдвигаем влево на один бит

ldi r30, $00  // обнуляем R30

mov r30, r31

 lsr r30

add r31,r30

lsr r31

 subi r31,-5

ldi r30, 0

// преобразование в десятичное  число

 dec_sis:

      

inc r30

        subi r31, 10

brpl dec_sis

subi r31, -10

dec r30

lsl r30

      lsl r30

   lsl r30

   lsl r30

or r31,r30

out portd, r31  

 

// Изменение скважности путем  нажания на кнопки

 

mov tempL, input

mov tempH, input

 

and tempH,a  // определяем, какая кнопка нажата

and tempL,b

 

// увеличение заполненности

mov r28, shimL 

    mov r29, shimH

ldi r20,$F5     // максимально значение, при котором

ldi r21,$03  //заполнение приближается к 100%

 

sub  R20,shimL   // вычитание двухбайтовых чисел

    sbc  R21,shimH    //R19:R18 = R19:R18 - R17:R16

brmi subm   //Переход при N=1 (отрицательный результат)

lsr tempL

sbrc tempL,0

rjmp subm

sbrs shimH,2

add shimL, tempH

adc shimH, r26

 

out OCR1AH,shimH       

     out OCR1AL,shimL

 

 

      rjmp main

// увеличение скважности

subm:

mov r28, shimL

mov r29, shimH

   sbiw  r28,10  // декрементируем счётчик R25:R24

    brmi main    // переход в main если отрицательный результат

    sub  shimL,templ   // вычитание двухбайтовых чисел

    sbc  shimH,r26   // R19:R18 = R19:R18 - R17:R16

out OCR1AH,shimH       

    out OCR1AL,shimL 

  rjmp main

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

 

В данном курсовом проекте было разработано микропроцессорное устройство измерения и инициализации скорости вращения вала двигателя постоянного тока(ДПТ). Оно позволяет измерять и наблюдать за скоростью двигателя в реальном времени.

Электродвигатели постоянного тока применяют в тех электроприводах, где требуется большой диапазон регулирования скорости, большая точность поддержания скорости вращения привода, регулирования скорости вверх от номинальной.

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

      Основой данной  системы является микроконтроллер  семейства  ATmega фирмы Atmel. Данный микроконтроллер  построен по так называемой Гарвардской архитектуре, то есть использована раздельная адресация памяти программ и памяти данных. Преимущества этой архитектуры заключаются в повышенном быстродействии, например ATmega выполняет одну инструкцию за один тактовый импульс, то есть при частоте 16МГц МК выполняет 16 миллионов операций в секунду.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Литература

 

  1. Белов А.В.,  Создаем устройство на микроконтроллерах; Наука и техника, 2002.
  2. Белов А.В., Конструирование устройств на микроконтроллерах; Наука и техника, 2005.
  3. Фридмен М., Ивенс Л. Проектирование систем с микрокомпьютерами ;

Пер. с англ. – М. Мир, 1986.

  1. Предко М. Справочник по AVR-микроконтроллерам; Пер. с англ. – МДМК Пресс, 2002.
  2. Барри Брей. Применение микроконтроллеров Арихитектура, программирование и построение интерфейсов с применением С и ассемблера; Пер. с англ – СПб «Корона-Век», 2008.
  3. Пашнин В. М. Электрические машины: Методические указания к курсовому проекту. - Хабаровск: Изд-во ДВГУПС, 2000. - 40 с.: ил.
  4. Каспер Э. Программирование на языке ассемблера для микроконтроллеров: Москва 2004.
  5. Интернет ресурсы www.analog.com

 

 

 

 

 

 


Информация о работе Управление двигателем постоянного тока