• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術(shù)熱線: 4007-888-234
    設(shè)計(jì)開發(fā)

    專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

    開發(fā)工具

    提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

    技術(shù)支持

    從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

    新品推廣

    提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

    新聞中心

    提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

    單片機(jī)與PC機(jī)通信的程序

    更新時(shí)間: 2019-03-23
    閱讀量:2526

    十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,分享單片機(jī)與PC機(jī)通信的程序。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。


    pc機(jī)程序用c語言來編寫,單片機(jī)程序用匯編語言來編寫
    1. PC機(jī)編程
    PC采用Toubr C 進(jìn)行編寫。程序如下:
    #include
    #define    port     0x3f8                   
    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);                   
      outportb(port,0x0C);                   
      outportb(port+1,0x00);
      outportb(port+3,0x03);                   
      outportb(port+1,0x00);                   
      inportb(port+5);                       
      {
        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));           
           outportb(port,0x01);               
           for(i=0;i<6;i++)                   
        {
          a=b[i];
          while(!(inportb(port+5)&0x20))
          delay(100);                       
          outportb(port,a);                   
          printf("%d\n",a);                   
          while(!(inport(port+5)&1));           
          ch[i]=inport(port);                   
          }
          delay(10);
          for(j=0;j<8;j++)                   
          printf("\n%d\n",ch[j]);
          getch();
          break;
          }
          case’r’:                           
          case’R’:
          {
            while(!(inportb(port+5)&0x20));       
            outportb(port,0x02);               
            for(j=0;j<9;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. 單片機(jī)與PC機(jī)通信之單片機(jī)程序
    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機(jī)命令
            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        ;接收一個(gè)數(shù)據(jù)
            GOTO    WAIT1
            MOVF    RCREG,0
            MOVWF    COUNT
            MOVWF    TXREG

    LOOPTX    BTFSS    PIR1,TXIF        ;將接收到的數(shù)據(jù)送回PC機(jī)
            GOTO    LOOPTX
            MOVF    COUNT,0
            MOVWF    INDF   
            INCF        FSR
             DECFSZ    TEMP
            GOTO    WAIT1
            GOTO    OVER            ;處理完畢
    TXW        MOVLW    0X09                ;向PC機(jī)發(fā)送9個(gè)數(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                        ;程序完

    (文源網(wǎng)絡(luò),侵刪)


    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>