编辑: 静看花开花落 | 2019-08-09 |
1 HT9200A/B 双音多频(DTMF)信号发生器使用说明 文件编码:AN0037S 简介 该软件示范如何使用 HT9200A/B.
Driver使用说明 ? Driver 的使用 ? 软件提供 HT9200A/B 的初始化函数和串并行模式发送函数, 分别存放于 HT9200A.ASM、 HT9200B.ASM. ? 如果使用芯片 HT9200A 只需将 HT9200A.ASM 中的数据定义部分, INIT_SENDER_SERIAL_9200A、SEND_DATA_SERIAL_9200 子程序放入用户程序相应 地方,注意,数据定义部分用户应根据自己的硬件电路做相应的修改. ? 如果使用芯片 HT9200B 串行模式,需将 HT9200B.ASM 中的数据定义部分, INIT_SENDER_SERIAL_9200B、SEND_DATA_SERIAL_9200 子程序放入用户程序相应 地方,并行模式需将注意,HT9200B.ASM 中的数据定义部分, INIT_SENDER_PARALLEL_9200B,SEND_DATA_PARALLEL_9200B 子程序放入用户程 序相应地方,同样,数据定义部分用户应根据自己的硬件电路做相应的修改. ? 各个 Driver 的详细说明 ? HT9200A 串行模式包括2个子程序:INIT_SENDER_SERIAL_9200A 、 SEND_DATA_serial_9200 INIT_SENDER_SERIAL_9200A: 实现功能:串行模式初始化程序 入口参数:无 出口参数:无ROM 占用:6 RAM 占用:无STACK 占用:无SEND_DATA_serial_9200: 实现功能:HT9200B 串行模式数据发送程序 入口参数:SEND_DATA HT9200A/B 双音多频(DTMF)信号发生器使用说明
2 出口参数:无ROM 占用:13 RAM 占用:2 STACK 占用:无?HT9200B 串行模式包括
2 个子程序: INIT_SENDER_SERIAL_9200B、 SEND_DATA_serial_9200 INIT_SENDER_SERIAL_9200B: 实现功能:串行模式初始化程序 入口参数:无 出口参数:无ROM 占用:8 RAM 占用:无STACK 占用:无SEND_DATA_serial_9200: 实现功能:HT9200B 串行模式数据发送程序 入口参数:SEND_DATA 出口参数:无ROM 占用:13 RAM 占用:2 STACK 占用:无?HT9200B 并行模式包括2个子程序:INIT_SENDER_PARALLEL_9200B 、 SEND_DATA_PARALLEL _9200 INIT_SENDER_PARALLEL _9200B: 实现功能:串行模式初始化程序 入口参数:SEND_DATA 出口参数:无ROM 占用:9 RAM 占用:无STACK 占用:无SEND_DATA_PARALLEL _9200: 实现功能:HT9200B 串行模式数据发送程序 入口参数:SEND_DATA 出口参数:无ROM 占用:13 RAM 占用:1 STACK 占用:无 程序列表及注释说明见 HT9200A.ASM、HT9200B.ASM HT9200A/B 双音多频(DTMF)信号发生器使用说明
3 应用范例 应用电路 ? 串行模式 H T
9 2
0 0 A V D D D T M F D A T A C L K
1 2
3 4
8 7
6 5 C E X
2 X
1 V S S
3 .
5 7
9 5
4 5 M H z V D D T o n e O u t p u t V D D V D D V S S C E C L K D A T A
2 0 p F
2 0 p F M C U ? 并行模式 H T
9 2
0 0 B
1 4
1 3
1 2
1 1
1 0
9 8
1 2
3 4
5 6
7 C E X
2 X
1 V S S N C D
0 D
1 V D D D T M F D A T A C L K S / P D
3 D
2 3 .
5 7
9 5
4 5 M H z V D D C E D
0 D
1 D
2 D
3 S / P C L K D A T A V D D T o n e O u t p u t V D D V S S
2 0 p F
2 0 p F V S S M C U 应用范例程序说明 在本应用中,我们采用 HT48R30A-1 来控制 HT9200A/B 的DTMF 发生.由于 DTMF 的产 生有两种方式,串行模式和并行模式,所以我们定义了三个宏_SERIAL_MODE_9200A、 _SERIAL_MODE_9200B 和_PARALLEL_MODE,分别用于串行模式(SERIAL)和并行模式 (PARALLEL)下产生 DTMF 信号.对于 HT9200A 来说,只有串行模式,而对于 HT9200B 而言则有两种模式,所以定义了一个宏 TYPE_MODE,可以根据芯片型号和工作模式进行 条件汇编.详细说明见 HT9200.ASM HT9200A/B 双音多频(DTMF)信号发生器使用说明
4 流程图 ? 串行模式 各端口初始化 初始化计数器 count 寄存器和码值 buffer 寄存器 调用发送数据子程序 发送 DTMF 码 调用延时子程序 调用发送数据子程序 发送停止码 0FFH 调用延时子程序 buffer=buffer+1 count=count-1 Count=0? 调用延时子程序 Yes No 调用延时子程序 HT9200A/B 双音多频(DTMF)信号发生器使用说明
5 ? 并行模式 各端口初始化 初始化 count 和buffer 寄存器并 SET CE 写DTMF 码到 Data 口,并CLR 调用延时子程序 SET CE, 终止 DTMF 信号的发送 调用延时子程序 buffer=buffer+1 count=count-1 Count=0? 调用延时子程序 Yes No HT9200A/B 双音多频(DTMF)信号发生器使用说明
6 芯片简介 HT9200A/B 双音多频信号发生器是被设计成带 μС 接口的.它们可由指令控制产生
16 种双 频信号和
8 种单频信号,并由 DTMF 引脚输出.HT9200A 提供一种串行模式,而HT9200B 可以选择为串行或并行模式,该芯片可以有多种应用,如安全系统、家庭自动化、通过电 话线进行远程控制、通讯系统等. HT9200A 的封装形式为 8DIP/SOP. HT9200B 的封装形式为 14SOP. C E C E
1 2
3 4
8 7
6 5 X
2 X
1 V S S V D D D T M F D A T A C L K H T
9 2
0 0 A S / P
8 D I P - A / S O P - A
1 4
1 3
1 2
1 1
1 0
9 8
1 2
3 4
5 6
7 H T
9 2
0 0 B X
2 X
1 V S S N C D
0 D
1 V D D D T M F D A T A C L K D
3 D
2 1
4 S O P - A 串行模式(HT9200A/HT9200B) 在串行模式下,HT9200A/B 通过 DATA 引脚输入的一个 5bit 的代码来控制不同的 DTMF 信号输出,这5位代码按照 D0 到D4 的顺序来传,并且数据要在 CLK 引脚下降沿到来之 前放到输出闩锁中. 句柄与频率输出对应关系(串行模式): Digit D4 D3 D2 D1 D0 频率输出(Hz)
1 0
0 0
0 1 697+1209
2 0
0 0
1 0 697+1336
3 0
0 0
1 1 697+1477
4 0
0 1
0 0 770+1209
5 0
0 1
0 1 770+1336
6 0
0 1
1 0 770+1477
7 0
0 1
1 1 852+1209
8 0
1 0
0 0 852+1336
9 0
1 0
0 1 852+1477
0 0
1 0
1 0 941+1336 *
0 1
0 1
1 941+1209 #
0 1
1 0
0 941+1477 A
0 1
1 0
1 697+1633 B
0 1
1 1
0 770+1633 C
0 1
1 1
1 852+1633 D
0 0
0 0
0 941+1633 HT9200A/B 双音多频(DTMF)信号发生器使用说明
7 Digit D4 D3 D2 D1 D0 频率输出(Hz) ―
1 0
0 0
0 697 ―
1 0
0 0
1 770 ―
1 0
0 1
0 852 ―
1 0
0 1
1 941 ―
1 0
1 0
0 1209 ―
1 0
1 0
1 1336 ―
1 0
1 1
0 1477 ―
1 0
1 1
1 1633 DTMF OFF
1 1
1 1
1 ― 时序图: C E S / P X
2 D A T A C L K L S B M S B D T M F L S B M S B L S B M S B
1 1
1 1
1 D i g i t
1 D i g i t
2 D i g i t
1 D T M F s i g n a l D i g i t
2 D T M F s i g n a l S t o p c o d e ( O s c i l l a t o r ) t U P HT9200A/B 双音多频(DTMF)信号发生器使用说明
8 并行模式(只适用于HT9200B) HT9200B除了能用于串行模式,还能用于并行模式.当S ― /P引脚为高电平时,HT9200B工作 于并行模式.在并行模式下,HT9200B通过D0~D3 引脚输入的代码来控制不同的DTMF信 号输出.HT9200B是在CE ――― 信号由高准位变为低准位时接收数据的.在CE ――― 下降沿和DTMF产 生信号输出之间会有一个延时(大约为 6ms). 句柄与频率输出对应关系(并行模式): Digit D3 D2 D1 D0 频率输出(Hz)
1 0
0 0
1 697+1209
2 0
0 1
0 697+1336
3 0
0 1
1 697+1477
4 0
1 0
0 770+1209
5 0
1 0
1 770+1336
6 0
1 1
0 770+1477
7 0
1 1
1 852+1209
8 1
0 0
0 852+1336
9 1
0 0
1 852+1477
0 1
0 1
0 941+1336 *
1 0
1 1 941+1209 #
1 1
0 0 941+1477 A
1 1
0 1 697+1633 B
1 1
1 0 770+1633 C
1 1
1 1 852+1633 D
0 0
0 0 941+1633 时序图: S / P C E t D E D
0 ~ D
3 D T M F t D E X
2 ( O s c i l l a t o r ) N o t e : T h e d a t a ( D
0 ~ D
3 ) s h o u l d b e r e a d y b e f o r e t h e C E b e c o m e s l o w .