Восьмиканальный регулятор тока с управлением от PC - Курсовая работа

бесплатно 0
4.5 92
Выбор и обоснование структурной и принципиальной схем системы управления освещением. Алгоритм работы микроконтроллера. Три основных режима: полное выключение освещения, заданные темы, диммер освещения. Алгоритм работы программы на персональном компьютере.


Аннотация к работе
Цель - автоматизировать внутренние «домашние» инженерные системы - освещение, климат, системы безопасности, мультимедийные компоненты (домашний кинотеатр и др.). Спроектировать систему управления освещением, состоящую из восьми ламп, на PIC16F877 контроллере, с возможность регулирования яркостью освещения и изменением режимов освещения с PC. Так же необходимо управляющее устройство, которое будет обрабатывать и исполнять необходимые операции, такие как выбор режима работы системы освещения и осуществление регулирования яркостью освещения - для этих целей нам необходим «микроконтроллер». Что бы осуществить управление всей системой необходимо программное приложение, которое облегчит понимание предназначения тех или иных настроек системы и визуализирует процесс работы системы - для этих целей нам необходимо программное приложение выполненное на PC. Помимо этого, для работы всех этих устройств необходимо питание, подводимое ко всей схеме - на структурной схеме это блок «питание».В ходе данной работы, была спроектирована система управления освещения, состоящая из восьми светодиодных ламп, с функцией управления регулирования уровнем освещения (диммером), так же была написана программа для микроконтроллера PIC16F877, реализующая управление системой освещения с PC, и возможностью регулирования уровня яркости освещения.

Введение
Умный дом - понятие, применимое больше к частным квартирам и коттеджам.

Цель - автоматизировать внутренние «домашние» инженерные системы - освещение, климат, системы безопасности, мультимедийные компоненты (домашний кинотеатр и др.).

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

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

Задание

Спроектировать систему управления освещением, состоящую из восьми ламп, на PIC16F877 контроллере, с возможность регулирования яркостью освещения и изменением режимов освещения с PC.

Выбор и обоснование структурной схемы

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

Поэтому, так как требуется создать систему освещения, то соответственно необходимы источники освещения - на структурной схеме это блок «источники освещения», в последствии это будут светодиодные лампы (так же возможно использование любых других ламп). Так же необходимо управляющее устройство, которое будет обрабатывать и исполнять необходимые операции, такие как выбор режима работы системы освещения и осуществление регулирования яркостью освещения - для этих целей нам необходим «микроконтроллер». Что бы осуществить управление всей системой необходимо программное приложение, которое облегчит понимание предназначения тех или иных настроек системы и визуализирует процесс работы системы - для этих целей нам необходимо программное приложение выполненное на PC. Помимо этого, для работы всех этих устройств необходимо питание, подводимое ко всей схеме - на структурной схеме это блок «питание».

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

Выбор и обоснование принципиальной схемы

Рис.2. Принципиальная схема.

Для реализации проекта нам необходимо организовать связь микроконтроллера PIC16F877 c PC, для этого будем использовать стандарт RS-232 и интерфейсную микросхему MAX232, схема подключения приведена на рисунке 2. Так же необходимо подать питание на микроконтроллер и микросхему MAX232, для этого необходимо подсоединить выводы питания к микросхемам, как показано выше. Для управления силовыми ключами (для реализации системы освещения) будем использовать PORT B микроконтроллера, настроенный на вывод. Силовые ключи необходимы для коммутации ламп с источником питания.

Алгоритм работы микроконтроллера

Как видно из алгоритма программы, в начале идет инициализация микроконтроллера, т.е. задание необходимых настроек для корректной работы, таких как настройка портов на ввод/вывод, установка коэффициента предделителя, настройка таймеров, задание исходных данных, которые будут необходимы для работы программы и др.

Затем следует проверка установки бита принятых данных, если этот бит сброшен, значит новых данных нет, и программа продолжает работать в предыдущем режиме, если же бит установлен («1»), то переходим к следующему шагу работы программы.

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

После этого начинаем обработку полученных(уже сохраненных) данных, на выходе имеем: номер выбранного режима работы или выбранной заранее заданной темы освящения.

По полученным данным осуществляем переход к выбранному режиму/теме.

Имеется 3 основных перехода: 1)«Полное выключение освещения»: Подает на порт вывода все нули, т.е. гасим лампы и непрерывно осуществляем проверку бита получения данных, если бит не устанавливается, то продолжаем проверку, если же бит установился в единицу, то переходим к шагу считывания данных и записи их в заранее выбранную ячейку памяти.

2)«Заданные темы»: В микроконтроллере уже заложены данные о нескольких темах, с выбранным уровнем яркости освящения и номерами ламп которые должны быть включены. В соответствии с полученными данными выбирается одна из тем и осуществляется переход к ней. Затем осуществляется обработка заранее заданных параметров темы и настройка микроконтроллера на работы в выбранной теме. Запуска темы в работы микроконтроллера осуществляем проверку бита получения данных, если бит не устанавливается, то продолжаем работу в заданном режиме и в каждом цикле осуществляем проверку, если же бит установился в единицу, то переходим к шагу считывания данных и записи их в заранее выбранную ячейку памяти.

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

Алгоритм работы программы на PC

При включении программы происходит проверка подключения программы к com-порту компьютера, при отсутствии соединения выдается сообщение об ошибке, а при подключении, сообщение об удачном соединении.

При нажатии на 1 из кнопок осуществляется визуальное отображение выбранной темы, а так же отсылаются данных на com-порт, которые определяют режим работы микроконтроллера.

Если выбрана тема «ON», то при изменении положения курсора на полосе прокрутки изменяется степень освящения, так же происходит отображение текущей степени освящения.

Вывод
В ходе данной работы, была спроектирована система управления освещения, состоящая из восьми светодиодных ламп, с функцией управления регулирования уровнем освещения (диммером), так же была написана программа для микроконтроллера PIC16F877, реализующая управление системой освещения с PC, и возможностью регулирования уровня яркости освещения. Данная программа была проверена и отлажена в симуляторе MPLAB-ICD. Так же проведено испытание работоспособности проекта на эмуляционной плате MPLAB-ICD header с микроконтроллером PIC16F877-20/P и демонстрационной плате комплекта MPLAB-ICD.

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

Список литературы
1. Курс лекций по МПТ. Преподаватель Г.С. Воробьева. 2010 год.

2. http://www.microchip.ru/d-sheets/30292.htm:pic16f877

3. http://www.microchip.com

4. http://ww1.microchip.com

5. http://ru.wikipedia.org/

6. http://monitor.net.ru

7. http://www.pcports.ru/articles/pic8.php

8. http://www.pcports.ru/articles/pic9.php

9. http://www.delphisources.ru/pages/faq/base/about_port.html

10. http://www.askdev.ru/pascal-delphi/2675/Delphi-Comport-Component/

Приложение №1

Текст программы для PIC16F877 list p=16f877 include "p16f877.inc" org 0 nop goto start org 0x04

RETFIE org 0x50 start banksel PORTC clrf PORTC banksel PORTB clrf PORTB banksel TRISC movlw b"11000000" movwf TRISC movlw B"10000000" movwf OPTION_REG movlw B"00000000" movwf INTCON bcf STATUS,RP0 movlw B"00000000" movwf 0x76 movlw B"11111111" movwf 0x77 movlw b"10010000" movwf RCSTA banksel SPBRG movlw 0x19 movwf SPBRG movlw B"00100100" movwf TXSTA banksel RCSTA

BCF PIR1,RCIF movf RCREG,W

Zero

BTFSC PIR1,RCIF goto Main incf PORTC,f goto Zero

Main movf RCREG,W movwf 0x7A BCF PIR1,RCIF andlw B"00001111"

BTFSC STATUS,Z goto OFF movf 0x7A,W andlw B"00000001"

BTFSS STATUS,Z goto ON movf 0x7A,W andlw B"00000010"

BTFSS STATUS,Z goto Tem1 movf 0x7A,W andlw B"00000100"

BTFSS STATUS,Z goto Tem2 movf 0x7A,W andlw B"00001000"

BTFSS STATUS,Z goto Tem3 goto Tem4

