27,374
社区成员
发帖
与我相关
我的任务
分享
#include <iom8v.h>
#include <macros.h>
#define baud 9600
#define fosc 8000000
unsigned char num[]={"2"};
void putchar(unsigned char c)
{
while(!(UCSRA&(1<<UDRE)));
UDR=c;
}
void puts(char *s)
{
while(*s)
{
putchar(*s);
*s++;
}
}
unsigned char getchar(void)
{
while(!(UCSRA&(1<<RXC)));
return UDR;
}
void usart_init(void) //初始化;
{
UCSRB = 0x18;
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = fosc/16/baud-1;
UBRRH = 0;
OSCCAL=0xBA; //时钟校正;
}
main()
{
unsigned char i,j;
usart_init();
while(1)
{
i=0;
while(1)
{
num[i]=getchar();
if(num[i]==0x30)
break; //如果是0,停止接受;
i++;
}
if((num[0]==0x31)&&(num[1]==0x32)) //如果开头是1和2,发送字符串;
{
puts("abcdefghijklmnopqrstuvwxtz");
putchar(0x0a);
putchar(0x0d); //回车;
}
}
}