单片机 【串口通信】

 =====================================================

 

================================串口通信工作模式============【SM】=================

===========================发送中断标志位==============================

======================接收中断标志位=============================

=======================ES中断【串口中断】==============================================

=========================波特率设置=========================

fosc为晶振频率

 =============================程序=================================

 1 void init()
 2 {
 3   TMOD = 0x20;     //T1 8位
 4   TH1 = 0xfd;      
 5   TL1=0xfd;          //253 T初始
 6   TR1 =1;           //开启定时器
 7   SM0 = 0;
 8   SM1 = 1;           //串口工作模式1
 9   REN =1;           //接收控制允许位
10 
11 
12 }
13 void main()
14 {
15   init();
16   while(1)
17   {
18    
19     while(!RI);          //判断是否接收完成    1——————>完成    0--------->未完成
20     RI =0;
21     P1=SBUF;
22     
23   
24   
25   }
26 
27 }
串口通信接收

 

 1 #include<reg52.h>
 2 #include<intrins.h>
 3 
 4 typedef unsigned char uchar;
 5 typedef unsigned int uint;
 6 uint num;
 7 void delay(uint z)
 8 {
 9    uint x,y;
10    for(x=z;x>0;x--)
11    {
12        for(y=114;y>0;y--);
13    
14    }
15 
16 }
17   
18 void init()
19 {
20    TMOD = 0x20;     //T1 8位
21    TH1 = 0xfd;
22    TL1 = 0xfd;
23    TR1=1;
24    SM0 = 0;
25    SM1 =1;
26    REN = 1;
27 
28 
29 
30 }
31 void main()
32 {
33  init();
34  while(1)
35  {
36         if(RI)
37      {
38        num=SBUF;   //发送
39        P1=SBUF;
40        num++;
41        RI =0;
42        SBUF = num;  //接收
43        while(!TI);
44        TI =0;
45      }
46  
47  }
48 
49 
50 
51 }
串口通信

 

posted @ 2018-04-05 22:33  Justice-V  阅读(126)  评论(0)    收藏  举报