Автор работы: Пользователь скрыл имя, 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
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего
Профессионального образования
САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ
УНИВЕРСИТЕТ имени академика С.П.КОРОЛЁВА
Кафедра РТУ
Дисциплина «Цифровые устройства»
Проектирование микроконтроллер
Выполнил: Карюхин Д. А.
Группа: 5402
Руководитель проекта: Кудрявцев И. А.
Дата сдачи на проверку:
Оценка и дата защиты:
Самара
2006
ЗАДАНИЕ №23
Разработать формирователь трехфазного гармонического напряжения со следующим параметрами:
Амплитуда напряжения – (1 - 10)В;
Частота сигнала – 50Гц±1%;
Максимальная погрешность задания напряжения – 1%;
Задание напряжения - потенциометром;
Минимальное сопротивление нагрузки – 10 Ом.
Курсовой проект.
Пояснительная записка: 18с., 5 рис., 0 табл., 6 источников.
Графическая документация: 1л. А3, 1л. А4
ИНВЕРТОР, МИКРОКОНТРОЛЛЕР, БЛОК ПИТАНИЯ, АЛГОРИТМ, ПРОГРАММА
Произведены выбор функциональной и принципиальной схем инвертора; выбор микроконтроллера и вспомогательных элементов. Произведён необходимый расчёт токов и напряжений. Разработан необходимый источник питания. Составлен алгоритм и написана программа для микроконтроллера.
СОДЕРЖАНИЕ
Введение…………………………………………………………
1. Анализ задания, составление описания и блок-схемы устройства…………..5
2. Выбор компонентов схемы и их описание…………………………………….6
2.1 Выбор микроконтроллера…...…………………………
2.2 Выбор вспомогательных элементов конструкции..…………………….8
2.2.1 Входная цепь…………………………………………………………..8
2.2.2 Потенциометр..…………………………………………
2.2.3 Блок питания………………………………………………………….
2.2.5 Прочие элементы схемы…….. ………………………………………8
3. Алгоритм………………………………………….……………
4 Программа на ассемблере…………………
Заключение……...………………………………………
Список использованных
источников……………………………………………..
Приложение А
Введение
В современной технике постепенно становится незаменимым использование цифровых устройств. При нынешнем развитии цифровых технологий, позволяется уменьшать размеры оборудования при решении огромного числа задач, в том числе автоматизации, контроля и управления производством, приёма, обработки и хранения различных сигналов, различные типы измерительных приборов и пр.
Одним важным классом цифровых устройств является микроконтроллеры, устройства управления объектами, который представляет собой стандартный массовый (относительно недорогой) логический блок, конкретное назначение которого определяет сам пользователь с помощью программного обеспечения.
В данном курсовом проекте будет рассмотрены и рассмотрены принципы работы инвертора, спроектирована принципиальная схема, написана управляющая программа на языке Assembler.
1 Анализ задания, составление описания и блок-схемы устройства
Рисунок 1 – Структурная схема инвертора.
Блок-схема устройства, приведённая на рисунке 1, состоит из :
- Микроконтроллер – PIC16F873, выбран в виду наличия АЦП, модулей ШИМ, достаточное количество выводов
- Блок питания – цепь формирующая необходимые напряжения для нормального и стабильного функционирования устройства
- цепи тактирования
и сброса – предназначены для
нормального функционирования
- Потенциометр – задает амплитуду напряжения, требуемую на выходе инвертора
- 3-хфазный инвертор – необходим для формирования гармонических колебаний на выходе устройства
Принцип действия устройства :
- потенциометром задается амплитуда выходного напряжения, которая фиксируется встроенным модулем АЦП
- с использованием двух встроенных модулей ШИМ и таймеров на транзисторах с плавающей точкой реализуются три синусоидальных сигнала с разностью фаз 120º требуемой амплитуды
- другие три транзистора необходимы для задания положительной и отрицательной полуволн
2 Выбор компонентов схемы и их описание
2.1 Выбор микроконтроллера
Главным компонентом данного цифрового устройства является микроконтроллер. И от того, что входит в его состав, его характеристик будет зависеть работа всей схемы, скорость и качество обработки данных. Для реализации заданного устройства, нам необходимы : аналогово-цифровой преобразователь, возможность реализации широтно-импульсной модуляции, простая и доступная система команд. Под такие параметры хорошо подходит PIC16F873. Документация и основные принципы работы широко распространены и легко доступны.
Микроконтроллеры 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 ; Да, переключаем полуволны
Информация о работе Проектирование микроконтроллерных устройств