⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9200send.asm

📁 DTMF编码芯片HT9200的51接口程序
💻 ASM
字号:
;==========================================================
;========HT9200发送子程序
;子程序名:HT9200
;功    能:发送R2表示的数据个数
;说    明:输入数据与发送DTMF码的关系:00H-0  01H-1  02H-2  03H-3  04H-4  05H-5  06H-6  07H-7
;				     08H-8  09H-9  0AH-A  0BH-B  0CH-C  0DH-D  0EH-*  0FH-#
;函数调用:Delay_10MS  10毫秒延时程序
;入口参数:R2  		传送数据个数
;	  HT9200_BUF  	数据缓冲区
;出口参数:无
;资源占用:R0~R5, A
;设    计:XZL                      日期:2005-07-19

;==========================================================
;==DEFINE
HT9200_CE	BIT     P1.0;		芯片使能端0有效
HT9200_DA	BIT	P1.2;		串行数据端口
HT9200_CK	BIT	P1.1;		时钟端口,0锁存
HT9200_BUF	EQU	30H;		待发送数据缓冲区首地址

HT9200:	PUSH	PSW;
	PUSH	A;
	PUSH	DPL;
	PUSH	DPH;

	SETB	HT9200_CE;
	SETB	HT9200_CK;
	CLR	HT9200_CE;		芯片使能
	LCALL	Delay_10MS;		使能到晶体起振延时时间
	MOV	R1,	#HT9200_BUF;	被传送数据的地址指针R1
	MOV	DPTR,	#TABLE_1;
HT9200_L1:
	MOV	R3,	#05H;		5位串行数据代表一位
	MOV	A,	@R1;
	MOVC	A,	@A+DPTR;
HT9200_L2:
	MOV	HT9200_DA, ACC.0;
	RR	A;
	CLR	HT9200_CK;		时钟下降沿锁存数据
	NOP;
	NOP;
	NOP;
	SETB	HT9200_CK;		开启锁存,准备下次接收
	NOP;
	NOP;
	NOP;
	DJNZ	R3,	HT9200_L2;	已经传送5位?否继续传送
	INC	R1;			指向下一个传送数据
	DJNZ	R2,	HT9200_L1;	判断数据是否全部传送完毕?否读取下一个传送数据
HT9200_OVER:
	MOV	R3,	#05H;
	MOV	A,	#1FH;		传送结束标志数11111;
HT9200_L3:
	MOV	HT9200_DA, ACC.0;
	RR	A;
	CLR	HT9200_CK;
	NOP;
	NOP;
	NOP;
	SETB	HT9200_CK;
	NOP;
	NOP;
	NOP;
	DJNZ	R3,	HT9200_L3;
	SETB	HT9200_CE;		芯片禁止使能
	POP	DPH;
	POP	DPL;
	POP	A;
	POP	PSW;
	RET;
;==========================================================
;时间计算(R4*2*R5+R5*2)*机器周期
Delay_10MS:
	MOV	R5,	#14H;
Loop2:	MOV	R4,	#0FFH;
	DJNZ	R4,	$;
	DJNZ	R5,	Loop2;
	RET
;=============================================================================================
TABLE_1:DB	0AH, 01H, 02H,	03H, 04H, 05H, 06H, 07H,08H, 09H, 0DH, 0EH, 0FH, 00H, 0BH, 0CH
;                0    1    2     3    4    5    6    7   8    9    A    B    C    D    *    #



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -