51单片机串口通信需要加超时中断吗?

发布者:数字行者最新更新时间:2021-02-22 来源: eefocus关键字:51单片机  串口通信 手机看文章 扫描二维码
随时随地手机看文章

接收数据时,超过一定时间就算出错. 这个超时的时间是单片机自己算出的吗?超时的时间是由编程序的人定的,他定多长就多长


从一段程序开始 实现电脑向 单片机发送一些数据,单片机返回Iget +数据


#include #define uchar unsigned char


#define uint unsigned int unsigned char flag,a,i;//声明标志位 flag


uchar code table[]="I get"


void init()


{


TMOD=0x20;//设置T1定时器工作方式为2 8位初值自动重装的8位定时器 这里设置了两个计数器的工作方式


TH1=0xfd; / /T1定时器装初值(高八位) 控制串口通信的波特率(由定时器1的溢出率控制)


TL1=0xfd; //T1定时器装入初值(低八位)


TR1=1; //定时器1运行控制位 置一启动定时器1


REN=1; //允许串口接收


SM0=0; //设置串口工作方式为一


SM1=1; EA=1; //全局中断允许位 置一开全局中断


ES=1; //串口中断允许位


}


void main()


{


init();


while(1)


{


if(flag==1)


{


ES=0;


for(i=0;i<6;i++)


{


SBUF=table[i];


while(!TI);


TI=0;//发送中断标志 发送数据完成后触发中断 硬件置一 必须软件清零


}


SBUF=a; // 串口发送数据


while(!TI);


TI=0;


ES=1;


flag=0;


}


}


}


void ser() interrupt4 //串口中断服务程序


{


RI=0; // 收到数据硬件置一,由软件清零


a=SBUF; //将寄存器的值 赋给a flag=1; //标志位


}


此程序中共用的串口中断,


定时器1中断 特殊功能寄存器SBUF


中断响应的条件


中断源有中断请求 此中断源允许位为1 cpu开中断(即EA=1)以上三个条件同时满足


串口通信设置


确定串口通信波特率(编程TMOD寄存器定时器工作方式寄存器)


计算定时器初值转载THX TLX


确定串行口工作方式(编程SCON寄存器串行口控制方式寄存器)


串行口工作在中断方式时,要进行中断设置如TI,RI软件清零。


关键字:51单片机  串口通信 引用地址:51单片机串口通信需要加超时中断吗?

上一篇:51系列单片机的引脚图
下一篇:51单片机与NRF24L01无线模块连接图

推荐阅读最新更新时间:2024-11-05 12:12

