“红外通信2(收发多个字节)”程序测试与原理说明
1 程序运行效果说明
测试方法说明:需要两个电路板,一个用于发送,另一个用于接收。按键KEY1将数码管上显示的数据发送给接收方,按键KEY2让一个数据加1,按键KEY3增加数码管上显示数据的个数。按KEY1即可把发送方数码管上的数据发送到接收方的数码管上。
2 程序相关电路及工作原理说明
图1 红外发送接收电路连接示意图
红外收发多个字节原理与红通信1(收发单个字节)原理相同,以下是红外通信1的原理: 红外发送接收功能主要依靠2个部分来实现,一是红外收发电路,二是串行接口。红外收发电路用于数据的传输,相当于一座通信的桥梁;串行接口建立在这座桥梁的两端,能把我们需要传输的数据通过红外收发电路这座桥梁进行收发。 2.1 红外发送接收电路工作原理(详述见红外测试案例)
红外线接收头可将收到的38kHz的脉冲转换成低电平,使P3.6的输入为0;接收头没收到脉冲则持续输出高电平,使P3.6输入为1。因此,连接在P3.5的红外发光二极管发出38kHz脉冲代表发送0,否则代表发送1。 2.2串口1工作原理
串口:串口是串行接口的简称,可以将数据在引脚上一位一位地进行发送和接收。因为
串口的数据发送和接收都需要有一个同步的速度,否则就无法正常传输,所以我们在使用串口时需要确定发送和接收的频率,而这个频率我们称为波特率。收发双发设定好了相同的波特率才能正常通信。本例用的是串口1,使用定时器T1作为波特率发生器,发送和接收引脚分配在P3.7和P3.6。
串口1有两个缓冲器的,名称都是SBUF,用于收发数据。
(1)发送信号:(给发送缓冲寄存器SBUF赋值后)数据从P3.7输出(例如:SBUF = data,则开始发送data的内容)。当数据发送完, TI(发送中断请求标志位)自动置1,引起中断;
(2)接收信号:当数据接收完毕后, RI(接收中断请求标志位)自动置1,引起中断,此时可以从接收缓冲寄存器SBUF中读出数据(例如:data=SBUF)。 注: TI和RI需要软件清零。发送和接收中断会转跳到同一个中断处理函数。 对于串口发送数据的规则,我们可以参照下面的时序图:
串口1模式1接收/发送时序图
那么,我们如何将串行接口的数据装载到红外收发这座通信桥梁上呢?
为了使红外发送电路知道在什么时候发送什么样的数据,我们只需要查看串行接口P3.7
上发送的数据是什么,让红外发光二极管按照P3.7发送的数据做出相应的发光行为,接收一方便能从连接在P3.6引脚上的红外接收头接收到数据,然后对数据进行解调,从而达到了通信的目的。
相关推荐: