在水、电、煤气表的自动抄录和IC卡电话机的话费统计等分布式测控系统中,人们希望能在现有的公用电话网上进行适当的网络联接以实现数据的传输与控制。Holtek公司新近推出的DTMF电路HT9200A便是专用于电话联网控制的模块,它可以方便地与微控制器系统接口,以便组成智能型电话网络的测控系统。
1 HT9200A芯片介绍
HT9200A是串行式DTMF电路,具有很好的温度适应性,其工作温度范围为-20℃~+70℃,它采用8脚DIP或SOP封装形式,其管脚排列昭图1所示。各引脚的功能说明如下:
●CE:片选信号输入端,低电平有效;
●X1、X2:3.579545MHz晶振接入端;
●VDD、Vss:电源正负输入端,正常工作电压范围为2~5.5V,工作电流为2mA左右;
●CLK:串行数据的同步信号输入端,fCLK为100kHz左右;
●DATA:串行数据输入端;
●DTMF:DTMF信号输出端。
图2所示为HT9200A的输入输出时序图当CE为低电平时,选中芯片并在CLK的下降沿将串行口DATA上的数据锁存。每个数据为5位二进制码,在CLK下降沿到来时,选锁存低位,再锁存高位。当5位均为1时,结束DTMF的发送。
HT9200A的输入与输出频率由5位(D4~D0)不同的位码组合决定,表1所列为HT9200的输入位码组合与输出频率的对应关系。
2 接口电路
HT9200A主要用于分布式电话网络测控系统,它与89C51微控制器的接口电路如图3所示。
在图3中,89C51单片机的P1.0用于产生串行同步信号,P1.1用于输出串行数据,由P2.7产生低电平的片选信号。
MSM7512B为嵌入式调制解调专用电路[1],它采用CCITTV.23标准,具有1200bps半双工或1200bps接收/75bps发送两种通讯方式。图中,由单片机控制HT9200A并产生DTMF信号,以供MSM7512B的EAI输入端使用,经MSM7512B内部放大器处理后,再由MSM7512B的AO脚输出。在主叫机与被叫分机通过电信程控交换机建立联接后,MSM7512B就可在89C51单片机控制下进行数据收发工作。
3 编程
根据图3所示电路,现给出AT89C51与HT9200A进行接口控制的软件编程:
…
MOV R1,#30H
TEL:MOV A,@R1 ;发8位电话号码
TCALL DTMF
INC R1
CJNE R1,#38H,TEL
…
DTMF:MOV R0,#0
LA:SETB P1.0 ;准备接收
CLR C
RRC A
MOV P1.1,C ;送数据到P1.1口
LCALL D50US
CLR P1.0 ;锁存
LCALL D50US
INCR0
CJNE R0,#5,LA
RET
D50US:MOV R7,#10
DD1:NOP
NOP
DJNZ R7,DD1
RET
工作时,首先从89C51内部RAM的30H~37H单元取出被叫方的8位电话号码,然后调OTMF子程序并移位到P1.1口,最后通过P1.0下降沿锁存。由于HT9200A的CLK频率范围为100kHz~500kHz,因此,在发送过程中,需调用50μs延时子程序以使fCLK处在100kHz左右。