#include <p18f252.h>
#include <delays.h>
#include <usart.h>
#include <stdlib.h>
#include <stdio.h>
#pragma config OSC = XT // Configured oscillator as XT
#pragma config WDT = OFF // Disabled watch dog timer
#pragma config LVP = OFF // Disabled low voltage programming
unsigned char TxCheck[] = "AT"; // Perform a simple check on the connection
unsigned char TxText[] = "AT+CMGF=1"; // Set short message format as Text mode
unsigned char TxSend[] = "AT+CMGS="; // Send message to a phone number
unsigned char TxNumber[] = "546879123"; // User phone number
unsigned char TxExample[] = "abcdef"; // Example
void main(void)
{
// Configure USART
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
25 ); // Asynchronous mode, high speed:
// [Fosc / (16 * Desired Baudrate)] - 1 = [4 MHz / (16 * 9600)] - 1 = 25 (approx.)
while(1)
{
putsUSART((char*)TxCheck);
putcUSART(0x0D); // Pressed Enter Key
Delay10KTCYx(0);
if(getcUSART()=='O')
{
if(getcUSART()=='K')
{
putsUSART((char*)TxText);
Delay10KTCYx(0);
break;
}
}
putcUSART(0x0D);
Delay10KTCYx(0);
if(getcUSART()=='O')
{
if(getcUSART()=='K')
{
putsUSART((char*)TxSend);
Delay10KTCYx(0);
putcUSART('"');
Delay10KTCYx(0);
putsUSART((char*)TxNumber);
Delay10KTCYx(0);
putcUSART('"');
Delay10KTCYx(0);
break;
}
}
Delay10KTCYx(0);
putsUSART((char*)TxExample);
Delay10KTCYx(0);
putcUSART(0x1A); // Pressed Ctrl+Z
Delay10KTCYx(0);
Delay10KTCYx(0);
Delay10KTCYx(0);
Delay10KTCYx(0);
Delay10KTCYx(0);
putcUSART(0x0D);
}
CloseUSART(); // Close USART
}