Проектирование автомата световых эффектов типа "бегающая тень" на базе микроконтроллера PIC16C74В

Автор: Пользователь скрыл имя, 21 Ноября 2012 в 16:55, курсовая работа

Краткое описание

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

Файлы: 1 файл

5 Основная часть.docx

— 148.25 Кб (Скачать)

1 Основные  положения 

1.1 Структурная схема управления автоматом световых эффектов


Структурная схема системы управления автоматом световых эффектов на базе микроконтроллера PIC16C74В представлена на рисунке 1.


 

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

 

1.2 Принципиальная электрическая схема автомата световых эффектов

Принципиальная электрическая схема системы управления автоматом световых эффектов на базе микроконтроллера PIC16C74В представлена на рисунке 2.

 

Рисунок 2 − Принципиальная электрическая схема управления автомата световых эффектов.

 

1.3 Алгоритм работы микропрограммы  в виде блок-схемы

Алгоритм работы микропрограммы в виде блок-схемы представлен  ниже

1.4 Написание текста микропрограммы


Микропрограмма (англ. firmware, «прошивка») — программное обеспечение, встроенное («зашитое») в аппаратное устройство. Часто представляется в виде микросхем флеш-ПЗУ или в виде файлов образов микропрограммы, которые могут быть загружены в аппаратное обеспечение.

Под микропрограммой понимается следующее:

Компьютерная программа, записанная на интегральной микросхеме ПЗУ и управляющая работой  аппаратного обеспечения.

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

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

Зачастую различные по возможностям и цене приборы отличаются лишь версиями микропрограммы. Для  обозначения версии микропрограммы используется номер партии аппаратного  обеспечения или другие специализированные идентификаторы; часто смена «прошивки» производится изготовителем без  уведомления потребителя.

Микрограмму можно писать в программе-компиляторе PCWHD Compiler  версии 4.104. PCWHD Compiler  используется для компиляции кода, написанного на языке программирования С++.

C++ (Си++) — компилируемый статически типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования, но, в сравнении с его предшественником — языком Си, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

 

 


Текст микропрограммы в PCWHD Compiler выглядит следующим образом:

 

#include <string.h>

char s1[30]="dir";

char s2[30]="fas";

char s3[30]="slo";

char s[30];

int b,c,i,a,d;

int8 m,q=0b11111111;

 

 

#int_TIMER1

void del(){

if(b==0)

setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_1 );

if(b==1)

setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_2 );

if(b==2)

setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_4 );

if(b==3)

setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_8 );

 

if(c==0){

m=0b00000001;

m<<=i;

   if(a==0){

   output_D(q);

   output_B(q^m);}

   if(a==1){

   output_B(q);

   output_D(q^m);}

 

     i=i+1;

         if(a==0&&i==8){

          i=0;

          a=1;


     }

              if(a==1&&i==8){

              a=0;

                i=0;

                }

   }

}

 

 

#int_RDA

void rda(){

gets(s);

   if(strcmp(s1,s)==0)

   {d=d+1;

   i=8-i-1;}

   if(d>1)d=0;

   if(d==0)c=0;

   if(d==1)c=1;

if(strcmp(s2,s)==0)

   b=b-1;

  if(strcmp(s3,s)==0)

   b=b+1;

 if(b>3)b=b-1;

if(b<0)b=0;

printf ("%s\n",s);

}

 

void main()

{

enable_interrupts(GLOBAL);

 

enable_interrupts(INT_RDA);

enable_interrupts(INT_TIMER1);

 

 


   setup_adc_ports(NO_ANALOGS);

   setup_adc(ADC_CLOCK_DIV_2);

   setup_psp(PSP_DISABLED);

   setup_spi(SPI_SS_DISABLED);

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

   setup_timer_1(T1_INTERNAL);

   setup_timer_2(T2_DISABLED,0,1);

 

   // TODO: USER CODE!!

while(1){

delay_ms(200);

 

   }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 Экспериментальная Часть

Вся экспериментальная часть проводится в программе Proteus 7 Professional SP3 от компании Labcenter Electronics.


Собирается схема в рабочем окне программы (Рисунок 3).

Рисунок 3 − Схема в рабочем окне Proteus.


Информация о работе Проектирование автомата световых эффектов типа "бегающая тень" на базе микроконтроллера PIC16C74В