C51:串口通信接收与发送

发布者:RadiantBlossom最新更新时间:2016-06-15 来源: eefocus关键字:C51  串口通信  接收与发送 手机看文章 扫描二维码
随时随地手机看文章
 假设要发送一组数据   Send[10]

一般采用查询发送(循环发送)方式:
unsigned char Send[10];                  //发送量
unsigned char i;                               //循环量
for(i=0;i<10;i++)
{
       SBUF= Send[i];                      //发送
       while(TI==0);                         //等待发送完成
       TI=0;                                      //清标志
}
 
采用中断发送方式:
unsigned char Send[10];                 //发送量
unsigned char num;                         //发送数据量
unsigned char *p;                           //发送用指针
 
//发送时:
num=10;                                        //定义发送数据量
p=&Send ;                                    //取首地址
SBUF=*p;                                    //发送第一个数据,启动发送中断
//中断代码:
void ComInt() interrupt 4
{
       if(RI)  RI=0;                          //接收中断略;
      
       if(TI)                                     //发送中断处理
       {
              TI=0;                             //清标志
              num--;                            //计数减1
              p++;                               //指针加1
              if(num >0) SBUF=*p;     //数据继续发送至全部发完
       }
}
 
中断发送优点:省去循环等待时间,以上面例子为例,9600bps时查询发送约占用单片机10ms多,而中断发送只占单片机几十微秒(单片机速度越快

,占用时间越少)。
中断发送缺点:代码稍复杂,发送过程不易控制。

关键字:C51  串口通信  接收与发送 引用地址:C51:串口通信接收与发送

上一篇:C51串口中断接收和发送程序
下一篇:这是一个单片机C51串口接收中断和发送例程

推荐阅读最新更新时间:2024-03-16 14:57

单片机串口通信中的异步通信和同步通信
异步通信:收发双方使用独立的时钟进行数据传输。发送的每帧数据之间的时间间隔可以是任意的。发送端可以在任意时刻发送数据,而接收端要做好接收的准备,否则会造成数据丢失。异步通信发送的数据格式要求有(空闲位)起始位、数据位、奇偶校验位、停止位。这样接收端才能更好的解析数据,知道数据从哪位开始,在哪位结束。 同步通信:收发双方要保持时钟的同步,要求使用同一个时钟。在发送数据之前,传输线处于MARK状态,为了表示数据传输的开始,会先发送一两个同步字符,用于进行时钟的同步。同步之后即可逐位数据进行传输。 可以理解为:异步通信使用数据格式中的起始位,停止位进行同步,而同步通信使用外部时钟进行同步。
[单片机]
基于89C52/C51系列单片机实现电力载波模块的设计及应用研究
电力载波(PowerLine CarrierWave,简称PLCW)通信是利用电力线进行信息传送的一种通信方式。电力载波通信在远程三表(水表、电表、煤气表)信息的自动采集和传输中得到广泛的应用,在智能小区建设中备受青睐。随着信息技术的发展,智能化网络家电逐渐成为研究热点,而将电力载波应用于智能化网络家电控制则刚刚开始。国内目前尚未有应用于智能化网络家电控制的电力载波通讯产品的研究报道;而国外已经有稳定的构建智能化网络家电的电力载波通讯产品,但其价格昂贵,中国普通家庭难以接收,而且电压是110V,也不适合中国国情。因此,有必要对电力载波技术进行深入探索,研究开发出适合中国国情、成本低廉而可靠的电力载波通讯产品。 将电力载波应用于智能
[单片机]
基于89C52/<font color='red'>C51</font>系列单片机实现电力载波模块的设计及应用研究
C51学习四)外部中断和定时器中断
1.什么是中断 中断就是指CPU正在执行一项任务A,然后突然停止任务A去执行任务B,执行完任务B再回来继续执行任务A的过程。 例如:你正在看电视,然后电话响了,你就停止看电视,跑去接电话,接完电话后由回来继续看电视。这个过程叫中断。 中断跟硬件有关。可以说是硬件来让单片机中断。 2.中断有什么用 1.中断能让CPU同时执行多项任务,例如CPU在执行流水灯程序,就无法执行 按下按键时,蜂鸣器发声了。 2.当然上面的例子可以用软件轮询检擦案件是否按下来实现,但这样就消耗了CPU一部分资源来轮询检测 按键是否有按下了,所以中断的另一个优点就是 节省CPU资源 3.双重功能的P3引脚 由最小系统板
[单片机]
(<font color='red'>C51</font>学习四)外部中断和定时器中断
串口通信实验程序(数据接收
试验效果如下: #include reg51.h #define duan P0 //段选 #define wei P2 //位选 unsigned char code wei1 = { 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制 查表的方法控制 unsigned char code duan1 = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码 unsigned char
[单片机]
<font color='red'>串口通信</font>实验程序(数据<font color='red'>接收</font>)
Keil C51 中使用Printf()进行串口输出
如何使用printf在串口显示信息,有两种办法,因为在keil C51中 printf函数是调用putchar进行数据传送的,而putchar应该是先判断TI是否为1,不为1则等待为1。 如果为1则清0,然后送出一个字符。因此如果你直接使用printf函数,你的程序就会在putchar函数中等待TI为1。这时你的程序就相当于直接死掉了。你可以通过改写putchar函数实现自己的目的。TI相当于是初始化不给赋初值就不干活。 所以第一种办法就是在初始化的时候,给TI赋值为1,比如 void uart_init() { PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率
[单片机]
LCD1602+ADC0832数字电压表(asm/c51
..................................LCD1602+ADC0832数字电压表(已调试通过 )................................. rs bit P2.4 rw bit P2.5 e bit P2.6 clk bit P1.3 do bit P1.4 di bit P1.5 cs bit P1.6 com data 60h dat data 61h adcb data 62h adcs data 63h adcg data 64h adc data 65h chx data 66h org 0000h sjmp main org 0030h main:mov sp
[单片机]
LCD1602+ADC0832数字电压表(asm/<font color='red'>c51</font>)
C51单片机0~60计数器
源码 #includeunsigned char code table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char second=0; bit a=0; char t=0; int0_srv() interrupt 1{ t++; if(t==20){t=0;a=1;} TH0=0x3c; TL0=0xb0; } main(){ P0=P2=table ; TMOD=0x01; TH0=0x3c; TL0=0xb0; ET0=1; EA=1; TR0=1; while(1){ if(a){
[单片机]
<font color='red'>C51</font>单片机0~60计数器
组态王单片机多机串口通信的设计
   1 引言   随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW(组态王)、MCGS、WinCC等。KingView软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成本。而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。    2 组态王与单片机的串口通讯方法   目前,组态王与单片机的通信多是
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved