论文:基于单片机红外数据通讯系统的设计内容摘要:

的串行输出端 TXD 送出并驱动 T1 管,数位“ 0”使 T1 管导通,通过 T2 管调制成 38kHz 的载波信号,并利用两个红外发射管 D1和 D1 以光脉冲的形式向外发送。 数位“ 1”使 T1 管截止,红外发射管 D1 和 D2 不发射红外光,若传送的波特率设为 1200bps,则每个数位“ 0”对应 32 个载波脉 冲调制信号的时R1 11 序图如图 所示。 图 调制信号的时序图 使用载波方式传输数据可以避免空气中频杂散光的干扰,提高系统的抗干扰能力。 在保证不超过红外管允许功耗的前提下,要有尽可能远的通信距离,可采取二个方法:①并联多个红外发光管,以加大红外光的辐射功率;②减小载波脉冲的占空比,提高其峰值。 2)红外接收电路,如图 所示。 图 红外接收电路 红外接收电路选用 Vishay 公司生产的专用红外接收管 TSOP1738,它是一 种专门用于红外遥控和数据通信的三端 红外接收组件,其中包括了接收、放大、和解调等功能, 使用单电源+ 5V 供电,具有功耗低、抗干扰能力强、输入灵敏度高、对其他波长( 950nm 以外) 12 的红外光不敏感。 TSOP1738 的工作原理为:首先通过红外光敏元件将接收到的载波频率为 38kHz 的脉冲调制光信号转化为电信号,再由前置放大器和自动增益控制电路进行放大处理,然后通过带通滤波器进行滤波,滤波后的信号由解调电路进行解调,最后由输出级电路进行反向放大输出。 为保证红外接收模块 TSOP1738 接收的准确,要求发送端载波信号的频率应尽可能接近 38kHz,因此,在 设计脉冲振荡器时要选用精密元件并保证电源电压稳定。 再有,发送的数位“ 0”至少要对应 14 个载波脉冲,这就要求传送的波特率不能超过 2400bps,利用上述红外收发电路构成的红外信道最大通讯距离为 8m。 软件设计 [2] 1)通信方式 考虑到红外光反射的原因,在全双工方式下发送的信号也可能会被本身接收,因此,红外通信需采半双工通信方式。 所谓半双工通信,指的是通信双方可以进行双向通信,但是不能同时进行,在同一时间内,一方作为通信,另一方作为接收。 此设计中采用异步传输的方式,在异步传输中每个字符的前后有起 始信号和终止信号。 这里设置单片机的串行口采用方式 1通信;片内定时器 T1 作为波特率发生器,选择传送的波特率 1200bps,则定时器 T1 的初值应设置 TL1=TH1=E8H,另外应禁止定时器 T1 中断以免因定时器 T1 溢出而产生不必要的中断。 2)通信协议 进行红外通信之前,通信双方首先要根据系统的功能要求订立某种特定的通信协议, 然后才能编写相应的通信程序。 A 机有一个启动按键 START,按下 START 键开始发送数据, B 机有三个作为指示器的发光二极管 V V V3,分别表示接收中( BUSY)、接收正确( OK)和 接收错误( ERR)。 A 机发送的数据区存放在外部数据存储器 1000H 为起始地址的存储区内,发送字节数小于 255 个。 B 机接收的数据区存放在外部数据存储区 1100H 为起始地址的存储区内,长度小于 256 个。 A 机发送过程:当检测到按下 START 键后,先发送一个 ESC 控制符( ASCII 码的值为27 和 1BH),然后发送数据区内的 ASCII 码,采用奇校验,当遇到回车 (CR)控制符后,发送结束,再次等待按下 START 键,重复前面过程。 B 机 接收过程:等待接收 TSOP1738 发出的字符,如收到 ESC 字符( ASCII 码的值为27 和 IBH),进入接收状态,发出 BUSY 指示信号,开始接收数据,遇到回车 (CR)控制符和接收字符已达 255 个,表示接收结束。 如接收过程中,发现奇校验错,则在接收结束时, 13 发出 ERR 指示信号,否则发出 OK 指示信号。 如接收过程中,又收到 ESC 控制符,则之前收到的数据作废,重新开始接收,并计数。 1)定义有关标志符 单片机各源程序之前,定义有关标志符: A_START BJT 90H ;定义按键输入位为 P1。 0 F_START BJT 00H ;定义按键标志位 DATE1 EQU 1000H ;定义发送数据区首地址 DATE2 EQU 1100H ;定义接收数据区首地址 ESC EQU 27 ;定义 ESC 控制码 CR EQU 13 ;定义回车控制符 F_ERR BJT 91H ;定义 ERR 标志位 P1。 1 F_OK BJT 92H ;定义 OK 标志为 P1。 2 F_BUSY BJT 93H ;定义 Busy 标志为 P1。 3 2)单片机初始化程序 INI_A: MOV TMOD , 20H ;置定时器 1 工作方 式 2 MOV TL1 , 0E8H ;设置波特率为 1200bps ;晶片振荡采用 11。 0592MHz MOV TH1 , 0E8H CLR ET1 ;禁止 T1 中断 SETB TR1 ;启动定时器 1 MOV SCON, 40H ;置串行口工作方式 1 MOV PCON, 00H MOV C, A_START ;初始化基本变量 MOV F_STATRT, C SETB F_Busy ;关闭三个指示灯 SETB F_OK SETB F_ERR 3) 发送数据程序 等待发送子程序: WAIT: MOV C, F_STRAT ;取上次 START 状态 MOV F0, C ;临时存入 F0 MOV C, F_STRAT ;检测 START 按键 MOV F_START, C ;保存 START 按键状态 14 CPL C。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。