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

📄 sandr.asm.bak

📁 医院语音寻孚系统的汇编源代码
💻 BAK
字号:
;*******发送/接收程序**************
;首先要整理数据
F_TEL1	BIT	010H	;在电话1解码的最后,应设置此标志位
F_TEL2	BIT	011H	;
F_DATA_LAST	BIT	012H	;数据发送完成标志 

TEL_BUF
TEL_NUM			;暂存位置




;输入:要发送的个数tel_num、发送BUFFER的开始位置tel_buf
;影响的是R0、R1、R2、R3、R4


OUT:
	JNB F_TEL1,SEND_TEL2	;首先合并
	AJMP SEND_TEL1
	JNB F_TEL2,OUTRET
SEND_TEL1:
	MOV R0,#TEL1_BUF
	MOV R2,TEL1_NUM	
	AJMP START_OUT
SEND_TEL2:
	MOV R0,#TEL2_BUF
	MOV R2,TEL2_NUM	
	
START_OUT:
	MOV TEL_BUF,R0	; 暂存
	MOV R3,TEL_BUF
	MOV TEL_NUM,R2


	MOV A,R0
	ADD A,R2
	MOV R2,A	;此时,R2是结束的地址
START_OUT_0:
	MOV A,R0
	MOV R1,A
	MOV A,R2
	XRL A,R0	;是否已经到了最后一个
	JNZ START_OUT_1
	SETB F_DATA_LAST
	AJMP START_OUT_2
START_OUT_1:	
	INC R1
	MOV A,R2
	XRL A,R1	;是否已经到了最后一个
	JNZ START_OUT_2
	SETB F_DATA_LAST
START_OUT_2:	
	MOV A,@R0
	SWAP A
	ANL A,#0F0H	
	MOV @R3,A
	JNB F_DATA_LAST START_OUT_4	;最后一个数低4位为F
	ORL A,#00FH
	MOV @R3,A
	AJMP START_OUT_3
START_OUT_4:	
	MOV A,@R1
	ORL A,@R0
	MOV @R3,A

	INC R0
	INC R0
	INC R3
	
	JB F_DATA_LAST,START_OUT_3
	AJMP START_OUT_0
	SETB DATACLK
START_OUT_3:
		
	MOV A,TEL_NUM
	MOV B,2
	DIV AB
	INC A
	MOV TEL_NUM,A	;是要发送的BYTE个数
	MOV R2,TEL_NUM
	
	MOV A,R3
	MOV R0,A
	
START_OUT_5:
	MOV R1,#08H
	CLR C
START_OUT_8:	
	MOV A,@R0
	RLC A
	MOV @R0,A
	JC START_OUT_6
	CLR DATAOUT
	AJMP START_OUT_7
START_OUT_6:
	SETB DATAOUT

START_OUT_7:
	CPL DATACLK
	DJNZ R1,START_OUT_8	;8BIT结束
	INC R0
	DJNZ R2,START_OUT_5	;发送的BYTE数

	

	
	
	
	
	
	;ADD A,#0CH	;最后连续发送3个F

⌨️ 快捷键说明

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