欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 紅外串口通訊電路用程序 [打印本頁]

作者: xiaos    時間: 2015-4-2 22:52
標題: 紅外串口通訊電路用程序


一體化的紅外接收頭信號腳接到單片機的RXD,紅外發射管信號是從單片機串口TXD輸出的,其中單片機的P3.4腳是輸出38KHZ的載波信號,是用定時器0工作在方式2,自動重載的,在中斷里進行端口取反,產生38.4KHZ的方波,晶振用的是11.0592M,通信的波特率是9600



#include <reg51.h>
#define uchar unsigned char
sbit led=P3^3;
uchar a;
sfr AUXR   = 0x8E;    //STC單片機1T的芯片時需要用的
void InitUART(void)       //這個初始化是用的STC的1T單片機時用的
{
    TMOD = 0x22;
    SCON = 0x40;
    TH1 = 0xDC;
    TL1 = TH1;
    PCON = 0x00;
    TH0 = 0x70;
    TL0 = TH0;
    ET0 = 1;
    TR0 = 1;
    EA = 1;
    ES=1;
    TR1 = 1;
}  
////////////////////////////////////////////////////下面的初始化是用的12T的單片機時,
/*void InitUART(void)
{
    TMOD = 0x22;
    SCON = 0x40;
    TH1 = 0xDC;
    TL1 = TH1;
    PCON = 0x00;
    TH0 = 0xf4;
    TL0 = TH0;
    ET0 = 1;
    TR0 = 1;
    EA = 1;
    ES=1;
    TR1 = 1;
}   */
///////////////////////////////////////////////////////////////////////
void Timer0Interrupt(void) interrupt 1    //定時器0工作在方式2自動重載的,產生38.4KHZ方波作為載波用的
{
    led=!led;
}
////////////////////////////////////////////
void SendOneByte(unsigned char c)
{
    SBUF = c;
    while(!TI);
    TI = 0;
}


void main(void)
{
    AUXR = AUXR|0xB0;  // T1, 1T Mode
    InitUART();
while(1)
{
    SendOneByte(a);  //發射數據
}
}

void UARTInterrupt(void) interrupt 4
{
    if(RI)
    {
        RI = 0;
        a=SBUF ;    //把收到的數據存入變量a中
    }
    else
        TI = 0;
}





作者: WANBAOLU    時間: 2015-7-21 15:26
波特率調成300,發數據還要加20ms的延時
作者: yyhhgg    時間: 2016-7-10 20:33
輸出不是38K的頻率,




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1