c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图

这篇具有很好参考价值的文章主要介绍了c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图,单片机,proteus,嵌入式硬件

 c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图,单片机,proteus,嵌入式硬件

c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图,单片机,proteus,嵌入式硬件 

 单片机一般采用中断方式接受数据,这样便于及时处理

#include "reg51.h"
#include "myheader.h"
#define uchar unsigned char
int szc[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int bufferc[6]={0};
int sza[6]={0x01,0x02,0x04,0x08,0x10,0x20};
void display()
{
	uchar i=0;
	uchar num=0;
	for(i=0;i<6;i++)
	{
		num=bufferc[i];
		P2=szc[num];
		P1=sza[i];
		sleep(100);
		P2=0xff;
	}
}

void main()
{
	TMOD=0x20;
	TH1=0XF4;//根据波特率计算公式这里需要设置为这么多才能够在串行数据传输模式1的状况下实现波特率2400B/S
	TL1=0XF4;
	TR1=1;
	SCON=0x40;//串口工作与方式1,定义了传送数据的格式
	EA=1;
	ES=1;   //串口中断开关打开
	REN=1;
	while(1)
	{
		display();
	}
}

void int_4() interrupt 4
{
	static uchar i=0;
	EA=0;
	bufferc[i]=SBUF;
	i++;
	if(i==6)i=0;
	RI=0;
	EA=1;
}

void sleep(long int a)
{
	uchar i=0;
	for(i=0;i<a;i++)
	{
		;
	}
}
#include "reg51.h"
#include "myheader.h"
#define uchar unsigned char
long int sleep_i=0;
long int main_i=0;
void main()
{
	uchar sendx[6]={2,0,2,3,8,1};
	sleep(2000);
	TMOD=0x20;
	TH1=0XF4;//根据波特率计算公式这里需要设置为这么多才能够在串行数据传输模式1的状况下实现波特率2400B/S
	TL1=0XF4;
	TR1=1;
	SCON=0X40;
	for(main_i=0;main_i<6;main_i++)
	{
		SBUF=sendx[main_i];
		while(TI==0);//这个是清除发送的中断,不是清除闹钟中断
		TI=0;
	}
	while(1);
}

void sleep(long int a)
{
	for(sleep_i=0;sleep_i<a;sleep_i++)
	{
		;
	}
}

其中发送数据段采用的是查询方式,接收端采用了中断方式,

要注意的地方有:

在中断处理函数int_0()内,处理数据前要先关闭中断,否则中断可能会不断传过来,

EA=0;

然后退出中断处理函数前恢复中断处理能力:

EA=1;

另外再main函数内比较查询方式要添加:

EA=1;

ES=1;

因为既然使用中断,一定要把中断中开关和serial通讯开关打开文章来源地址https://www.toymoban.com/news/detail-649475.html

到了这里,关于c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【单片机c51】两个外中断的应用

    1.在51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0*)接有一只按钮开关K1,在外部中断1引脚P3.3(INT1*)接有一只按钮开关K2。 程序要求:K1和K2都未按下时,P1口的8只LED呈流水灯显示。仅K1按下时,上下4只LED交替闪烁10次。仅K2按下时,8只LED全部闪烁10次,再回到流

    2024年02月06日
    浏览(37)
  • C51单片机——中断与定时器

    中断是大多数CPU最精彩的部分之一,下面我们通过讲解和编程练习学习中断和定时器相关概念 目录 1.1.什么是中断 1.2.中断的种类 1.3中断的相关概念 1.4. 51单片机可用中断及相关引脚 1.4.寄存器 1.5.中断优先级 在未进行任何关于优先级的设置情况下,51 单片机(52 单片机)中断

    2024年02月03日
    浏览(55)
  • 单片机c51中断 — 中断扫描法行列式键盘

    项目文件 文件 关于项目的内容知识点可以见专栏单片机原理及应用 的第五章,中断   在第4章中已介绍过行列式键盘的工作原理,并编写了相应的键盘扫描程序。但应注意的是,在单片机应用系统中,键盘扫描只是 CPU 工作的内容之一。CPU 在忙于各项工作任务时,需要兼顾

    2024年02月10日
    浏览(41)
  • C51单片机串口发送数据的使用

             假如说电路板上没有CH340芯片,我们就要使用TTL转USB模块来进行电平的转换,然后将模块的RX接单片机的TX,模块的TX接单片机的RX,来进行接线连接。          在连接好连线后,我们打开计算机管理,来查看端口是否存在,如果没有,我们需要下载CH340驱动,

    2024年02月03日
    浏览(57)
  • c51单片机串行通信示例代码(单片机--单片机通信)(附带proteus线路图)

      后面这个是接收端代码  另外发现一个奇怪的现象:如果把T1口改为T0口没有办法正常模拟

    2024年02月13日
    浏览(38)
  • C51单片机中断系统与定时器/计时器(理论部分)

    前言 文章的开始,有人可能会问,我们在前几节课学了延时函数,为什么不用延时函数来取代定时器,而必须学定时器呢?这里,有如下几个理由: 1.使用delay函数时,单片机的cpu做不了其他事情,只能等待延时结束。 2.用了定时器cpu就可以做其他的事情,只要定时器溢出时

    2023年04月15日
    浏览(32)
  • 题解:按钮加减计数器设计(单片机C51)(外部中断)

               需求 :使用 4位共阴极段码表及共阳极数码管 ,通过 外部中断 方式,实现 两个按钮 分配加1、减1功能 。         今天我就来 讲解 一下 这道题 : 目录 1.代码 1.1定义头文件 1.2定义延时函数(毫秒) 1.3定义主函数 1.4定义0~15共阴极数码管字符码 1.5定义中断

    2024年02月02日
    浏览(45)
  • 51单片机-串口通信

    目录 1.什么是通信 1.1.通信的概念 1.2.传送方式 1.3.同步方式 1.4.传送方向 1.5.校验方式 2.单片机串口介绍 2.1.硬件电路 2.2.电平标准 2.3.常见接口 2.4.内部结构 2.5.相关寄存器 2.6.工作模式(模式1) 2.7.如何配置串口中断 3.实际应用 3.1.单片机向电脑发送数据 3.2.电脑向单片机发送

    2024年02月01日
    浏览(40)
  • 51单片机串口通信

    串口通信(serial communication)是指外设和计算机间通过数据信号线、地线等按位进行传输数据的一种通信方式,属于串行通信方式。 接口标准:常用RS-232和RS-485 RS-232C有一种9针的非标准连接器口,简称DB9。串口通信使用的大多都是DB9接口。在串口通信中,通常我们只使用2、

    2024年02月05日
    浏览(41)
  • STC89C51系列单片机与ADC0832通信

    ADC0832是一种常用的8位模数转换器,它可以将模拟信号转换为数字信号,以供单片机进行处理。STC89C51系列单片机是一款常见的8位单片机,具有强大的处理能力和丰富的外设资源,可以与ADC0832通信,实现模拟信号采集的功能。 本文将介绍如何使用STC89C51单片机与ADC0832通信,并

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包