Professional Documents
Culture Documents
HGHGHGH
HGHGHGH
init_usart1(void);
init_modem(void);
mesg_no_extract(void);
read_msg(int);
extract_no(void);
call(void);
int main(void)
{
DDRA=0xFF;
DDRC=0xFF;
PORTA=0xFF;
_delay_ms(10);
PORTA=0x00;
_delay_ms(10);
init_usart1();
init_modem();
mesg_no_extract();
read_msg(msg_no);
extract_no();
call();
while(1);
return 0;
}
void init_usart1()
{
UBRR1L= BAUD_PRESCALE;
UBRR1H= (BAUD_PRESCALE>>8);
UCSR1B= 0X18;
UCSR1C= 0X86;
}
void init_modem()
{
int i=0;
while(i<11)
{
while(!(UCSR1A&(1<<UDRE1)));
PORTC=0xFF;
_delay_ms(50);
PORTC=0x00;
_delay_ms(50);
UDR1=init_modem1[i];
i++;
}
}
void mesg_no_extract()
{
while(1)
{
while(!(UCSR1A&(1<<RXC1)));
msg_no=UDR1;
if(msg_no==',')
{
while(!(UCSR1A&(1<<RXC1)));
msg_no=UDR1;
PORTA=0xFF;
_delay_ms(50);
PORTA=0x00;
_delay_ms(50);
break;
}
}
}
void read_msg(int mesg_no)
{
int i=0;
while(i<8)
{
while(!(UCSR1A&(1<<UDRE1)));
UDR1=read[i];
i++;
}
while(!(UCSR1A&(1<<UDRE1)));
UDR1=mesg_no;
while(!(UCSR1A&(1<<UDRE1)));
UDR1='\r';
while(!(UCSR1A&(1<<UDRE1)));
UDR1='\n';
}
void extract_no()
{
char f=0;
int i=0;
while(1)
{
while(!(UCSR1A&(1<<RXC1)));
f=UDR1;
while(f=='1'&&i<10)
{
while(!(UCSR1A&(1<<RXC1)));
number[i]=UDR1;
i++;
}
if(i>=10)
break;
}
}
void call()
{
int i=0;
while(i<3)
{
while(!(UCSR1A&(1<<UDRE1)));
UDR1=call1[i];
i++;
}
i=0;
while(i<10)
{
while(!(UCSR1A&(1<<UDRE1)));
UDR1=number[i];
i++;
}
while(!(UCSR1A&(1<<UDRE1)));
UDR1=';';
while(!(UCSR1A&(1<<UDRE1)));
UDR1='\r';
while(!(UCSR1A&(1<<UDRE1)));
UDR1='\n';
}