
#define tx_on PORTD|=0x80 //залгасан портоо 1 болгож тодорхойлж байна
#define tx_off PORTD&=0x7f // 0
#define DDR_on DDRD|=0x80
#define baudrate 1200
// 12MHz дамтамжид энэ кодыг бичсэн
void tx_bit(char bit)//нэг бит шидэх функц
{
long int asd=3000000/baudrate; //_delay_loop_2() функц 4-н clock саатуулдаг учир
if (bit)
{
tx_on;
_delay_loop_2(asd);
}
else
{
static int count=0;
if (count<3) count++;
else {count=0; asd +=75; }
while (asd>=0)
{
asd -=75;
tx_off;
_delay_loop_2(38);
tx_on;
_delay_loop_2(37);
}
}
}
void tx_byte(unsigned char a)// UART протоколоор нэг byte шидэх функц
{
DDR_on;
tx_bit(0);
int i;
for (i=0; i<8; i++)
{
tx_bit(a&0x01);
a=a>>1;
}
tx_bit(1);
tx_off;
}
void infra_string (const char *string) // цуваа шиднэ
{
while (*string)
{
tx_byte(*string++);
}
}
гэсэн хэдэн го фунцуудыг бичлээ гол анхаарах зүйл нь микроконтроллерийн дамтамжийг 12MHz давтамжаар тохируулж өгсөнийг мартаж болохгүй.

http://www.mediafire.com/?f6zx3mmqscjk931