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

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

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 17.05.2011
Размер файла 568,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Федеральное агентство по образованию

Национальный Исследовательский

"Томский Политехнический Университет"

Институт - Неразрушающего Контроля

Кафедра - Промышленной и Медицинской Электроники

Направление - Электроника и Микроэлектроника

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

по дисциплине Микропроцессорные системы

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

Студент группы 1А71

Королёв А.В.

Научный руководитель

Пестунов Д.А.

Томск - 2011

Введение

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

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

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

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

Задание

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

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

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

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

Размещено на http://www.allbest.ru/

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

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

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

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

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

Размещено на http://www.allbest.ru/

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

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

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

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

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

Имеется 3 основных перехода:

1)«Полное выключение освещения»:

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

2)«Заданные темы»:

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

3)«Диммер освящения»:

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

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

Размещено на http://www.allbest.ru/

При включении программы происходит проверка подключения программы к 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-Com-port-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)

Размещено на Allbest.ru


Подобные документы

  • Физические основы работы акустического светорегулятора. Диммер - переключатель мощности подключенного к нему бытового осветительного электроприбора. Типовые схемы построения регуляторов освещения. Способы управления работой диммера. Схема печатной платы.

    контрольная работа [725,3 K], добавлен 06.08.2013

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

    курсовая работа [2,4 M], добавлен 27.12.2009

  • Регулятор освещения с дистанционным управлением. Технические характеристики устройства и сравнение с аналогами. Разработка структурной схемы схема управляемого инвертора. Выбор элементной базы. Фильтр питания модуля. Схема электрическая принципиальная.

    курсовая работа [754,9 K], добавлен 16.05.2014

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

    курсовая работа [3,3 M], добавлен 26.06.2016

  • Схемотехнические решения построения устройств дежурного освещения. Анализ работы автономного источника дежурного освещения с таймером, построение и описание его структурной и принципиальной схемы. Описание конструкции печатной платы и сборочного чертежа.

    курсовая работа [2,0 M], добавлен 10.07.2014

  • Разработка структурной и принципиальной схем электронного тахометра. Изучение принципа работы датчика магнитного поля. Выбор микроконтроллера. Проектирование управляющей программы для микроконтроллера. Адаптация устройства к промышленному применению.

    курсовая работа [1,1 M], добавлен 22.01.2015

  • Разработка электронного кодового замка с использованием микроконтроллера PIC16F676. Назначение отдельных функциональных блоков. Возможные варианты структурных схем. Обоснование выбора структурной схемы устройства. Алгоритм работы структурной схемы.

    курсовая работа [334,9 K], добавлен 18.06.2012

  • Исследование режима торможения до полной стадии остановки двигателя постоянного тока с независимым возбуждением. Описание микроконтроллера Atmega 128. Алгоритм управления и исследуемого режима работы. Формализация задачи и кодирование входящих сигналов.

    курсовая работа [224,6 K], добавлен 30.05.2015

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

    курсовая работа [84,8 K], добавлен 14.03.2014

  • Описание функционирования системы, предназначенной для освещения больших елочных гирлянд. Элементы управляющего блока. Синтез функциональной и принципиальной схемы. Временная диаграмма работы системы. Оценка аппаратурных затрат и потребляемой мощности.

    курсовая работа [296,1 K], добавлен 10.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.