Проектирование микроконтроллерных устройств
Курсовая работа, 11 Августа 2013, автор: пользователь скрыл имя
Описание работы
В современной технике постепенно становится незаменимым использование цифровых устройств. При нынешнем развитии цифровых технологий, позволяется уменьшать размеры оборудования при решении огромного числа задач, в том числе автоматизации, контроля и управления производством, приёма, обработки и хранения различных сигналов, различные типы измерительных приборов и пр.
Одним важным классом цифровых устройств является микроконтроллеры, устройства управления объектами, который представляет собой стандартный массовый (относительно недорогой) логический блок, конкретное назначение которого определяет сам пользователь с помощью программного обеспечения.
Содержание работы
Введение…………………………………………………………………………....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
ИНВЕРТОР, МИКРОКОНТРОЛЛЕР, БЛОК ПИТАНИЯ, АЛГОРИТМ, ПРОГРАММА
Произведены выбор функциональной и принципиальной схем инвертора; выбор микроконтроллера и вспомогательных элементов. Произведён необходимый расчёт токов и напряжений. Разработан необходимый источник питания. Составлен алгоритм и написана программа для микроконтроллера.
СОДЕРЖАНИЕ
Введение…………………………………………………………
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. Документация и основные принципы работы широко распространены и легко доступны.
- Емкость перепрограммируемой 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 ; Да, переключаем полуволны