/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;
}
{..... _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);
}
5 Робочий проект
Робочий проект включає в себе програмування пристрою і фізичне тестування.
5.1 Реалізація і програмування
Розробка програмного коду, його компіляція і процес налагодження проекту було виконано в програмному продукті компанії Microchip, MPLAB IDE. Це середовище розробки надає єдине середовище для розробки коду, відладки і прошивки для всіх типів мікроконтролерів фірми Microchip. Вона дозволяє використовувати в одному проекті як код, написаний на мові низько рівня (асемблер), так і код, написаний на мові високого рівня (С). Це дозволяє розробнику домогтися бажаного співвідношення між швидкість роботи програми і легкість її розробки [9,12]. p align="justify"> При запуску Mplab з'явитися 2 внутрішніх вікна: Untitled Workspace і Output. У вікні Workspace відображаються всі файли, прикріплені до проекту. А у вікні Output виводиться вся вихідна інформація Mplab: помилки, результати компіляції, результати програм...