功能8251可编程串行口与PC机通信实验
;//*******************************************************************
;文件名: 8251 FOR 51MCU
;功能:8251可编程串行口与PC机通信实验
;接线:CPU模块的ETXD接232TXD,ERXD接232RXD,8000H接CS_8251。;//*******************************************************************
Z8279 EQU 8701H ;8279 状态/命令口地址 D8279 EQU 8700H ;8279 数据口地址
LEDMOD EQU 00H ;左边输入八位字符显示
;外部译码键扫描方式,双键互锁 LEDFEQ EQU 2FH ;扫描速率
LEDCLS EQU 0C1H ;清除显示 RAM
LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址 READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字 Z8251 EQU 8002H ;8251 状态/命令口地址 D8251 EQU 8000H ;8251 数据口地址
COM_MOD EQU 04EH ;字符 8 位, 1 位起始位, 1 位停止位
;异步* 16,不校验
EQU 25H ;请求发送,发送允许,接收允许
ORG 0000H
AJMP START
ORG 0040H START:
MOV SP,#60H
LCALL INIT8279 ;初始化8279
LCALL INIT8251 ;初始化8251
SETB EA ;开中断
WAIT:
MOV DPTR,#Z8251 ;8251 状态寄存器(读)
MOVX A,***@DPTR
ANL A,#02H
JZ WAIT1 ;判断是否有串行输入
SJMP DIS_REC ;显示字符
WAIT1: LCALL GETKEY ;读键盘
CJNE A,#0FFH,WAIT ;判断是否有按键
MOV DPTR,#Z8251 WAIT3: MOVX A,***@DPTR
ANL A,#01H
JZ WAIT3 ;判断发送允许
MOV A,B
MOV DPTR,#D8251
MOVX ***@DPTR,A ;发送数据
NOP
MOV DPTR,#Z8251 WAIT2: MOVX A,***@DPTR
ANL A,#01H
JZ WAIT2 ;判断发送允许
SJMP WAIT
DIS_REC:
MOV DPTR,#D8251
MOVX A,***@DPTR ;读接收到的字符
CLR C
SUBB A,#30H ;以下判定输入是否在0-F内
JC ERROR
SUBB A,#0AH
JNC DIS_REC1
ADD A,#0AH
SJMP DIS_REC2 DIS_REC1:
SUBB A,#7H
JC ERROR
SUBB A,#6H
JNC ERROR
ADD A,#10H DIS_REC2:
MOV R4,#0
MOV R5,A
LCALL DISLED ;显示输入的
功能8251可编程串行口与PC机通信实验 来自淘豆网m.daumloan.com转载请标明出处.