#pragma chip PIC16F873 #define CP_off |= 0x3F30 // 16C62X and similar #pragma config CP_off, WDTE=off, FOSC=HS, BODEN=off #pragma config |= 0x800 // set bit 11 This turns off Background debugging /* global variables */ char a; char t; bit b1, b2; /* assign names to port pins */ #pragma bit led @ PORTC.0 #pragma origin 4 interrupt serverX(void) { } void delay(char x) { char i; do { i =255; do i =i -1; while (i > 0); } while (--x > 0); /* 3 is */ } #include "picuart.c" #include "encoder.c" void main( void) { char i; // if (TO == 1 && PD == 1 /* power up */) { // WARM_RESET: // clearRAM(); // clear all RAM // } /* first decide the initial output level on the output port pins, and then define the input/output configuration. This avoids spikes at the output pins. */ PORTA = 0b.1111; /* out = 1 */ TRISA = 0b.0000.0000; /* xxxx 0001 */ PORTB = 0b.1111.1111; /* out = 1 */ TRISB = 0b.0000.0000; /* xxxx 0001 */ PORTC = 0b.1111.1111; /* out = 1 */ TRISC = 0b.0000.0000; /* xxxx 0001 */ delay(250); led = 1; delay(250); led = 0; delay(250); led = 1; delay(250); led = 0; uart_init(B9600); for (;;) { // uart_putb(12); // uart_putb('T'); // uart_putb('e'); // uart_putb('s'); // uart_putb('t'); for (i = ' '; i <= 'z'; i++) { uart_putb(i); } led = !led; } for (;;) ; // end of main - loop forever }