Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
#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
}
#include <p18f252.h>
#include <usart.h>
#include <delays.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
void delay(unsigned int n)
{
while(n--);
}
void main()
{
TRISC=0x80;
TXSTA=0x24;
RCSTA=0x90;
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
25 );
while(1)
{
// AT
TXREG='A';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='T';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG=0x0D;
while(TXSTAbits.TRMT == 0);
Delay10KTCYx(0);
// AT+CMGF=1
TXREG='A';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='T';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='+';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='C';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='M';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='G';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='F';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='=';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='1';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG=0x0D;
while(TXSTAbits.TRMT == 0);
Delay10KTCYx(0);
// AT+CMGS="87742984"
TXREG='A';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='T';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='+';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='C';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='M';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='G';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='S';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='=';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='"';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='8';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='7';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='7';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='4';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='2';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='9';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='8';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='4';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='"';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG=0x0D;
while(TXSTAbits.TRMT == 0);
Delay10KTCYx(0);
// abcde
TXREG='a';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='b';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='c';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='d';
while(TXSTAbits.TRMT == 0);
delay(1000);
TXREG='e';
while(TXSTAbits.TRMT == 0);
delay(1000);
Delay10KTCYx(0);
TXREG=0x1A;
while(TXSTAbits.TRMT == 0);
Delay10KTCYx(0);
Delay10KTCYx(0);
Delay10KTCYx(0);
TXREG=0x0D;
while(TXSTAbits.TRMT == 0);
Delay10KTCYx(0);
}
CloseUSART();
}
Nikunj Tanna said:Hi,
In your code when you need to give enter, you have given 0x0d.. Try with 0x0a and then 0x0d. For example, call a function like given below to give enter to every commands..
void ENTER()
{
uart_putc(0x0A);
uart_putc(0x0D);
}
NIKS
mathewkyle said:Hello,
Could you help me out. I am using Windows XP, but the hperterminal does not give the 'OK' when I connect the modem and enter 'AT.' Why could this be?
Thanks
mathewkyle said:Hello,
Could you help me out. I am using Windows XP, but the hperterminal does not give the 'OK' when I connect the modem and enter 'AT.' Why could this be?
Thanks