新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機 基于方式1的單工通信

        51單片機 基于方式1的單工通信

        作者: 時間:2016-11-23 來源:網絡 收藏
        本實驗主要是U1通過串口線TXD端將流水燈控制碼以方式1發送到單片機U2的RXD,U2再利用接受的控制碼控制流水燈點亮其P1口的8個發光二極管

        單片機U1發送端

        本文引用地址:http://www.104case.com/article/201611/320419.htm

        首先建立建立一個文件夾send,之后建立工作send,再添加一個send.c源文件,代碼如下

        #include

        unsigned char code Tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

        void Send(unsigned char dat)

        {

        SBUF=dat;

        while(TI==0) //若發送中斷標志位沒有置"1",就等待

        {

        ;

        }

        TI=0;

        }

        void delay(void)

        {

        unsigned char m,n;

        for(m=0;m<200;m++)

        for(n=0;n<250;n++)

        ;

        }

        void main()

        {

        unsigned char i;

        TMOD=0x20; //定時器工作在方式2

        SCON=0x40; //串口工作方式1

        PCON=0x00; //設置波特率為9600b/s

        TH1=0xfd;

        TL1=0xfd;

        TR1=1;

        while(1)

        {

        for(i=0;i<8;i++)

        {

        Send(Tab[i]);

        delay();

        }

        }

        }

        單片機U2接收端

        首先建立建立一個文件夾receid,之后建立工作receive,再添加一個receid.c源文件,代碼如下

        #include

        unsigned char Receive(void)

        {

        unsigned char dat;

        while(RI==0) //只要接受中斷標志位RI沒有被置"1"就等待,直至接受完畢

        ;

        RI=0;

        dat=SBUF;

        return dat;

        }

        void main(void)

        {

        TMOD=0x20; //定時器T1工作在方式2

        SCON=0x50; //串口工作在方式1,允許接受(REN=1)

        PCON=0x00; //主要設置波特率為9600b/s

        TH1=0xfd;

        TL1=0xfd;

        TR1=1; //啟動定時器T1

        while(1)

        {

        P1=Receive();

        }

        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 泉州市| 芮城县| 永春县| 雷波县| 咸宁市| 社会| 太仓市| 阿克陶县| 京山县| 莱芜市| 柳江县| 和硕县| 东城区| 历史| 鹿泉市| 新乐市| 汉沽区| 克拉玛依市| 鄂尔多斯市| 浦县| 龙岩市| 濉溪县| 赞皇县| 广汉市| 太湖县| 长白| 桂阳县| 益阳市| 永济市| 云阳县| 肇东市| 达州市| 耒阳市| 内丘县| 天峨县| 大埔区| 保亭| 正定县| 鄂伦春自治旗| 赤峰市| 兰溪市|