Автор: Пользователь скрыл имя, 21 Ноября 2012 в 16:55, курсовая работа
Основная часть работы без аннотации, введения, заключения и т. д. Приведен листинг прошивки микроконтроллера, а также схема подключения всех элементов в Proteus.
1 Основные положения
1.1 Структурная схема управления автоматом световых эффектов
Структурная схема системы управления автоматом световых эффектов на базе микроконтроллера PIC16C74В представлена на рисунке 1.
Рисунок 1 − Структурная схема.
1.2 Принципиальная электрическая схема автомата световых эффектов
Принципиальная электрическая схема системы управления автоматом световых эффектов на базе микроконтроллера PIC16C74В представлена на рисунке 2.
Рисунок 2 − Принципиальная электрическая схема управления автомата световых эффектов.
1.3 Алгоритм работы
Алгоритм работы микропрограммы в виде блок-схемы представлен ниже
1.4 Написание текста микропрограммы
Микропрограмма (англ. firmware, «прошивка») — программное обеспечение, встроенное («зашитое») в аппаратное устройство. Часто представляется в виде микросхем флеш-ПЗУ или в виде файлов образов микропрограммы, которые могут быть загружены в аппаратное обеспечение.
Под микропрограммой понимается следующее:
Компьютерная программа, записанная на интегральной микросхеме ПЗУ и управляющая работой аппаратного обеспечения.
Программа, записанная на той же микросхеме, что и процессор, и превращающая его в специализированный для управления аппаратным обеспечением (микроконтроллер).
Программа по тактам, управляющая
ресурсами вычислительного
Зачастую различные по возможностям и цене приборы отличаются лишь версиями микропрограммы. Для обозначения версии микропрограммы используется номер партии аппаратного обеспечения или другие специализированные идентификаторы; часто смена «прошивки» производится изготовителем без уведомления потребителя.
Микрограмму можно писать в программе-компиляторе 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|
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.