The Ever-Shrinking µC — Part 2
(Listing 5, continued)
do
{
dly = DELAY(RX_OHEAD);
do // waiting in delay loop
while(--dly);
c = (c >> 1) | (RxData << 7);
}while(--bitno);
return c;
}
}
char getche(void)
{
char c;
putch(c = getch());
return c;
}
//*********************************************************************
//* HI-TECH C SOURCE CODE FOR RS-232 MODULE
//*********************************************************************
const char * string = "NUTS & VOLTS";
void main()
{
unsigned char x;
unsigned int y,z;
FOSC4 = 0;
CMCON = 0b11110111;
OPTION = 0b11001111;
while(1) //loop forever
{
x = 0; //initialize character index
do
{
putch(string[x++]); //send character indexed by x: increment x
}while(string[x]!= 0);//look for null character at end of string
putch(0x0D); //send carriage return
putch(0x0A); //send line feed
for(y=0;y<0xFFFF;++y) //delay for a while
++z;
}
}
//*********************************************************************
//* HOW THE STRING IS STORED IN FLASH
//*********************************************************************
248 psect strings
249 018 u19
250 018 84E ;'N'
251 019 855 ;'U'
252 01A 854 ;'T'
253 01B 853 ;'S'
254 01C 820
255 01D 826 ;'&'
256 01E 820
257 01F 856 ;'V'
258 020 84F ;'O'
259 021 84C ;'L'
260 022 854 ;'T'
261 023 853 ;'S'
262 024 800
retlw 78
retlw 85
retlw 84
retlw 83
retlw 32
retlw 38
retlw 32
retlw 86
retlw 79
retlw 76
retlw 84
retlw 83
retlw 0
JANUARY 2005
49