单片机与计算机串行通信的心得体会

[09-14 01:27:09]   来源:http://www.88dzw.com  电子制作   阅读:8878

文章摘要: 下面是写串口函数和读串口函数: void outcom(int com ,char ch) {int st-a ,io-a ; st-a = (com - 1) ? 0x2fd :0x3fd ; io-a = (com - 1) ? 0x2f8 :0x3f8 ; while ( ! (inportb (st-a) &0x20) ) ; outportb (io-a ,ch) ; } int incom(int com ,char 3 ch) {int st-a ,io-a ; st-a = (com -

单片机与计算机串行通信的心得体会,标签:电子小制作,http://www.88dzw.com
     下面是写串口函数和读串口函数:
     void outcom(int com ,char ch)
     {int st-a ,io-a ;
     st-a = (com - 1) ? 0x2fd :0x3fd ;
     io-a = (com - 1) ? 0x2f8 :0x3f8 ;
     while ( ! (inportb (st-a) &0x20) ) ;
     outportb (io-a ,ch) ;
     }
     int incom(int com ,char 3 ch)
     {int st-a ,io-a ;
     st-a = (com - 1) ? 0x2fd :0x3fd ;
     io-a = (com - 1) ? 0x2f8 :0x3f8 ;
     if (inportb (st-a) &0x01)
     { 3 ch = inportb (io-a) ;
      return 1 ;}
     else return 0 ;
     }

     outcom函数将ch从com指定的串口发送出去,incom函数从com指定的串口读取字符,若成功则返回1并改写ch单元。Incom函数不等待串口接收完毕,若无数据可读则立即返回,可以在主调函数中等待。

  现在,我们可以用右图所示的连接进行计算机和单片机之间的串行通信了,使用如下程序可以实现通信的实验:

     # include″dos. h″
     # include″bios. h″
     main ()
     {int i ;
     char ch = 65 ;
     initcom(1 ,2400) ;
     for (i = 0 ;i < 256 ;i + + )
     {outcom(1 ,i) ;
      printf (″%c″,i) ;
      while ( ! incom(1 , &ch) ) ;
      printf (″- %c″,ch) ;
      }
      printf (″\ n″) ;
      getch () ;
      }

     该程序发送一个字符后,等待接收,若发送的字符和接收的字符一致,表明通信成功。

  读者可以在此基础上定义通信协议,完成串口通信的功能。

上一页  [1] [2] [3] [4] 


Tag:电子制作电子小制作维修教程知识 - 电子制作