资源描述:
《功能8251可编程串行口跟pc机通信的实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、功能8251可编程串行口与PC机通信实验;//*******************************************************************;文件名:8251FOR51MCU;功能:8251可编程串行口与PC机通信实验;接线:CPU模块的ETXD接232TXD,ERXD接232RXD,8000H接CS_8251。;//*******************************************************************Z8279EQU8701H;8
2、279状态/命令口地址D8279EQU8700H;8279数据口地址LEDMODEQU00H;左边输入八位字符显示;外部译码键扫描方式,双键互锁LEDFEQEQU2FH;扫描速率LEDCLSEQU0C1H;清除显示RAMLEDWR0EQU80H;设定的将要写入的显示RAM地址READKBEQU40H;读FIFORAM地址0的命令字Z8251EQU8002H;8251状态/命令口地址D8251EQU8000H;8251数据口地址COM_MODEQU04EH;字符8位,1位起始位,1位停止位;异步*16,不校验COM_CO
3、MEQU25H;请求发送,发送允许,接收允许ORG0000HAJMPSTARTORG0040HSTART:MOVSP,#60HLCALLINIT8279;初始化8279LCALLINIT8251;初始化8251SETBEA;开中断WAIT:MOVDPTR,#Z8251;8251状态寄存器(读)MOVXA,@DPTRANLA,#02HJZWAIT1;判断是否有串行输入SJMPDIS_REC;显示字符WAIT1:LCALLGETKEY;读键盘CJNEA,#0FFH,WAIT;判断是否有按键MOVDPTR,#Z8251WAI
4、T3:MOVXA,@DPTRANLA,#01HJZWAIT3;判断发送允许MOVA,BMOVDPTR,#D8251MOVX@DPTR,A;发送数据NOPMOVDPTR,#Z8251WAIT2:MOVXA,@DPTRANLA,#01HJZWAIT2;判断发送允许SJMPWAITDIS_REC:MOVDPTR,#D8251MOVXA,@DPTR;读接收到的字符CLRCSUBBA,#30H;以下判定输入是否在0-F内JCERRORSUBBA,#0AHJNCDIS_REC1ADDA,#0AHSJMPDIS_REC2DIS_RE
5、C1:SUBBA,#7HJCERRORSUBBA,#6HJNCERRORADDA,#10HDIS_REC2:MOVR4,#0MOVR5,ALCALLDISLED;显示输入的数字(0-F)ERROR:AJMPWAITINIT8251:;8251初始化子程序PUSHDPH;保存现场PUSHDPLPUSHACCMOVDPTR,#Z8251MOVA,#COM_MOD;置8251工作方式MOVX@DPTR,ANOPMOVA,#COM_COM;请求发送,发送允许,接收允许MOVX@DPTR,ANOPMOVA,#65HMOVX@DP
6、TR,ANOPMOVA,#COM_MOD;置8251工作方式MOVX@DPTR,ANOPMOVA,#COM_COM;请求发送,发送允许,接收允许MOVX@DPTR,ANOPPOPACC;恢复现场POPDPLPOPDPHRETINIT8279:;8279初始化子程序PUSHDPH;保存现场PUSHDPLPUSHACCLCALLDELAY;延时MOVDPTR,#Z8279MOVA,#LEDMOD;置8279工作方式MOVX@DPTR,AMOVA,#LEDFEQ;置键盘扫描速率MOVX@DPTR,AMOVA,#LEDCLS;
7、清除LED显示MOVX@DPTR,ALCALLDELAY;延时POPACC;恢复现场POPDPLPOPDPHRET;读键盘子程序;输入:无;输出:B:读到的键码A:按键的标志GETKEY:PUSHDPH;保存现场PUSHDPLPUSHPSWMOVDPTR,#Z8279MOVXA,@DPTR;读8279状态ANLA,#07H;屏蔽D7-D3JNZGETVAL;判断是否有键输入MOVA,#0H;置标志(无键输入)SJMPNKBHITGETVAL:MOVA,#READKB;读FIFORAM命令MOVX@DPTR,AMOVDP
8、TR,#D8279MOVXA,@DPTR;读键ANLA,#3FH;屏蔽SHIFT和CTRL键MOVR6,AMOVDPTR,#KEYCODE;键码表起始地址MOVCA,@A+DPTR;查表MOVB,A;置返回键值MOVA,#0FFH;置标志(有键输入)MOVA,#LEDWR0;置显示起始地址MOVDPTR,#Z8279MOVX@DP