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

📄 sendbytetoserialport.asm

📁 lets you send file via serial port
💻 ASM
字号:
; THIS PROGRAM INITIALIZES THE PORT COM1 TO
; 8-BIT DATA, NO PARITY, AND 1-BIT STOP.
; IT THEN SENDS A BYTE (0f0H) TO THE TX LINE OF THE PORT COM1
; AND WAITS FOR ANY KEY PRESS TO EXIT THE PROGRAM NORMALLY

STK SEGMENT PARA STACK
DB 2048 DUP (?)
STK ENDS

DATA SEGMENT
XMSG    DB      'PRESS ANY KEY TO EXIT ...',0DH,0AH,'$'
DPT     EQU     03F8H   ;03F8H = COM1, 02F8H = COM2, 03E8H=COM3
MCR     EQU     03FCH
LSR     EQU     03FDH
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STK
START:	MOV AX, STK
		MOV SS, AX
		MOV AX, DATA	;SET UP DATA SEGMENT
		MOV DS, AX
	
		MOV DX, MCR		;DE-ACTIVATE THE HAND-SHAKING SIGNALS
		MOV AL, 00H
		OUT DX, AL

		LEA DX, XMSG	;SET UP POINT TO OUTPUT EXIT MESSAGE
		MOV AH, 9      	;DISPLAY STRING FUNCTION
		INT 21H        	;DOS CALL

INIT:   MOV AH, 0H
		MOV DX, 0H		;COM1=0, COM2=1, COM3=2, COM4=3
		MOV AL, 0E3H   	;INITIALIZE PORT 8-B DATA, NO PARITY
		INT 14H        	;ONE STOP, 9600 BAUD.

		MOV DX, MCR     ; ACTIVATE THE HAND-SHAKING SIGNALS
		MOV AL, 03H
		OUT DX, AL

COM3:   MOV DX, LSR		;SET UP LINE STATUS REGISTER PORT ADDRESS

MORE:   MOV AH, 0BH		;CHECK STD INPUT (KEYBOARD) STATUS
		INT 21H
		CMP AL, 0FFH	;HAS ANY KEY BEEN PRESSED?
		JZ EXIT
		MOV AX, 0F0H	;0ABH IS THE BYTE TO BE SENT TO COM1
						; YOU CAN CHANGE IT TO ANY VALUE
		PUSH AX         ;SAVE CHARACTER

WAIT1:  IN AL, DX		;READ UART STATUS
		TEST AL, 20H    ;CHECK TRANSMITTER READY BIT - BIT5
		JZ WAIT1
		MOV DX, DPT    	;SET UP DATA PORT ADDRESS
		POP AX         	;GET CHARACTER BACK
		OUT DX, AL		;OUTPUT IT
        JMP COM3

EXIT:   MOV DX, MCR		;DE-ACTIVATE THE HAND-SHAKING SIGNALS
		MOV AL, 00H
		OUT DX, AL

		MOV AH, 4CH		;TERMINATE PROGRAM FUNCTION
		INT 21H			;DOS CALL

CODE ENDS
END START

⌨️ 快捷键说明

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