基于51单片机的六足仿生机器人
一、整体框架: (1)设计功能: ①能完成多方向行走以及其他的自定义的动作。(前进,后撤,左右转,避障); ②可自动避障; ③通过手机蓝牙下令他的下一步动作。 (2)功能框架: (3)使用器材: ①STC89C52单片机、74LS04(反相器); ②蓝牙串口通信模块; ③超声波测距模块; ④9G舵机18个; ⑤PVC线槽若干(模具); ⑥PCB转印板; ⑦螺丝螺母若干。 ⑦keil3软件 二、工作原理: (1)蓝牙串口通讯模块: 蓝牙串口通讯模块接收手机蓝牙软件发送字符串信号,单片机通过串口通讯协议处理蓝牙模块接收到的信息,再根据信息的内容来判断机器人将进行的下一步行动。 (2)超声波测距模块: 超声波模块向某一方向发射
[单片机]
基于<font color='red'>51单片机</font>的六足仿生机器人
利用串口与并口实现51单片机的在线编程
1 在线编程简介   51内核的单片机在线编程模式一般分为两大类。一类是使用JTAG协议的在线编程模式。这类模式一般由厂家提供在线编程工具,使用方便。使用这一类模式的单片机价格往往较高,使用的厂商也不多,故不在本文的讨论之列。另一类在线编程模式是使用一条特殊的指令,使单片机进入在线编程模式。在进入在线编程模式后,要自己控制对单片机的擦除写入逻辑。这一类模式又可细分为两种不同的模式:一是进入在线编程模式后,单片机只是提供一个接口,不再运行用户的程序,擦写逻辑全由上位机(PC)提供,如以下要讨论的MTV230就属于这种模式;另一类是进入在线编程模式以后,芯片会运行在某一区域的用户编写的程序,芯片的编程逻辑都由芯片中这段程序控制,上位
[单片机]
利用串口与并口实现<font color='red'>51单片机</font>的在线编程
51单片机用三种方法实现流水灯
一、数组流水灯 定义一组数组分别对应点亮LED1~7 然后利用for循环赋值给p2从而实现流水灯 #include reg52.h #define uchar unsigned char #define uint unsigned int uchar code table = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数组 // 函数功能:毫秒延时 void delay(uint z) { uint x,y; for(x = 0; x z; x++) for(y = 0; y 113; y++); } void main() { uchar
[单片机]
<font color='red'>51单片机</font>用三种方法实现流水灯
基于51单片机的舞蹈机器人步进机仿真设计
程序运行图: 仿真原理图: 部分程序: #include reg51.h #include intrins.H //8步式步进电机脉冲序列 //unsigned char steps = {0x77,0x33,0xbb,0x99,0xdd,0xcc,0xee,0x66}; unsigned char steps = {0x2,0x6,0x4,0xc,0x8,0x9,0x1,0x3}; //当前各电机在上述序列中的位置 unsigned char cur_step = {0,0,0,0,0,0,0,0}; //这个文件用于记录舞步信息序列 char speed_tickers = {0,0,0,0,0,0,0,0}; /
[单片机]
21-基于51单片机的5乘4计算器设计
具体实现功能 系统由STC89C52单片机+5乘4按键模块+LCD1602液晶显示屏+电源构成。 具体功能: 利用输入采用5×4矩阵键盘,可以进行加、减、乘、除等十几种数字运算,并在LCD1602上显示操作过程及结果。 设计背景 当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。 本设计是以单片机
[单片机]
21-基于<font color='red'>51单片机</font>的5乘4计算器设计
51单片机主要引脚功能
XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。 RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。 VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。 P0~P3 为可编程通用I/O 脚,其功能用途由软件定义 P0 口:P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写 1 时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Fla
[单片机]
51单片机入门 - 点阵显示程序设计实验
一、LED点阵发光原理 8*8单色单片机结构图如下: https://blog.csdn.net/weixin_42625444/article/details/90897605 从电路图中很简单的就可以看出来,想要点亮点阵中的某一个LED灯。只要使得那个灯所在的行输出高电平,所在列输出低电平就好。 二、点阵扫描实验 /*********************************************** 实验名称: 点阵扫描 实验说明: 扫描每个LED灯,检查点阵是否完好 实验时间: ***********************************************/ #inc
[单片机]
基于51单片机的TFT液晶显示设计
0 引言   51单片机作为一种常见的通用单片机, 虽然其内部资源, 处理速度等都无法与新型高速单片机相提并论, 但其低廉的价格, 极低的入门难度以及适用于简单场合应用等特点, 依然是开发者的常用选择之一。   用51单片机驱动液晶模块通常都使用1602和12864等极为简单的液晶模块, 这里介绍用51单片机驱动QVGA分辨率的TFT液晶模块, 以实现彩色和更为复杂的内容显示的方法。同时, 本文还将使用DS1302芯片和DS18B20芯片来实现在液晶屏上显示实时时钟和温度。    1 硬件设计   本系统硬件电路的设计主要包括单片机最小系统电路, TFT液晶显示电路, 时钟电路, 设置电路以及温度采集电路。其系统工作原理框
[单片机]
基于<font color='red'>51单片机</font>的TFT液晶显示设计
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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