signed long res, res1;
signed double tlong;
signed float rec1;
signed char digit1, digit2, digit3, digit4;
unsigned int cnt;
void interrupt() {
cnt++; // Increment value of cnt on every interrupt
TMR0L = 96;
INTCON = 0x20; // Set T0IE, clear T0IF
}
void readData(){
TRISC = 0x00;
PORTC = 0x20;
res =ADC_Read(0);
tlong = (long)res * 3300;
tlong = tlong / 1024;
rec1 = (tlong - 1650);
rec1 = rec1 / 330;
if ((tlong >= 1650)&&(tlong < 1980))
{
digit1 = 48;
digit2 = 48;
}
else if ((tlong >= 1980)&&(tlong < 2310))
{
digit1 = 48;
digit2 = 49;
}
else if ((tlong >= 2310)&&(tlong < 2640))
{
digit1 = 48;
digit2 = 50;
}
else if ((tlong >= 2640)&&(tlong < 2970))
{
digit1 = 48;
digit2 = 51;
}
else if ((tlong >= 2970)&&(tlong <3300))
{
digit1 = 48;
digit2 = 52;
}
else if (tlong >= 3300)
{
digit1 = 45;
digit2 = 53;
}
else if ((tlong > 1320)&&(tlong < 1650))
{
digit1 = 45;
digit2 = 48;
}
else if ((tlong > 990)&&(tlong <= 1320))
{
digit1 = 45;
digit2 = 49;
}
else if ((tlong > 660)&&(tlong <= 990))
{
digit1 = 45;
digit2 = 50;
}
else if ((tlong > 330)&&(tlong <= 660))
{
digit1 = 45;
digit2 = 51;
}
else if ((tlong > 0)&&(tlong <= 330))
{
digit1 = 45;
digit2 = 52;
}
else if (tlong == 0)
{
digit1 = 45;
digit2 = 53;
}
res = tlong - 1650;
res = res/33;
res = res%10;
digit3 = 48 + res;
if(digit3 == '/')
{
digit3 = 49;
}
if(digit3 == '.')
{
digit3 = 50;
}
if(digit3 == '-')
{
digit3 = 51;
}
if(digit3 == ',')
{
digit3 = 52;
}
if(digit3 == '+')
{
digit3 = 53;
}
if(digit3 == '*')
{
digit3 = 54;
}
if(digit3 == ')')
{
digit3 = 55;
}
if(digit3 == '(')
{
digit3 = 56;
}
if(digit3 == '\'')
{
digit3 = 57;
}
res1 = tlong - 1650;
res1 = res1/(3.3);
res1 = res1%10;
digit4 = 48 + res1;
if(digit4 == '/')
{
digit4 = 49;
}
if(digit4 == '.')
{
digit4 = 50;
}
if(digit4 == '-')
{
digit4 = 51;
}
if(digit4 == ',')
{
digit4 = 52;
}
if(digit4 == '+')
{
digit4 = 53;
}
if(digit4 == '*')
{
digit4 = 54;
}
if(digit4 == ')')
{
digit4 = 55;
}
if(digit4 == '(')
{
digit4 = 56;
}
if(digit4 == '\'')
{
digit4 = 57;
}
}
void send_data(){
Usart_Write('A');
Usart_Write('T');
Usart_Write('+');
Usart_Write('C');
Usart_Write('M');
Usart_Write('G');
Usart_Write('S');
Usart_Write('=');
Usart_Write('\"');
Usart_Write('0');
Usart_Write('9');
Usart_Write('2');
Usart_Write('2');
Usart_Write('*');
Usart_Write('*');
Usart_Write('*');
Usart_Write('*');
Usart_Write('*');
Usart_Write('*');
Usart_Write('*');
Usart_Write('\"');
Usart_Write('\r');
}
void send_x_reading(){
Usart_Write(digit1);
Usart_Write(digit2);
Usart_Write('.');
Usart_Write(digit3);
Usart_Write(digit4);
}
void main(){
CMCON = 0x07;
ADCON1 = 0x1C;
TRISA = 0x0F;
TRISB = 0x3F;
TRISC = 0x00;
PORTC = 0x00;
T0CON = 0xC7; // Set TMR0 in 8bit mode, assign (256) prescaler to TMR0
TMR0L = 96; // Timer0 initial value
INTCON = 0xA0; // Enable TMRO interrupt
cnt = 0; // Initialize cnt
Usart_Init(9600);
Usart_Write('A');
Usart_Write('T');
Usart_Write('\r');
TRISB = 0x00;
PORTB = 0xFF;
Delay_ms(500);
Usart_Write('A');
Usart_Write('T');
Usart_Write('+');
Usart_Write('C');
Usart_Write('M');
Usart_Write('G');
Usart_Write('F');
Usart_Write('=');
Usart_Write('1');
Usart_Write('\r');
TRISB = 0x00;
PORTB = 0x00;
Delay_ms(500);
while(1){
if(cnt==49){
cnt=0;
readData();
send_data();
Delay_ms(50);
Usart_Write('X');
send_x_reading();
Delay_ms(50);
Usart_Write(0x1A);
Delay_ms(50);
Usart_Write ('\r');
}
}
}