51 串口中断发送程序

发布者:代码漫游者最新更新时间:2016-08-02 来源: eefocus关键字:串口中断  发送程序 手机看文章 扫描二维码
随时随地手机看文章
假设要发送一组数据   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多,而中断发送只占单片机几十微秒(单片机速度 越快,占用时间越少)。 
中断发送缺点:代码稍复杂,发送过程不易控制。 
关键字:串口中断  发送程序 引用地址:51 串口中断发送程序

上一篇:MCS-51单片机控制字详解
下一篇:51单片机实现的485通讯程序

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

51单片机-呼吸灯
1.双定时器呼吸灯实现 呼吸灯的实现原理就是让小灯的IO端口在一段时间里PWM由大到小变化的占空比输出,接着又由小到大的占空比输出,小灯显示效果就是时亮时暗地交替闪烁。 首先我们用定时器0定时0.1ms,全局变量pwm在其中断函数里执行简单的从0到99的循环自加,这样周期就是10ms。 假如主函数里我们这样执行 if(pwm 90)P0=0xFF; else P0=0x00; 那么IO端口输出的一直是周期为10ms占空比为90%的波形,这样8盏小灯一直是处于较暗的显示状态不变,要想实现呼吸灯,就要不停改变PWM波形的占空比。 所以我们使用定时器1来做间隔10ms地改变占空比,我们再定义一个全局变量highv
[单片机]
<font color='red'>51</font>单片机-呼吸灯
基于51单片机仿真器的设计
1 概 述   SST89C54/58(简称89C54/58)是美国SST公司推出的多用途51系列单片机,片内集成了20 kB/36 kB的SuperFlashE''PROM程序存储器,分为BLOCK0(16kB/32kB)和BLOCKl(4kB)两块。其中,BLOCKl可以映射(Mapping)到64kB存储空间的最高端或最低端,而且,对于程序计数器来说可以是不可见的。由于其存储结构上独特的优点,使得89C54/58非常适合于用做单片机仿真器。 2 SST89C54/58的程序存储结构 2.1 存储器结构   89C54/58片内的存储块BLOCK0占据从0000H到3FFFH/7FFFH的存储空间,BLOCKl占据从F
[单片机]
基于<font color='red'>51</font>单片机仿真器的设计
51单片机在Keil中使用printf进行串口输出
最近有同学在51单片机的学习过程中困扰如何使用单片机串口在上位机串口助手上输出显示的问题,其实很多开发环境都支持使用C语言里面最常用的printf函数,Keil中也不例外,不仅仅是最常用的STC89C52、keil下其他51系列单片机如STC12、STC15等同样适用。具体步骤如下: 在Keil中建立一个空的工程,加入一个源文件,如main.c 粘贴以下代码,编译生成hex文件,下载到单片机即可。 需要注意的是: 1、需要包含stdio.h头文件 2、串口初试化函数中需要有 TI = 1; 废话少说,直接上代码: #include stdio.h #include reg52.h void InitUART
[单片机]
基于JN5148-001开发的手持医疗保健设备
  NXP 公司的JN5148-001是超低功耗高性能无线微控制器(MCU),具有32位RISC处理器特性,还集成了2.4GHz IEEE802.15.4兼容的收发器,128kB ROM,128kB RAM和各种丰富的模拟与数字外设,可以运行JenNet和ZigBee PRO。收发器的数据速率500kbps和667kbps,工作电压2.0V~3.6V,MCU的时钟速率4MHz~32MHz。主要用在机器人和安全低功耗无线应用、JenNet和ZigBee PRO网络、智能计量、家庭和商业建筑物自动化、工业系统、遥控、手持医疗保健设备、玩具和游戏外设等。   JN5148-001是一个超低功耗,高性能的无线微控制器,用于JenNet 和
[单片机]
基于JN<font color='red'>51</font>48-001开发的手持医疗保健设备
AT89S51单片机发光二极管多功能闪烁的设计
1.实验任务 如图4.9.1所示,开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。 2.电路原理图 图4.9.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上; (2).把“单片机系统”区域中的P1.0-P
[单片机]
AT89S<font color='red'>51</font>单片机发光二极管多功能闪烁的设计
STM32(RFID)阶段一:添加串口USART2,修改中断接收协议
因学校比赛原因接触到RFID技术,并结合STM32单片机开发一卡通系统。由于需要和RFID读写器通信,以及上位机软件通信,所以添加USART2串口,并根据RFID数据包改写中断接收协议。资料支持:《不完全手册》《中文手册》端口通用与复用,APB1外设,串口寄存器,中断配置 阶段一:demo程序功能:通过串口USART2接收数据包,并把数据再发回去。RFID型号M3650A-HA 数据包第二个数据为数据包的长度,使用str接收长度,USART_RX_STA bit15置1 表示接收结束。 上代码 void uart_init(u32 bound){ GPIO_InitTypeDef GPIO_InitStructure
[单片机]
基于51单片机和数码管的万年历程序
可实现功能: 启动程序数码管按照××-××-××格式显示时分秒并走时 按下C1按钮后按照××-××-××格式显示年月日 按下C3调时模式按钮时分秒/年月日静止,指示灯亮起,进入调时模式 先按C2选位按钮再按下C0加一按钮,对应的位置改变 再次按下C3按钮退出调时模式,继续走时 #include reg51.h #define uChar unsigned char #define uInt unsigned int uChar a ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uChar b ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,
[单片机]
如何学习51单片机
学过51单片机的人,都知道这个学习的过程可能不是那么“美好”,所以,今天给大家介绍一些关于51单片机的学习方法。 1、我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础。 2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。 3、汇编语言在工作中很少用到,了解就好。 4、51单片机的P0口很特别。 5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。 当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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