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

📄 发送前台.txt

📁 这是课程设计中我设计的一个串口通信程序
💻 TXT
字号:
;发送方
DATA SEGMENT
MESG DB	 'CE SHI DIAN WEN...',0DH,0AH,'$'
TEXT DB  10,0,10 DUP(?),0DH,0AH
LENS EQU $-TEXT
ERROR DB 0DH,0AH,'8251 BAD! $'
C_8251 EQU 213H		;8251控制口地址
D_8251 EQU 210H		;8251数据口地址
C_8253 EQU 203H		;8253控制口地址
D_8253 EQU 200H		;8253数据口地址

DATA ENDS
CODE	SEGMENT
	ASSUME CS:CODE,DS:DATA
BEG:	MOV 	AX,DATA
	MOV 	DS,AX
	CALL 	I8253		;8253初始化
	CALL	I8251		;8251初始化
	MOV 	AH,9
	MOV 	DX,OFFSET MESG
	INT 	21H
	LEA	DX,TEXT
	MOV 	AH,0AH
	INT	21H
	MOV 	CH,10		;电文个数送ch-------------------------------------
AGAIN:	MOV 	CL,TEXT+1		;一行电文的字符数送cl	
	MOV 	BX,OFFSET TEXT	;电文首字符偏移地址送BX
TSCAN:	MOV 	DX,C_8251
	IN 	AL,DX		;8251状态字送AL
	TEST	 AL,01H		;TxRDY=1?
	JZ	 TSCAN		;否,转
SEND:	MOV 	AL,[BX+2]
	MOV 	DX,D_8251
	OUT 	DX,AL		;发送数据
	DEC	CH
	INC	BX
	JNZ	AGAIN

	MOV 	AH,4CH
	INT 	21H
;------------------------------
I8253 PROC			;8253的0号计数器初始化
	MOV 	DX,C_8253	
	MOV 	AL,16H		;控制字
	OUT	DX,AL		;送控制寄存器
	MOV 	DX,D_8253
	MOV 	AL,104		;计数初值送AL
	OUT	DX,AL		;写入初值低8位
	RET
I8253 ENDP
;---------------------------------
I8251 	PROC
	MOV 	CX,3
	MOV	AL,0
	MOV	DX,C_8251
AGA:	OUT	DX,AL		;写入复位命令字
	LOOP	AGA		;延时
	MOV	AL,40H	
	OUT	DX,AL
	CALL	DELAY
	MOV	DX,C_8251
	MOV	AL,4EH		;异步16,一个停止位,无校验8位数据
	OUT	DX,AL		;写入方式选择命令字
	MOV	AL,13H		;错误标志复位,允许发送接受
	OUT	DX,AL		;写入工作命令字
	RET
I8251	ENDP
;-----------------------	;延时10us
DELAY	PROC
	MOV	AH,86H
	MOV	CX,0
	MOV	DX,10
	INT	15H
	RET
DELAY 	ENDP
CODE	ENDS
	END	BEG
		

⌨️ 快捷键说明

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