南邮微机接口实验——测试微机系统串行口,串口通信外环自发自收

编程入门 行业动态 更新时间:2024-10-07 02:17:48

南邮<a href=https://www.elefans.com/category/jswz/34/1769287.html style=微机接口实验——测试微机系统串行口,串口通信外环自发自收"/>

南邮微机接口实验——测试微机系统串行口,串口通信外环自发自收

发送采用查询方式。接收采用中断方式。

发送的查询模式,要查询两个东西,一个是键盘缓冲区,一个是通信线状态寄存器。当键盘缓冲区有内容,读取出键盘缓冲区ASCII码,然后等待通讯线状态寄存器的D5位为1,即可将数据发送到发送保持寄存器(2F8H)。

接收采用中断方式。一旦接收到字符,即转入中断服务子程序。由于采用辅串口,中断类型码为0BH。进入中断服务子程序后读取接收缓冲寄存器内容,如果不是“Esc”即显示出来,否则设置标志flag为-1,退出。在主程序中检测flag为-1即退出程序。

程序开始的时候,首先初始化串口8250和中断8259A,保存原有中断向量0BH,并写入新的0BH向量入口地址。初始化8250的时候注意在中断允许寄存器开放接受中断,在MODEL控制寄存器使D3为1开放中断。

	.586
DATA SEGMENT USE16
OLD0B DD ?
FLAG DB 0
DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATA
BEG:MOV AX,DATAMOV DS,AXCLICALL I8250CALL I8259ACALL RD0BCALL WRITE0BSTISCA:CMP FLAG ,-1JE RETURNMOV AH,1INT 16HJZ SCAMOV DX,2FDHIN AL,DXTEST AL,20HJZ SCAMOV AH,0INT 16HAND AL,7FHMOV DX,2F8HOUT DX,ALCMP AL,1BHJNE SCA
TWA:MOV DX,2FDHIN AL,DXTEST AL,40HJZ TWA
RETURN:CALL RESETMOV AH,4CHINT 21HSERVICE PROCPUSHAPUSH DSMOV AX,DATAMOV DS,AXMOV DX,2F8HIN AL,DXAND AL,7FHCMP AL,1BHJE NEXTMOV AH,2MOV DL,ALINT 21HJMP EXIT
NEXT:MOV FLAG ,-1
EXIT:MOV AL,20HOUT 20H,ALPOP DSPOPAIRET
SERVICE ENDPI8250 PROCMOV DX,2FBHMOV AL,80HOUT DX,ALMOV DX,2F9HMOV AL,00HOUT DX,ALMOV DX,2F8HMOV AL,60HOUT DX,ALMOV DX,2FBHMOV AL,03HOUT DX,ALMOV DX,2F9HMOV AL,01HOUT DX,ALMOV DX,2FCHMOV AL,0BHOUT DX,ALRET
I8250 ENDPI8259A PROCIN AL,21HAND AL,11110111BOUT 21H,ALRET
I8259A ENDPRD0B PROCMOV AX,350BHINT 21HMOV WORD PTR OLD0B,BXMOV WORD PTR OLD0B+2,ESRET
RD0B ENDPWRITE0B PROCPUSH DSMOV AX,CODEMOV DS,AXMOV DX,OFFSET SERVICEMOV AX,250BHINT 21HPOP DSRET
WRITE0B ENDPRESET PROC IN AL,21HOR AL,00001000BOUT 21H,ALMOV DX,WORD PTR OLD0BMOV DS,WORD PTR OLD0B+2MOV AX,250BHINT 21HRET
RESET ENDPCODE ENDSEND BEG


更多推荐

南邮微机接口实验——测试微机系统串行口,串口通信外环自发自收

本文发布于:2024-02-13 21:02:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760491.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:微机   串口   接口   通信   测试

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!