Проектирование микроконтроллерных устройств

Автор работы: Пользователь скрыл имя, 11 Августа 2013 в 21:53, курсовая работа

Описание работы

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

Содержание работы

Введение…………………………………………………………………………....4
1. Анализ задания, составление описания и блок-схемы устройства…………..5

2. Выбор компонентов схемы и их описание…………………………………….6
2.1 Выбор микроконтроллера…...…………………………….……………..6
2.2 Выбор вспомогательных элементов конструкции..…………………….8
2.2.1 Входная цепь…………………………………………………………..8
2.2.2 Потенциометр..………………………………………………………..8
2.2.3 Блок питания…………………………………………………………..8
2.2.5 Прочие элементы схемы…….. ………………………………………8
3. Алгоритм………………………………………….……………………….…….9
4 Программа на ассемблере……………………………………………………….11
Заключение……...………………………………………………………………….17
Список использованных источников……………………………………………..18

Файлы: 1 файл

Вроде твой курсач.doc

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


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное  учреждение высшего

Профессионального образования

 

САМАРСКИЙ ГОСУДАРСТВЕННЫЙ  АЭРОКОСМИЧЕСКИЙ

УНИВЕРСИТЕТ имени академика  С.П.КОРОЛЁВА

 

 

Кафедра РТУ

 

 

Дисциплина «Цифровые устройства»

 

 

Проектирование микроконтроллерных устройств

 

Пояснительная записка  к курсовому проекту

 

 

 

 

 

 

 

 

Выполнил:          Карюхин Д. А.

Группа:             5402

Руководитель проекта:        Кудрявцев И. А.

Дата сдачи на проверку:

 

 

Оценка и дата защиты:

 

 

 

 

 

 

 

 

 

Самара

 

2006

 

 

 

ЗАДАНИЕ №23

 

Разработать формирователь трехфазного гармонического напряжения со следующим параметрами:

Амплитуда напряжения – (1 - 10)В;

Частота сигнала – 50Гц±1%;

Максимальная погрешность задания напряжения – 1%;

Задание напряжения - потенциометром;

Минимальное сопротивление  нагрузки – 10 Ом.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PЕФЕРАТ

 

 

 

Курсовой проект.

 

Пояснительная записка:  18с.,  5 рис.,  0 табл.,  6 источников.

 

Графическая документация:   1л. А3,   1л. А4

 

 

 

 

 

 

 

 

ИНВЕРТОР, МИКРОКОНТРОЛЛЕР, БЛОК ПИТАНИЯ, АЛГОРИТМ, ПРОГРАММА

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СОДЕРЖАНИЕ

 

Введение…………………………………………………………………………....4

1. Анализ задания, составление описания и блок-схемы устройства…………..5

 

2. Выбор компонентов схемы и их описание…………………………………….6

2.1 Выбор микроконтроллера…...…………………………….……………..6

2.2 Выбор вспомогательных элементов конструкции..…………………….8

2.2.1 Входная цепь…………………………………………………………..8

2.2.2 Потенциометр..………………………………………………………..8

2.2.3 Блок питания…………………………………………………………..8

2.2.5 Прочие элементы схемы…….. ………………………………………8

3. Алгоритм………………………………………….……………………….…….9

4 Программа на ассемблере……………………………………………………….11

Заключение……...………………………………………………………………….17

Список использованных источников……………………………………………..18

Приложение А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

 

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 Анализ задания, составление описания и блок-схемы устройства

 

Рисунок 1 – Структурная схема инвертора.

 

Блок-схема устройства, приведённая  на рисунке 1, состоит из :

- Микроконтроллер – PIC16F873, выбран в виду наличия АЦП, модулей ШИМ, достаточное количество выводов

- Блок питания – цепь формирующая необходимые напряжения для нормального и стабильного функционирования устройства

- цепи тактирования  и сброса – предназначены для  нормального функционирования микроконтроллера

- Потенциометр – задает амплитуду напряжения, требуемую на выходе инвертора

- 3-хфазный инвертор – необходим для формирования гармонических колебаний на выходе устройства

 

Принцип действия устройства :

- потенциометром задается амплитуда выходного напряжения, которая фиксируется встроенным модулем АЦП

- с использованием двух встроенных модулей ШИМ и таймеров на транзисторах с плавающей точкой реализуются три синусоидальных сигнала с разностью фаз 120º  требуемой амплитуды

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

 

 

 

 

 

 

 

 

 

2 Выбор компонентов схемы и их описание

 

2.1 Выбор микроконтроллера

 

