
////////// DAC ROUTINE //////////
void dac(void) {
	if(RI) {
		a = SBUF;	// read from UART
		nine = RB8;
		RI = 0;

		if(nine) {	// receive HHHHLLLL
			high = (a&0xF0) >> 4;	// high: 0000HHHH
			low = (a&0x0F) << 4;	// low: LLLL0000
			flag = 1;
		}
		else if(flag) {	// receive LLLLHHHH
			low |= (a&0xF0) >> 4;	// low: LLLL0000 | 0000LLLL = LLLLLLLL
			DAC0H = high;	// output high 4bits
			DAC0L = low;	// output low 8bits			
			high = a&0x0F;	// high: 0000HHHH
			flag = 0;
		}
		else {	// receive LLLLLLLL
			low = a;	// low: LLLLLLLL
			DAC0H = high;	// output high 4bits
			DAC0L = low;	// output low 8bits
		}

	}
}
