【摘要】〗通用异步接收发送器MAX 3100,是一种最适合基于微型控 制器的小型系统用器件,特别是在串行红外与RS—232数据转换中,配上适当的程序,可使 硬件结构非常简单,体积更小。它还可广泛应用于手持仪器等小体积系统中。
关键词:MAX3100,转换器,红外数据
1 引言
通用异步接收发送器MAX 3100,特别适用于RS—232、RS—485、红外及光偶数据的连接,在关机状态下也能接收信号,执行中断。在基于微型控制器的小型系统中使用MAX 3100,可使 系统结构更为紧凑、小型化。这种器件还可应用于手持仪器、智能化仪器、SPI系统中的异 步接收发送器、RS—232/RS—485直接光偶驱动,同时能用于计算机/外围设备的低耗红外数据联接,且可在较宽的温度范围中使用。MAX 3100目前已实现商业化。
2 MAX3100工作原理
在MAX 3100中组合了一个简单的UART、一个带有SPI接口的波特率发生器及一个中断发生器 。通过将一个长度为16位的字写入到写状态寄存器中形成一个通用异步接收发送器。该字节中包含了波特率(位B0~B3)、数据字节长度、校验设定、8字节接收F1F0、普通UART与IR da ta时基选择、关机控制及4个中断屏蔽位。通过写一个16位字到一个写数据寄存器中发送数据,其中最后的7(校验位未设定)或8位(校验位被设定)是实际上被发送的数据。该寄存器控制着RTS输出端的状态。当接收中断被设定时,在接收到数据时就会产生一个中断。根据接收到的校验数据及CTS脚输入的逻辑电平,从一个16位的寄存器中依据先进先出原理读取数据。该寄存器同样还包含有用于普通操作出错及关机状态中的接收显示。
当振荡器选用1.8432 MHz或3.6864 MHz晶振时,波特率可达300~230k。
3 应用硬件与软件
该电路接收/发送IR data,发送/接收标准的RS—232数据。尽管8051包含了一个内部的UAR T,但它不支持IR data或高速通信。MAX 3100能够很方便地与8051相接,以支持高性能的通 信模式。8051没有SPI接口,所以要使用带有输入/输出口的MAX 3100以及一个简短的程序来 实现通信功能。
MAX 3100接收完数据后,向8051请求中断,8051响应中断通过串行输出口将MAX 3100输入的 数据传至MAX 3221。最终MAX 3221以标准的RS—232码输出数据。在MAX 3221接 收到RS—23 2数据时,8051通过串行输入口读入数据,并经MAX 3100 TX端口发出红外信号,程序如下:
;MAX 3100用于UART—8051 IR data
;…………………………………
PCON EQU 87H
DOUT BIT P1.0 ;数据从UART输出
DIN BIT P1.1 ;数据从UART输入
SCLK BIT P1.2 ;串行时钟
CS BIT P1.3 ;片选一低电平激活
IRQ BIT P3.2 ;中断信号
;RAM区域
TX1 EQU 10H ;发送缓冲器
TX2 EQU 11H
RX1 EQU 12H ;接收缓冲器
RX2 EQU 13H
;…………………………………
ORG OH ;开始
BEGIN: MOV SP,#70H ;初始化设置堆栈
CLR SCLK ;时钟清零
;8051内部UART初始化
MOV TMOD,#20H ;T1计数方式
MOV TH1,#253 ;波特率9600(晶振5.5MHZ)
MOV SCON,#50H ;8051串行口控制
MOV PCON,#80H ;波特率加倍
MOV TCON,#40H ;T1计数控制
;设置红外通信波特率为9600
MOV TX1,#0E4H
MOV TX2,#0CAH
ACALL UTLK ;发送至UART写寄存器
;………………主程序………………
LOOP; JNB IRQ,URCV ;有信号来自3100?
NRECV: JBC R1,RCV51 ;有信号来自3221?
AJMP LOOP
;从3100接收至8051
URCV: MOV TX1,#0 ;红外有请求,清发送缓冲器
MOV TX2,#0
ACALL UTLK ;接收红外端数据
MOV A, RX2
MOV SBUF,A ;以9600波特率RS—232方式送出
AJMP LOOP ;8051从RS—232接收数据,并不从3100发出红外信号
RCV51: MOV A,SBUF ;数据来自8051 UART
MOV TX1,#80H ;发送数
MOV TX2,A ;待发数据送至发送缓冲器
AGALL UTLK ;以红外方式送出
AJMP LOOP
;……………………………………………………………………
;子程序1:将TX1、TX2缓冲器内容发出,并接收16位信号至RX1、RX2
UTLK: CLR CS
MOV A, TX1
ACALL BYT8
MOV RX1,A
MOVE A, TX2
AGALL BYTB
MOV RX2,A
SETB CS
RET
;…………………………………………………………………
;子程序2:送8位时钟信号,累加器A循环送出、同时读入8位数据
BYT8: MOV R4,#8
SETB DIN
B8LP: RLC A
MOV DOUT,C
SETB SCLK
MOV C,DIN
CLR SCLK
MOV ACC.0,C
DJNZ R4,B8LP
RET
END
;…………………………………………………………………
该程序通过端口发送与接收数据的核心与MAX 3100组合在8051中模拟一个SPI口。这 项技术对于任何一种8051基于MAX 3100的应用来说都是非常有用的。
参考文献
1 何立民.MCS 51系列单片机应用系统设计、系统配置与接口技术.北京:北京航空 航天大学出版社,1989
(