Главным компонентом  данного цифрового устройства является микроконтроллер. И от того, что входит в его состав, его характеристик будет зависеть работа всей схемы, скорость и качество обработки данных. Для реализации заданного устройства, нам необходимы : аналогово-цифровой преобразователь, возможность реализации широтно-импульсной модуляции, простая и доступная система команд. Под такие параметры хорошо подходит PIC16F873. Документация и основные принципы работы широко распространены и легко доступны.

  • Емкость перепрограммируемой Flash памяти: 4К 14-тиразрядных слов;
  • Напряжение питания (2-5,5)В;
  • Программируемая защита памяти программ;
  • Внутреннее ОЗУ ёмкостью 256х8 бит;
  • 22 программируемые линии ввода/вывода;
  • Два 8-разрядных и 16-разрядный таймеры/счетчики событий;
  • 10-разрядный модуль АЦП;
  • Два модуля захвата/сравнения/ШИМ;
  • Тактовая частота 32 кГц - 20 МГц.

 

Микроконтроллеры PIC16F873 выпускаются в корпусах типа PDIP и SOIC.

Вид и цоколёвка микроконтроллера представлены на рисунке 2.

Структурная схема микроконтроллера представлена на рисунке 3.

Рисунок 2 – Типы корпусов и цоколёвка микроконтроллера

 

 

 

 

 

 

 

 

Рисунок 3 – Структурная схема микроконтроллера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2 Выбор вспомогательных элементов конструкции

 

2.2.1 Потенциометр

 

Через делитель, состоящий из потенциометра 1кОм и постоянного резистора сопротивлением на 3кОм, задается опорное напряжение для модуля АЦП. С третьего вывода потенциометра будет сниматься требуемое напряжение. Сопротивления делителя будет достаточно для компенсаций тока утечки на выводах. Зависимость сопротивления от угла поворота следует выбрать линейную. Этим параметрам удовлетворяют: потенциометр СПЗ-37-1кОм; резистор С-23-3кОм.

 

2.2.2 Блок питания

На вход БП подаётся переменное напряжение 220В. С помощью трансформатора оно понижается до 24В во вторичной обмотке и подаётся на диодный мост VD11-VD14, где оно выпрямляется. На выходах диодного моста включён стабилизатор фиксированного напряжения на +20В, на базе микросхемы 142ЕН9А. С середины вторичной обмотки трансформатора напряжение 12В подаётся на диодный мост VD7-VD10, напряжение с выхода которого подается на питание микросхемы КР142ЕН5А, которая также является стабилизатором фиксированного напряжения, но на +5В. В схеме также установлены фильтрующие конденсаторы, которые стабилизируют питание, увеличивая помехоустойчивость.

 

2.2.3 Инвертор

Основными элементами инвертора являются транзисторы, работающие в ключевом режиме. Поскольку управляющие токи велики, следует выбирать  
МДП-транзисторы. Исходя из условия, что допустимое напряжение сток-исток не должен быть менее 20В, а напряжение затвор-исток не менее 24В, выбираем транзисторы VT2,VT3,VT5,VT6,VT8,VT9. Таким требованиям удовлетворяют транзисторы КП902А. Также выбираем транзисторы VT1,VT4,VT7 по допустимому напряжению сток-исток не менее 24В(КП301В). Управление с микроконтроллера осуществляется через резисторы 100Ом. Диоды выбираются по допустимому прямому току не менее 2А(BYW95).

 

2.2.4 Прочие элементы схемы

Цепь тактирования используется стандартная для подключения кварцевого резонатора. В данном устройстве используем резонатор на 20МГц, при этом на выполнение одной операции будет тратиться 0,2мкс. Конденсаторы используются танталовые 33пФ.

 

 

 

 

 

 

3 Алгоритм

Рисунок 4 – Алгоритм основной программы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 5 – Алгоритм подпрограммы прерывания

4 Программа на ассемблере

4.1 Файл const.h

 

#define _C   STATUS,C

#define _Z   STATUS,Z

#define _RP0  STATUS,RP0

#define _RP1  STATUS,RP1

#define T1          T1CON,TMR1ON

#define T2          T2CON,TMR2ON

#define AL   PORTB,1

#define BL   PORTB,2

#define CH   PORTB,0

#define CL   PORTB,3

;**********************************************************************************;КОНСТАНТЫ

;**********************************************************************************

KORR equ 0x28

;**********************************************************************************

;РЕГИСТРЫ

;**********************************************************************************

    CBLOCK 0x20

A_PH:          1   ; Счетчик фазы A

B_PH:          1   ; Счетчик фазы B

C_PH:          1   ; Счетчик фазы C

K:             1   ; Коэфициент деления.

DELIM:     1   ; Делимое

DELIT:     1   ; Делитель