OFF movf 0x76,W movwf PORTB

OFF1

BTFSC PIR1,RCIF goto Main goto OFF1

ON movf 0x7A,W andlw B"11110000" movwf 0x78 subwf 0x77,W movwf 0x79

M1 movf 0x77,W movwf PORTB movf 0x78,W

M2 btfss INTCON,T0IF goto M2 bcf INTCON,T0IF comf 0x78,f comf 0x78,f btfsc STATUS,Z goto M3 decfsz 0x78,f goto M2

M3 movf 0x76,W movwf PORTB movf 0x79,W

M4 btfss INTCON,T0IF goto M4 bcf INTCON,T0IF comf 0x79,f comf 0x79,f btfsc STATUS,Z goto M5 decfsz 0x79,f goto M4

M5

BTFSC PIR1,RCIF goto Main goto M1

Tem1 movlw B"10101010" movwf PORTB movlw B"00010000" movwf 0x78 movf 0x78,W subwf 0x77,W movwf 0x79

T1M2 btfss INTCON,T0IF goto T1M2 bcf INTCON,T0IF comf 0x78,f comf 0x78,f btfsc STATUS,Z goto T1M3 decfsz 0x78,f goto T1M2

T1M3 movf 0x76,W movwf PORTB movf 0x79,W

T1M4 btfss INTCON,T0IF goto T1M4 bcf INTCON,T0IF comf 0x79,f comf 0x79,f btfsc STATUS,Z goto T1M5 decfsz 0x79,f goto T1M4

T1M5

BTFSC PIR1,RCIF goto Main goto Tem1

Tem2 movlw B"11110000" movwf PORTB movlw B"01100000" movwf 0x78 movf 0x78,W subwf 0x77,W movwf 0x79

T2M2 btfss INTCON,T0IF goto T2M2 bcf INTCON,T0IF comf 0x78,f comf 0x78,f btfsc STATUS,Z goto T2M3 decfsz 0x78,f goto T2M2

T2M3 movf 0x76,W movwf PORTB movf 0x79,W

T2M4 btfss INTCON,T0IF goto T2M4 bcf INTCON,T0IF comf 0x79,f comf 0x79,f btfsc STATUS,Z goto T2M5 decfsz 0x79,f goto T2M4

T2M5

BTFSC PIR1,RCIF goto Main goto Tem2

Tem3 movlw B"00001111" movwf PORTB movlw B"10000000" movwf 0x78 movf 0x78,W subwf 0x77,W movwf 0x79

T3M2 btfss INTCON,T0IF goto T3M2 bcf INTCON,T0IF comf 0x78,f comf 0x78,f btfsc STATUS,Z goto T3M3 decfsz 0x78,f goto T3M2

T3M3 movf 0x76,W movwf PORTB movf 0x79,W

T3M4 btfss INTCON,T0IF goto T3M4 bcf INTCON,T0IF comf 0x79,f comf 0x79,f btfsc STATUS,Z goto T3M5 decfsz 0x79,f goto T3M4

T3M5

BTFSC PIR1,RCIF goto Main goto Tem3

Tem4 movlw B"11001100" movwf PORTB movlw B"11110000" movwf 0x78 movf 0x78,W subwf 0x77,W movwf 0x79

T4M2 btfss INTCON,T0IF goto T4M2 bcf INTCON,T0IF comf 0x78,f comf 0x78,f btfsc STATUS,Z goto T4M3 decfsz 0x78,f goto T4M2

T4M3 movlw B"00110011" movwf PORTB movf 0x78,W

T4M4 btfss INTCON,T0IF goto T4M4 bcf INTCON,T0IF comf 0x78,f comf 0x78,f btfsc STATUS,Z goto T4M5 decfsz 0x78,f goto T4M4

T4M5

BTFSC PIR1,RCIF goto Main goto Tem4 end

Приложение №2 управление освещение схема микроконтроллер

Текст программы для PC unit Unit1;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, EXTCTRLS, STDCTRLS, COMCTRLS, CPDRV;

type

TFORM1 = class(TFORM)

Button1: TBUTTON;

Shape1: TSHAPE;

