Технические разделы

Основные конструкции и процедуры, используемые для написания программы

void buzzer(void)

{

….=0x80;L=0x80;

….CON=0x0f; //включение(1){=0;(select==0)

{+=1;=5;=PR2;(scroll==0) goto end;

} //if select(scroll==0)

{//inc dcL+=1;=CCPR1L;=12;(select==0) goto end;

}(n!=0) {(temph,tempv_char);(temph<10) {tempb_char[n]=zero[0]; tempb_char[n+1]=zero[0]; tempb_char[n+2]=tempv_char[0];}

…._1();(i=0;i<ptr_count;i++)

{…._write();

} //for i

} //if n!=0

};//while: CCP1CON=0; //выключение}

(). Функция реализует работу термометра с помощью модуля SSP и термодатчика TC74. Сперва инициализируем MSSP после чего вносим последовательность изменений в управляющие регистры модуля SSP, ч то в свою очередь поток команд от MSSP к TC74 и обратно. В результате мы получаем текущее значение температуры, которое и выводим на LCD. Функция выполняется пока не нажата S3.

void temp (void)

{….

TRISCbits.TRISC3=1; //initialize MSSP module

TRISCbits.TRISC4=1;

SSPCON1=0b00101000;

SSPSTATbits.SMP=1;

SSPADD=0x05;{_temp: cmd_byte=0x01; //config register command byte_now: SSPSTATbits.CKE=1; //SMBUS spec for TC74bits.SEN=1; //write to TC74(SSPCON2bits.SEN==1){};=0b10011010; //send TC74 ADDRESS (write)();(SSPCON2bits.ACKSTAT==1) {}; //ack?=cmd_byte;=WREG; //send COMMAND byte (config)();(SSPCON2bits.ACKSTAT==1) {}; //ack?bits.RSEN=1; //send repeated start(SSPCON2bits.RSEN==1) {};=0b10011011; //send TC74 ADDRESS (read)();

//module idle?(SSPCON2bits.ACKSTAT==1) {}; //ack?bits.RCEN=1; //enable receive mode(SSPCON2bits.RCEN==1) {};=SSPBUF; //retrieve config reg or temp regbits.ACKDT=1;

//send NOT-ACKbits.ACKEN=1;(SSPCON2bits.ACKEN==1){};bits.PEN=1; //stop(SSPCON2bits.PEN==1){};=WREG;(cmd_byte==1) { //config command OR temp command=tempw;

_asm 0x40 //is temp ready ?? 0x40

_endasm(STATUSbits.Z==0) {goto get_temp;}_byte=0x00;temp_now;

}

=tempw;(temperature,tempv_char);_char[6]=tempv_char[0]; tempt_char[7]=tempv_char[1];_1();(i=0;i<ptr_count;i++)

{… _write();

} //for i_2();_pos=9;_char_2();

}while(select==1);

}

clock(). Функция реализующая работу часов с помощью таймера TMR1. Инициализируем TMR1 в режим синхронизации с внешнем генератором тактового сигнала. После генерации периферийного прерывания инкрементируется численное значение секунд. После чего текущее время выводится на LCD. Из функции происходит вызов двух подфункций:

clock_draw() - это функция, которая выводит на экран текущее значение времени;

clock_set() - это функция, которая позволяет установить текущее время.

void clock (void)

{…CON=0x0F;=0;minutes=0;hours=0;{bits.TMR1IF=0;H=0x68;L=0x00;++;(seconds-60==0) {minutes++;seconds=0; }(minutes-60==0){hours++;minutes=0;}(hours-13==0){ hours=0;}(scroll==0) clock_set();_draw();_2();_pos=7;_char_2();(PIR1bits.TMR1IF==0){if (scroll==0) clock_set();};

} while (select==1);

}

Рабочий проект включает в себя программирование устройства и физическое тестирование.

Перейти на страницу: 1 2 

Еще статьи по технике и технологиям

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

Схема управления электроприводом подачи стола
Металлорежущий станок - станок, основной функцией которого является изменение формы металлических заготовок путем снятия материала. Считается, что история металлорежущих станков начинается с изобретения суппорта токарного станка. Около ...

© 2019 | www.techexpose.ru