RH:            1   ; Частное деления

 

      ENDC

      CBLOCK 0x70

W_COPY:      1 ; Копия регистра W

STATUS_COPY: 1 ; Копия регистра STATUS

      ENDC

 

4.2 Файл interrupt.inc

 

;************************************************************************

;  INTERRUPT VECTOR

; ************************************************************************

org 0x04   ;Вектор прерывания    

movwf  W_COPY  ;Сохранение стека- W сохранить в регистре W_COPY

swapf STATUS,W ;Обменять полубайты в регистре status и записать в W

movwf STATUS_COPY ;W сохранить в регистре STATUS_COPY

; ************************************************************************

banc0

btfsc PIR1,0 ; Прерывание таймера 1?

goto TMR1INT ; Да

btfsc PIR1,6 ; Нет. Прерывание АЦП?

goto ADCINT  ; Да

btfsc PIR1,1 ; Нет. Прерывание таймера 2?

goto TMR2INT ; Да

goto END_PRER   ; Нет, выйти из прерывания.

; ************************************************************************

END_PRER   ;восстановление стека

swapf STATUS_COPY,W ;Обменять полубайты STATUS и записать в W

movwf  STATUS  ;w-заносим в STATUS

swapf W_COPY,F ;обменять полубайты в регистре W_COPY и сохранить в W_COPY

swapf W_COPY,W ;обменять полубайты в регистре W_COPY и востановить регистр W без воздействия на STATUS

retfie

;======================================================================== 

TMR1INT

bcf CH   ; Выключить ключ фазы С

bcf T1   ; Выключить таймер 1

bcf PIR1,0  ; Сбросить флаг прерывания

goto END_PRER

; ************************************************************************

ADCINT

bcf PIR1,6      ; Сброс флага прерывания

movf ADRESH,w ; Считывание результата преобразования

sublw 0x1A

btfsc _C  ; Напряжение меньше 1В?

goto BOL  ; Нет

movf 0x0A,w   ; Да, коефициент деления 10

movwf K

goto END_PRER

BOL

movf ADRESH,w

movwf DELIT  ; результат = делитель

movf 0xFF,w

movwf DELIM  ; загружаем делимое

call DIV

movf RH,w

movwf K   ; результат = коэфициент деления

goto END_PRER

; ************************************************************************

TMR2INT

bsf CH   ; включаем фазу С

bcf PIR1,1  ; Сброс флага прерывания

movf A_PH,w

call sinus  ; предварительная выборка фазы А

clrf PCLATH

movwf DELIM

movf K,w

movwf DELIT

call DIV  ; делим на К

movf RH,w

btfsc AL  ; положительная полуволна?

sublw 0xFF  ; Нет, вычитаем W из FF

movwf CCPR1L ; Загружаем значение скважности Фазы А

movf B_PH,w

call sinus  ; предварительная выборка фазы В

clrf PCLATH

movwf DELIM

movf K,w

movwf DELIT

call DIV  ; делим на К

movf RH,w

btfsc BL  ; положительная полуволна?

sublw 0xFF  ; Нет, вычитаем W из FF

movwf CCPR2L ; Загружаем значение скважности фазы В

movf C_PH,w

call sinus  ; предварительная выборка фазы С

clrf PCLATH

movwf DELIM

movf K,w

movwf DELIT

call DIV  ; делим на К

movf KORR,w

subwf RH,0  ; Поправка на выполнение программы

btfsc _C  ; Был заем?

goto COFF  ; Да, сброс фазы С

btfss CL        ; Положительная полуволна?

sublw 0xFF  ; Да, вычитаем W из FF

movwf TMR1H  ; загружаем длительность фазы С

call CSET

movf 0x21,w

movwf T1CON  ; Включаем таймер 1

bsf ADCON0,2 ; Запуск преобразования АЦП

goto END_PRER

; ************************************************************************

COFF

bcf CH   ; сбрасываем фазу С

call CSET

bsf ADCON0,2 ; Запуск преобразования АЦП

goto END_PRER

; ************************************************************************

CSET

movf 0x31,w

incf A_PH,1  ; инкрементируем счетчик фазы А

subwf A_PH,0

btfsc _Z  ; Счетчик переполнен?

call TRIGA  ; Да, переключаем полуволны

incf B_PH,1  ; инкрементируем счетчик фазы B

subwf B_PH,0

btfsc _Z  ; Счетчик переполнен?

call TRIGB  ; Да, переключаем полуволны

incf C_PH,1  ; инкрементируем счетчик фазы C

subwf C_PH,0

btfsc _Z  ; Счетчик переполнен?

call TRIGC  ; Да, переключаем полуволны

Информация о работе Проектирование микроконтроллерных устройств