[51单片机] 串口通讯 简单通信-阿里云开发者社区

开发者社区> 人工智能> 正文
登录阅读全文

[51单片机] 串口通讯 简单通信

简介:


 

 

复制代码
 1 /*-------------------------------------------
 2 简单的串口通信
 3 -------------------------------------------*/
 4 #include<reg51.h>
 5 
 6 #define uint unsigned int
 7 #define uchar unsigned char
 8 
 9 
10 uchar flag,a,i;                    //标志接收串口中断标志,接收SBUF内容
11 uchar code table[]="I get ";
12 /*--------------------------------------------
13 延时函数 
14 ---------------------------------------------*/
15 void delay_ms(uint z)        
16 {
17     uint y;
18     while(z--)
19         for(y=110;y>0;y--);
20 }
21 /*--------------------------------------------
22 USAR初始函数 
23 ---------------------------------------------*/
24 void USRT_init()
25 {
26     TMOD=0x20;            //设置T1定时器工作方式2
27     TH1=0xfd;            //T1定时器装初值
28     TL1=0xfd;
29     TR1=1;                //启动T1定时器
30     REN=1;                //允许串口中断接收
31     SM0=0;                //设定串口工作方式
32     SM1=1;
33     EA=1;                //开总中断
34     ES=1;                //开串口中断
35 }
36 /*--------------------------------------------
37 串口中断程序
38 ---------------------------------------------*/
39 void ser()interrupt 4
40 {
41     RI=0;
42     a=SBUF;
43     flag=1;
44 }
45 /*--------------------------------------------
46 主函数
47 ---------------------------------------------*/
48 void main()
49 {
50     USRT_init();
51     while(1)
52     {
53         if(flag==1)                //检测到串口中断。表示有数据传过来了
54         {
55             ES=0;                //关闭串口中断,接下来要发送数据,如果不关闭每次发送之后串口中断都会执行又进入if(flag==1)那里,然后死循环
56             for(i=0;i<6;i++)    //将table[]中的前6个发送出去
57             {
58                 SBUF=table[i];
59                 while(!TI);        //每次等待发送完毕,再执行下一条
60                 TI=0;            //手动清0
61             }
62             SBUF=a;                //将收到的数据发送出去
63             while(!TI);
64             TI=0;
65             ES=1;
66             flag=0;
67         }
68     }
69 }
复制代码



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章
最新文章
相关文章