单片机第11课:串口通信查询方式---从计算机接受数据

如何用计算机给单片机发送数据,单片机如何接收数据呢?

JP3与P0口相连接。从计算机给单片机发送一个十六进制数据,然后看数码管的显示。

#include<reg51.h>
/*
*给单片机发送一个十六进制的数据,用来显示数码管
*/
void initSer();
void main()
{<span>	</span>initSer();
	while(1)
	{
		//查询RI的值,如果是1,那么接收到了数据,此时应该软件清零,RI = 0
		if(RI == 1)
		{
			RI = 0;
			//从缓冲器中获取从计算机发过来的数据,赋值给P0
			P0 = SBUF;
		}
	}
}

//初始化函数
void initSer()
{
	//让定时器T1工作在方式2下
	TMOD = 0x20;
	//赋值
	TH1 = 0xfd;
	TL1 = 0xfd;
	//串口的工作方式为1
	SM0 = 0;
	SM1 = 1;
	//允许串口接受
	REN = 1;
	// 启动定时器
	TR1 = 1;

	P0 = 0xc0;
}

串口通信查询方式步骤:

1---确定定时器T1的工作方式

2---给定时器的两个寄存器赋值

3---启动定时器T1

4---确定串口的工作方式

5---如果单片机要从计算机获取数据,那么应该让REN = 1

6---查询RI的值,如果是1,那么就接收到了数据,注意马上应该软件置RI = 0

时间: 2024-10-27 05:22:24

单片机第11课:串口通信查询方式---从计算机接受数据的相关文章

单片机第12课:串口通信---中断方式--从计算机接收数据

JP3和P0口连接.用中断的方式来接收数据. #include<reg51.h> //声明初始化子函数 void initSer(); void main() { //初始化子函数调用 initSer(); while(1) { //一句话都没有 } } //定义初始化子函数 void initSer() { //定时器工作方式为2 TMOD = 0x20; //波特率9600,SMOD=0 TH1 = 0xfd; TL1 = 0xfd; //启动定时器 TR1 = 1; //串口工作方式1

51单片机GPIO口模拟串口通信

51单片机GPIO口模拟串口通信 标签: bytetimer终端存储 2011-08-03 11:06 6387人阅读 评论(2) 收藏 举报 本文章已收录于: 分类: 深入C语言(20) 作者同类文章X 1 #include "reg52.h" 2 #include "intrins.h" 3 #include "math.h" 4 #include "stdio.h" 5 sbit BT_SND =P1^5; 6 sbit

奶爸业余单片机学习之:UART串口通信学习笔记(二)

/************************************** 串口通信实验* 晶振11.0592MHz* 波特率9600bps* 中断方式实现:单片机接收电脑数据,加1后发送回电脑***************************************/ #include<reg52.h> unsigned char dat; /**********串口通信配置*******************/void UART_CONFIG(unsigned long baud

奶爸业余单片机学习之:UART串口通信学习笔记(一)

UART串口通信,全名:异步串口通信 UART的四种工作模式:(0,1,2,3) 模式1:SM0 = 0; SM1 = 1;REN = 1  //由SCON(串行口控制寄存器)控制,可位寻址.10位异步收发(8位数据),波特率可变(由定时器1的溢出率控制) 模式1功能:以TXD为例,平时没数据时,TXD为高电平,需要发送数据时,先发送一个起始位0,然后发送八位数据位(一个字节),最后发送一位停止位1: REN位为允许串行接收位:REN = 1:允许串行口接收数据:REN = 0:禁止串行口接收数

Java实现RS485串口通信,发送和接收数据进行解析

最近项目有一个空气检测仪,需要得到空气检测仪的实时数据,保存到数据库当中.根据了解得到,硬件是通过rs485进行串口通讯的,需要发送16进制命令给仪器,然后通过轮询来得到数据. 需要先要下载RXTX的jar包,win64位下载地址:http://pan.baidu.com/s/1o6zLmTc):将解压后的rxtxParallel.dll和rxtxSerial.dll两个文件放在%JAVA_HOME%/jre/bin目录下,这样该包才能被正常的加载和调用. 代码如下: package com.g

第11课.串口(UART)的使用

1.UART连线图 S3C2440有3个独立通道的UART 2.数据传输流程 1.平时数据线处于"空闲"状态(1状态) 2.当要发送数据时,UART改变TxD数据线的状态(变为0状态),并维持1位的时间,这样接收方检测到开始位后,在等待1.5位的时间就开始一位一位的检测数据线的状态得到所传输的数据 3.UART一帧中可以有5,6,7或8位的数据,发送方一位一位的改变数据线的状态将它们发送出去.首先发送最低位 4.如果使用校验功能,UART在发送完数据位后,还要发送1个校验位.有两种校验

串口通信校验方式

1. even 每个字节传送整个过程中bit为1的个数是偶数个(校验位调整个数) 2. odd 每个字节传送整个过程中bit为1的个数是奇数个(校验位调整个数) 3. none parity没有校验位 4. space 校验位总为0 5. mark 校验位总为1

Linux与Windows串口通信

串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛.现在国际上不断有串口新技术及新规格推出,结合社会各方面需要,串口通信发展的空间庞大.串口通讯技术因其自身的优势和特性,及计算机技术的广泛应用深入到生活和生产的各个领域,世界上数以亿计的通讯设备都以串口通讯的方式.在进行着数据的传输.在一个应用系统中,同时使用Windows和Linux操作系统,合理地分配资源,各取所长,是实现系统高性能的有效途径.为了使两个不同操作系统能协同工作,实现资源和数据共享,需要在两者

Arduino和C51之串口通信

技术:51单片机.Arduino.串口通信 概述 本文主要讲解串口通信技术的使用方法,并通过串口点灯实验介绍了51单片机和Arduino串口的使用,为初学者学习串口知识提供帮助 详细 代码下载:http://www.demodashi.com/demo/14691.html 一.串口通信 串口通信(Serial CommunicaTIons)的概念非常简单,串口按位(bit)发送和接收字节.串口用于ASCII码字符的传输,通信使用3根线完成,分别是地线.发送线.接收线.由于串口通信是异步的,端口