• <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

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

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

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

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

    開(kāi)發(fā)工具

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

    技術(shù)支持

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

    新品推廣

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

    新聞中心

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

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

    更新時(shí)間: 2019-03-25
    閱讀量:3032

    16F876單片機(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      STATUSRP0
          MOVLW   0X22
          MOVWF   COUNT
    INTRAM   MOVF   COUNT0
          MOVWF   INDF
          INCF      COUNT1
          INCF      FSR1

    BTFSS   FSR7
          GOTO   INTRAM
          BANKSEL   TXSTA         ;波特率設(shè)置為9 600 bps
          MOVLW   0X19
          MOVWF   SPBRG         ;異步高速方式
          MOVLW   0X04
          MOVWF   TXSTA
          BCF   STATUSRP0
          MOVLW   0X80            ;串行口使能
          MOVWF   RCSTA
          MOVLW   0X30
          MOVWF   FSR
          BSF      RCSTACREN      ;接收允許
          BSF      STATUSRP0
          BSF      TXSTATXEN      ;發(fā)送允許
          BCF      STATUSRP0
    WAIT   BTFSS   PIR1RCIF      ;接收PC機(jī)命令
          GOTO   WAIT
          MOVF   RCREG0
          MOVWF   TEMP
          MOVWF   INDF
          INCF   FSR

     DECFSZ   TEMP         ;接收到的數(shù)據(jù)為1,則接收
          GOTO   TXW            ;否則發(fā)送數(shù)據(jù)
          MOVLW   0X06
          MOVWF   TEMP
    WAIT1   BTFSS   PIR1RCIF      ;接收一個(gè)數(shù)據(jù)
          GOTO   WAIT1
          MOVF   RCREG0
          MOVWF   COUNT
          MOVWF   TXREG
    LOOPTX   BTFSS   PIR1TXIF      ;將接收到的數(shù)據(jù)送回PC機(jī)
          GOTO   LOOPTX
          MOVF   COUNT0
          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   INDF0

      MOVWF   TXREG
          INCF      FSR
    TXW1   BTFSS   PIR1TXIF
          GOTO   TXW1
          DECFSZ   TEMP
          GOTO   TXW0   
    OVER   BCF      RCSTACREN      ;通信任務(wù)完成,關(guān)接受和發(fā)送允許
          BSF      STATUSRP0
          BCF      TXSTATXEN
          BCF      STATUSRP0
          CALL   LED            ;調(diào)用顯示子程序,將發(fā)送(或接收)的數(shù)據(jù)顯示出來(lái)
          END                  ;程序完



    P C 機(jī) 程 序
    PC采用Toubr C 進(jìn)行編寫(xiě)。程序如下:
    #include
    #define  port    0x3f8               /*利用串口1進(jìn)行通信*/
    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);               /*準(zhǔn)備設(shè)置波特率*/
     outportb(port,0x0C);               /*波特率設(shè)置為9 600 bps*/
     outportb(port+1,0x00);
     outportb(port+3,0x03);               /*8位數(shù)據(jù)位,奇偶檢驗(yàn),1位停止位*/
     outportb(port+1,0x00);               /*關(guān)中斷*/
     inportb(port+5);                  /*讀一次線路狀態(tài)寄存器,使其復(fù)位*/
     {
      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通知單片機(jī)準(zhǔn)備接收*/
        for(i=0;i<6;i++)               /*共發(fā)送6個(gè)數(shù)據(jù)*/
       {
        a=b;
        while(!(inportb(port+5)&0x20))
        delay(100);                  /*發(fā)送保持器滿,等待*/
        outportb(port,a);               /*發(fā)送a*/
        printf("%d\n",a);               /*顯示a*/
        while(!(inport(port+5)&1));         /*接收單片機(jī)送回的數(shù)據(jù)*/
        ch=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通知單片機(jī)發(fā)送數(shù)據(jù)*/
         for(j=0;j<9;j++)               /*共接收9個(gè)數(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;
         }
        }
      }
    }



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