
#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
This comment has been removed by the author.
ReplyDeletetataj avah link ni eneshjee http://www.mediafire.com/?f6zx3mmqscjk931
ReplyDeleteЭнэ симулатор дээр хийсэн эд үү? Зурсан хэлхээ тань нэг л тохирохгүй байх шиг байна даа...
ReplyDeleteЗалуу минь шүүмжлэхээсээ өмнө асуу. Бас толгойгоо эхлээд тохируул. Энэ симулятороор ч, бодитоор ч хийгдсэн зүйл.
ReplyDeleteЗавтай үедээ Транзисторын талаар асуултанд хариулж өгөөч.1) npn биполяр транзистор ерөнхий эмиттертэй холболттой үед баазаар гүйдлийг удирдан, коллектороос эмиттер лүү хэлхээний гүйдэл гүйнэ гэж ойлгосон маань зөв үү?Ө.х транзистор түлхүүрийн үүрэг гүйцэтгэнэ гэж?
ReplyDelete2)npn биполяр транзистор ерөнхий баазтай холболттой үед эмиттерээр гүйдлийг удирдан, хэлхээний гүйдэл баазаас коллектор луу чиглэн гүйх ба транзистор өсгөлтийн үүрэг гүйцэтгэнэ гэж ойлгосон зөв үү?