Shape2: TSHAPE;

Shape3: TSHAPE;

Shape4: TSHAPE;

Shape5: TSHAPE;

Shape6: TSHAPE;

Button2: TBUTTON;

Shape7: TSHAPE;

Shape8: TSHAPE;

Button3: TBUTTON;

Button4: TBUTTON;

TRACKBAR1: TTRACKBAR;

Label1: TLABEL;

Label2: TLABEL;

Button5: TBUTTON;

Button6: TBUTTON;

COMPORT: TCOMMPORTDRIVER;

Label3: TLABEL;

Label4: TLABEL;

Label5: TLABEL;

procedure Button1Click(Sender: TOBJECT);

procedure Button2Click(Sender: TOBJECT);

procedure Button3Click(Sender: TOBJECT);

procedure Button4Click(Sender: TOBJECT);

procedure TRACKBAR1Change(Sender: TOBJECT);

procedure Button5Click(Sender: TOBJECT);

procedure Button6Click(Sender: TOBJECT);

procedure FORMCREATE(Sender: TOBJECT);

procedure FORMCLOSE(Sender: TOBJECT; var Action: TCLOSEACTION);

private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TFORM1;

x: integer;

a, b, d,c: Byte;

y, n: string;

implementation

{$R *.dfm} procedure TFORM1.Button1Click(Sender: TOBJECT);

begin shape1.Brush.Color:=clyellow;

shape2.Brush.Color:=clyellow;

shape3.Brush.Color:=clyellow;

shape4.Brush.Color:=clyellow;

shape5.Brush.Color:=clyellow;

shape6.Brush.Color:=clyellow;

shape7.Brush.Color:=clyellow;

shape8.Brush.Color:=clyellow;

Label1.Caption:="ON";

a:=01;

Comport.SENDBYTE($01);

{ Comport.SENDBYTE($32);} end;

procedure TFORM1.Button2Click(Sender: TOBJECT);

begin shape1.Brush.Color:=clyellow;

shape2.Brush.Color:=clyellow;

shape3.Brush.Color:=clyellow;

shape4.Brush.Color:=clyellow;

shape5.Brush.Color:=clblack;

shape6.Brush.Color:=clblack;

shape7.Brush.Color:=clblack;

shape8.Brush.Color:=clblack;

Label1.Caption:="Тема №2";

{a:=00000100;}

Comport.SENDBYTE($04);

end;

procedure TFORM1.Button3Click(Sender: TOBJECT);

begin shape1.Brush.Color:=clblack;

shape2.Brush.Color:=clblack;

shape3.Brush.Color:=clblack;

shape4.Brush.Color:=clblack;

shape5.Brush.Color:=clyellow;

shape6.Brush.Color:=clyellow;

shape7.Brush.Color:=clyellow;

shape8.Brush.Color:=clyellow;

Label1.Caption:="Тема №3";

{a:=00001000;}

Comport.SENDBYTE($08) end;

procedure TFORM1.Button4Click(Sender: TOBJECT);

begin shape1.Brush.Color:=clblack;

shape2.Brush.Color:=clblack;

shape3.Brush.Color:=clblack;

shape4.Brush.Color:=clblack;

shape5.Brush.Color:=clblack;

shape6.Brush.Color:=clblack;

shape7.Brush.Color:=clblack;

shape8.Brush.Color:=clblack;

Label1.Caption:="OFF";

{a:=00000000;}

Comport.SENDBYTE($00) end;

procedure TFORM1.TRACKBAR1Change(Sender: TOBJECT);

begin x:=TRACKBAR1.Position;

c:=x*16;

y:=Inttostr(c);

n:=INTTOHEX(c,2);

Label2.Caption:=n;

Label3.Caption:=Inttostr(x);

b:= a or c;

Comport.SENDBYTE(b);

end;

procedure TFORM1.Button5Click(Sender: TOBJECT);

begin shape1.Brush.Color:=clblack;

shape2.Brush.Color:=clyellow;

shape3.Brush.Color:=clblack;

shape4.Brush.Color:=clyellow;

shape5.Brush.Color:=clblack;

shape6.Brush.Color:=clyellow;

