• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機雙機通信(C51程序)

    單片機雙機通信(C51程序)

    作者: 時間:2012-10-31 來源:網絡 收藏

    完整程序下載:http://www.51hei.com/ziliao/file/shuangjic.rar,
    用keil c51編譯通過,運行測試通過.


    /*
    接收程序
    線路連接:同上, 主從用3線連接,共地,rxd,txd交叉
    程序效果:用于顯示主機發送的數值
    */

    #includereg52.h> //頭文件
    #includeintrins.h> //循環文件
    #define uchar unsigned char//宏定義
    #define uint unsigned int
    uchar code table[]={0X00,0x3f,0x06,0x5b,//數碼管顯示的數值
    0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    uchar table_tr[6];//暫存最后按下的六個數值
    uchar count,cnt;//定義全局變量
    //延時子函數,用于數碼管顯示
    void delay(uchar i)
    {
    uchar x,y;
    for(x=i;x>0;x--)
    for(y=110;y>0;y--);
    }
    //初始化子函數
    void init()
    {
    TMOD=0x20;//T1工作在方式2
    TH1=0XF4; //波特率為:4.8kbit/s,發送與接收的波特率要相等
    TL1=0XF4;
    TR1=1; //啟動定時器1
    SCON=0X50;//串口中斷工作在方式1,允許接收
    }
    //顯示子函數
    void display()
    {
    uchar i,j;//定義局部變量
    j=0x7f; //賦值
    for(i=0;i6;i++) //顯示六個數值
    {
    P2=j;
    P0=table[table_tr[i]];
    delay(10);
    j=_cror_(j,1);//循環右移一位
    }
    }
    //主函數
    void main()
    {
    uchar i;//定義局部變量
    init(); //調用初始化子函數
    while(1)
    {
    while(RI) //判斷是否接受完
    {
    RI=0;//接受完了,標志位清零
    for(i=0;i5;i++) //把數組的數值都往前移一位,騰出table_tr【5】
    table_tr[i]=table_tr[i+1];
    table_tr[5]=SBUF;//裝入接收的數值
    }
    display();//調用顯示子函數
    }
    }


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 井陉县| 东港市| 翁源县| 威宁| 锦州市| 唐海县| 宜宾县| 安泽县| 多伦县| 山阳县| 江永县| 韶关市| 松江区| 云南省| 永州市| 奉化市| 焉耆| 郧西县| 木兰县| 电白县| 苍南县| 获嘉县| 松潘县| 甘肃省| 北海市| 北川| 靖西县| 南京市| 泊头市| 南阳市| 柳河县| 乳山市| 来宾市| 温宿县| 塔河县| 延吉市| 防城港市| 黎平县| 青海省| 石泉县| 浠水县|