DTMF电路HT9200A与单片机的接口
HT9200A是Holtek公司生产的串行式DTMF电路芯片。本文分析了HT9200A的电路结构与作用特点,给出了HT9200A与AT89C51单片机的接口电路,并结合公用电话网中的数据通讯给出了具体的软件编程。
在水、电、煤气表的自动抄录和IC卡电话机的话费统计等分布式测控系统中,人们希望能在现有的公用电话网上进行适当的网络联接以实现数据的传输与控制。Holtek公司新近推出的DTMF电路HT9200A便是专用于电话联网控制的模块,它可以方便地与微控制器系统接口,以便组成智能型电话网络的测控系统。
1 HT9200A芯片介绍
HT9200A是串行式DTMF电路,具有很好的温度适应性,其工作温度范围为-20℃~+70℃,它采用8脚DIP或SOP封装形式,其管脚排列昭图1所示。各引脚的功能说明如下:
●X1、X2:3.579545MHz晶振接入端;
●VDD、VSS:电源正负输入端,正常工作电压范围为2~5.5V,工作电流为2mA左右;
●CLK:串行数据的同步信号输入端,fCLK为100kHz左右;
●DATA:串行数据输入端;
●DTMF:DTMF信号输出端。
HT9200A的输入与输出频率由5位(D4~D0)不同的位码组合决定,表1所列为HT9200的输入位码组合与输出频率的对应关系。
表1 HT9200A输入组合与输出频率
2 接口电路
HT9200A主要用于分布式电话网络测控系统,它与89C51微控制器的接口电路如图3所示。
在图3中,89C51单片机的P1.0用于产生串行同步信号,P1.1用于输出串行数据,由P2.7产生低电平的片选信号。
可以看出,HT9200A主要起着拔号联接的作用,以使主叫机与被叫分机建立联系。
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左右。
在水、电、煤气表的自动抄录和IC卡电话机的话费统计等分布式测控系统中,人们希望能在现有的公用电话网上进行适当的网络联接以实现数据的传输与控制。Holtek公司新近推出的DTMF电路HT9200A便是专用于电话联网控制的模块,它可以方便地与微控制器系统接口,以便组成智能型电话网络的测控系统。
1 HT9200A芯片介绍
HT9200A是串行式DTMF电路,具有很好的温度适应性,其工作温度范围为-20℃~+70℃,它采用8脚DIP或SOP封装形式,其管脚排列昭图1所示。各引脚的功能说明如下:

●X1、X2:3.579545MHz晶振接入端;
●VDD、VSS:电源正负输入端,正常工作电压范围为2~5.5V,工作电流为2mA左右;
●CLK:串行数据的同步信号输入端,fCLK为100kHz左右;
●DATA:串行数据输入端;
●DTMF:DTMF信号输出端。

HT9200A的输入与输出频率由5位(D4~D0)不同的位码组合决定,表1所列为HT9200的输入位码组合与输出频率的对应关系。
表1 HT9200A输入组合与输出频率
| D4 | D3 | D2 | D1 | D0 | 符号 | 输出频率(HZ) |
| 0 | 0 | 0 | 0 | 0 | 0 | 941+1633 |
| 0 | 0 | 0 | 0 | 1 | 1 | 697+1209 |
| 0 | 0 | 0 | 1 | 0 | 2 | 697+1336 |
| 0 | 0 | 0 | 1 | 1 | 3 | 697+1477 |
| 0 | 0 | 1 | 0 | 0 | 4 | 770+1209 |
| 0 | 0 | 1 | 0 | 1 | 5 | 770+1336 |
| 0 | 0 | 1 | 1 | 0 | 6 | 770+1477 |
| 0 | 0 | 1 | 1 | 1 | 7 | 852+1209 |
| 0 | 1 | 0 | 0 | 0 | 8 | 852+1336 |
| 0 | 1 | 0 | 0 | 1 | 9 | 852+1477 |
| 0 | 1 | 0 | 1 | 0 | 0 | 941+1336 |
| 0 | 1 | 0 | 1 | 1 | * | 941+1209 |
| 0 | 1 | 1 | 0 | 0 | # | 941+1477 |
| 0 | 1 | 1 | 0 | 1 | A | 697+1633 |
| 0 | 1 | 1 | 1 | 0 | B | 770+1633 |
| 0 | 1 | 1 | 1 | 1 | C | 852+1633 |
| 1 | 1 | 1 | 1 | 1 | DTMF结束 | - |
2 接口电路
HT9200A主要用于分布式电话网络测控系统,它与89C51微控制器的接口电路如图3所示。
在图3中,89C51单片机的P1.0用于产生串行同步信号,P1.1用于输出串行数据,由P2.7产生低电平的片选信号。

可以看出,HT9200A主要起着拔号联接的作用,以使主叫机与被叫分机建立联系。
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左右。
本文来源:胡嗣云 作者:
关于 DTMF电路 的相关解决方案
- 2007-01-16DTMF电路HT9200A与单片机的接口

