<ol id="glfvi"></ol>

    <fieldset id="glfvi"></fieldset>

    1. <mark id="glfvi"></mark>
        <var id="glfvi"></var>

        <big id="glfvi"></big>

        天堂8在线天堂资源BT_一区二区在线 | 国_天堂SV在线最新版在线_97在线观看视频_欧美成人影院在线观看

        機電之家資源網(wǎng)
        單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
        培訓信息
        贊助商
        單片機與pc機通信
        單片機與pc機通信
         更新時間:2009-11-6 14:54:19  點擊數(shù):0
        【字體: 字體顏色
        下面是一個單片機與PC機通信的程序,pc機程序用c語言來編寫,單片機程序用匯編語言來編寫如果有什么問題請來本人建立的電子論壇討論
        1. PC機編程
        PC采用Toubr C 進行編寫。程序如下:
        #include<stdio.h>
        #define    port     0x3f8                    /*利用串口1進行通信*/
        int ch[15];
        main ()
        {
          int a;
          int i,j;
          int b[6]={88,15,38,26,20,0};
          char c;
          clrscr();
          outportb(port+3,0x80);                    /*準備設(shè)置波特率*/
          outportb(port,0x0C);                    /*波特率設(shè)置為9 600 bps*/
          outportb(port+1,0x00);
          outportb(port+3,0x03);                    /*8位數(shù)據(jù)位,奇偶檢驗,1位停止位*/
          outportb(port+1,0x00);                    /*關(guān)中斷*/
          inportb(port+5);                        /*讀一次線路狀態(tài)寄存器,使其復位*/
          {
            printf("\t\tsend data or receive data: (s or r?)\n\n\n");
            c=getchar();
             switch(c)
             {
              case ’s’:
              case ’S’:
              {
              while(!(inportb(port+5)&0x20));            /*發(fā)送保持器滿則等待*/
               outportb(port,0x01);                /*否則發(fā)送數(shù)據(jù)01通知單片機準備接收*/
               for(i=0;i<6;i++)                    /*共發(fā)送6個數(shù)據(jù)*/
            {
              a=b[i];
              while(!(inportb(port+5)&0x20))
              delay(100);                        /*發(fā)送保持器滿,等待*/
              outportb(port,a);                    /*發(fā)送a*/
              printf("%d\n",a);                    /*顯示a*/
              while(!(inport(port+5)&1));            /*接收單片機送回的數(shù)據(jù)*/
              ch[i]=inport(port);                    /*保存*/
              }
              delay(10);
              for(j=0;j<8;j++)                    /*顯示接收的回送數(shù)據(jù)*/
              printf("\n%d\n",ch[j]);
              getch();
              break;
              }
              case’r’:                            /*接收數(shù)據(jù)*/
              case’R’:
              {
                while(!(inportb(port+5)&0x20));       
                outportb(port,0x02);                /*發(fā)送數(shù)據(jù)02通知單片機發(fā)送數(shù)據(jù)*/
                for(j=0;j<9;j++)                    /*共接收9個數(shù)據(jù)*/
                {
                 while(!(inportb(port+5)&1));
                ch[j]=inportb(port);
                }
                for(j=0;j<9;j++)
                printf("\n %d\n",ch[j]);
                getch();
                break;
                }
               }
            }
        }
        2. 單片機與PC機通信之單片機程序
        LIST        P=16F876
        #INCLUDE     P16F876.INC
        CBLOCK 0X24
        COUNT   
        TEMP
        ENDC
                ORG    0X0000
                NOP
        START    GOTO    MAIN
                ORG        0X020
        MAIN    MOVLW    0X30                ;將RAM單元初始化
                MOVWF    FSR
                BCF        STATUS,RP0
                MOVLW    0X22
                MOVWF    COUNT
        INTRAM    MOVF    COUNT,0
                MOVWF    INDF
                INCF        COUNT,1
                INCF        FSR,1
                BTFSS    FSR,7
                GOTO    INTRAM
                BANKSEL    TXSTA            ;波特率設(shè)置為9 600 bps
                MOVLW    0X19
                MOVWF    SPBRG            ;異步高速方式
                MOVLW    0X04
                MOVWF    TXSTA
                BCF    STATUS,RP0
                MOVLW    0X80                ;串行口使能
                MOVWF    RCSTA
                MOVLW    0X30
                MOVWF    FSR
                BSF        RCSTA,CREN        ;接收允許
                BSF        STATUS,RP0
                BSF        TXSTA,TXEN        ;發(fā)送允許
                BCF        STATUS,RP0
        WAIT    BTFSS    PIR1,RCIF        ;接收PC機命令
                GOTO    WAIT
                MOVF    RCREG,0
                MOVWF    TEMP
                MOVWF    INDF
                INCF    FSR
                DECFSZ    TEMP            ;接收到的數(shù)據(jù)為1,則接收
                GOTO    TXW                ;否則發(fā)送數(shù)據(jù)
                MOVLW    0X06
                MOVWF    TEMP
        WAIT1    BTFSS    PIR1,RCIF        ;接收一個數(shù)據(jù)
                GOTO    WAIT1
                MOVF    RCREG,0
                MOVWF    COUNT
                MOVWF    TXREG
        LOOPTX    BTFSS    PIR1,TXIF        ;將接收到的數(shù)據(jù)送回PC機
                GOTO    LOOPTX
                MOVF    COUNT,0
                MOVWF    INDF   
                INCF        FSR
                 DECFSZ    TEMP
                GOTO    WAIT1
                GOTO    OVER            ;處理完畢
        TXW        MOVLW    0X09                ;向PC機發(fā)送9個數(shù)據(jù)
                MOVWF    TEMP
                MOVLW    0X30
                MOVWF    FSR
        TXW0    MOVF    INDF,0
                MOVWF    TXREG
                INCF        FSR
        TXW1    BTFSS    PIR1,TXIF
                GOTO    TXW1
                DECFSZ    TEMP
                GOTO    TXW0   
        OVER    BCF        RCSTA,CREN        ;通信任務(wù)完成,關(guān)接受和發(fā)送允許
                BSF        STATUS,RP0
                BCF        TXSTA,TXEN
                BCF        STATUS,RP0
                CALL    LED                ;調(diào)用顯示子程序,將發(fā)送(或接收)的數(shù)據(jù)顯示出來
                END                        ;程序完
      1. 上一篇: RS-232接口與單片機串行通信程序設(shè)計
      2. 下一篇: 沒有了
      3. 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
        熱點文章
         
        推薦文章
         
        相關(guān)文章
        網(wǎng)友評論:(只顯示最新5條。)
        關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

        點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
        本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
        機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
        Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
        電話:0571-87774297 傳真:0571-87774298
        杭州濱興科技有限公司提供技術(shù)支持

        主辦:杭州市高新區(qū)(濱江)機電一體化學會
        中國行業(yè)電子商務(wù)100強網(wǎng)站

        網(wǎng)站經(jīng)營許可證:浙B2-20080178-1
        黑人巨茎大战欧美白妇_一区二区在线 | 国_天堂SV在线最新版在线_97在线观看视频
          <ol id="glfvi"></ol>

          <fieldset id="glfvi"></fieldset>

          1. <mark id="glfvi"></mark>
              <var id="glfvi"></var>

              <big id="glfvi"></big>