shape7.Brush.Color:=clblack;

shape8.Brush.Color:=clyellow;

Label1.Caption:="Тема №1";

{a:=00000010;}

Comport.SENDBYTE($02) end;

procedure TFORM1.Button6Click(Sender: TOBJECT);

begin shape1.Brush.Color:=clblack;

shape2.Brush.Color:=clblack;

shape3.Brush.Color:=clyellow;

shape4.Brush.Color:=clyellow;

shape5.Brush.Color:=clblack;

shape6.Brush.Color:=clblack;

shape7.Brush.Color:=clyellow;

shape8.Brush.Color:=clyellow;

Label1.Caption:="Тема №4";

{a:=00010000;}

{Comport.SENDBYTE($10)} end;

procedure TFORM1.FORMCREATE(Sender: TOBJECT);

begin

Comport.Connect;

if (Comport.Connected) then Label5.Caption:="COMPORT Connected";

end;

procedure TFORM1.FORMCLOSE(Sender: TOBJECT; var Action: TCLOSEACTION);

begin

Comport.Disconnect;

end;

end.

Приложение №3

Особенности ядра микроконтроллера: · Высокопроизводительный RISC-процессор

· Всего 35 простых для изучения

· Все инструкции исполняются за один такт, кроме инструкций перехода, выполняемых за два такта

· Скорость работы: тактовая частота до 20 МГЦ;

· минимальная длительность такта 200 нс

· FLASH память программ до 8K x 14 слов

· Память данных (ОЗУ) до 368 x 8 байт

· ЭСППЗУ память данных до 256 x 8 байт

· Совместимость цоколTвки с PIC16C73/74/76/77

· Механизм прерываний (до 14 внутренних/внешних источников прерываний)

· Восьмиуровневый аппартный стек

· Прямой, косвенный и относительный режимы адресации

· Сброс при включении питания (POR)

· Таймер включения (PWRT) и таймер запуска генератора (OSC)

· Сторожевой таймер (WDT) с собственным встроенным RC-генератором для повышения надежности работы

· Программируемая защита кода

· Режим экономии энергии (SLEEP)

· Выбираемые режимы тактового генератора

· Экономичная, высокоскоростная технология КМОП FLASH/ЭСППЗУ

· Полностью статическая архитектура

· Программирование на плате через последовательный порт с использованием двух выводов

· Для программирования требуется только единственный источник питания 5В

· Отладка на плате с использованием двух выводов

· Доступ процессора на чтение/запись памяти программ

· Широкий диапазон рабочих напряжений питания: от 2,0В до 5,5В

· Сильноточные линии ввода/вывода: 25 МА

· Коммерческий и промышленный температурные диапазоны

· Низкое потребление энергии: · - < 2 МА при 5 В, 4 МГЦ

· - 20 МКА (типичное значение) при 3 В, 32 КГЦ

· - < 1 МКА (типичное значение) в режиме STANDBY

Приложение №4

Периферия: · Timer0: 8-разрядный таймер/счетчик с 8-разрядным предварительным делителем

· Timer1: 16-разрядный таймер/счетчик с предварительным делителем, может вести счTт во время спящего режима от внешнего генератора

· Timer2: 8-разрядный таймер/счетчик с 8-разрядным регистром периода, предварительным и выходным делителем

· 2 модуля захвата, сравнения, ШИМ

· Захват 16-ти разрядов, максимальное разрешение 12,5 нс

· Сравнение 16-ти разрядов, максимальное разрешение 200 нс

· ШИМ с максимальным разрешением 10 разрядов

· 10-битный многоканальный аналого-цифровой преобразователь

· Синхронный последовательный порт (SSP) с интерфейсами SPI (с Master-режимом) и I2C (с режимами Master/Slave)

· Универсальный синхронно-асинхронный приемопередатчик (USART/SCI) с обнаружением 9-разрядного адреса

· Встроенный генератор опорного напряжения

· Параллельный 8-битный Slave-порт (PSP) со внешними сигналами управления RD, WR и CS (только в 40/44-выводных корпусах)

· Программируемая схема сброса при падении напряжения питания (BOR)

Размещено на .ru
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?