新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機C語言程序設計:單片機之間雙向通信

        單片機C語言程序設計:單片機之間雙向通信

        作者: 時間:2013-10-29 來源:網絡 收藏

        switch(Operation_No)根據操作代碼發送 A/B/C 或停止發送

        {

        case 0: Putc_to_SerialPort('X');

        LED1=LED2=1;

        break;

        case 1: Putc_to_SerialPort('A');

        LED1=~LED1;LED2=1;

        break;

        case 2: Putc_to_SerialPort('B');

        LED2=~LED2;LED1=1;

        break;

        case 3: Putc_to_SerialPort('C');

        LED1=~LED1;LED2=LED1;

        break; }

        }

        }

        }

        //甲機串口接收中斷函數

        void Serial_INT() interrupt 4

        {

        if(RI)

        {

        RI=0;

        if(SBUF>=0SBUF=9) P0=DSY_CODE[SBUF];

        else P0=0x00;

        }

        }

        /* 名稱:乙機程序接收甲機發送字符并完成相應動作

        說明:乙機接收到甲機發送的信號后,根據相應信號控制 LED 完成不同閃爍動作。

        */

        #includereg51.h>

        #define uchar unsigned char

        #define uint unsigned int

        sbit LED1=P1^0;

        sbit LED2=P1^3;

        sbit K2=P1^7;

        uchar NumX=-1;

        //延時

        void DelayMS(uint ms)

        {

        uchar i;

        while(ms--) for(i=0;i120;i++);

        }

        //主程序

        void main()

        {

        LED1=LED2=1;

        SCON=0x50; 串口模式 1,允許接收

        TMOD=0x20; //T1 工作模式 2

        TH1=0xfd;

        TL1=0xfd; //波特率 9600

        PCON=0x00; 波特率不倍增

        RI=TI=0;

        TR1=1;

        IE=0x90;

        while(1)

        {

        DelayMS(100);

        if(K2==0)

        {

        while(K2==0);

        NumX=++NumX%11; //產生 0~10 范圍內的數字,其中 10 表示關閉

        SBUF=NumX;

        while(TI==0);

        TI=0;

        }

        }

        }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 无为县| 繁峙县| 新兴县| 新建县| 定远县| 汉源县| 邻水| 航空| 新干县| 昂仁县| 新竹县| 叙永县| 石家庄市| 香河县| 阳泉市| 湛江市| 宁都县| 黄大仙区| 阜康市| 荆门市| 五常市| 灵台县| 双鸭山市| 苏尼特右旗| 油尖旺区| 于都县| 西华县| 曲松县| 乐东| 扎赉特旗| 布尔津县| 依兰县| 闸北区| 辽源市| 枣阳市| 塔河县| 克什克腾旗| 涿鹿县| 安国市| 札达县| 获嘉县|