16550与PC机串口通信实验

上传人:re****.1 文档编号:498001505 上传时间:2023-05-29 格式:DOCX 页数:4 大小:17.39KB
返回 下载 相关 举报
16550与PC机串口通信实验_第1页
第1页 / 共4页
16550与PC机串口通信实验_第2页
第2页 / 共4页
16550与PC机串口通信实验_第3页
第3页 / 共4页
16550与PC机串口通信实验_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《16550与PC机串口通信实验》由会员分享,可在线阅读,更多相关《16550与PC机串口通信实验(4页珍藏版)》请在金锄头文库上搜索。

1、INTR_IVADDEQU01CCHINTR_OCW1EQU0A1HINTR_OCW2EQU0A0HINTR_IMEQU0F7HPCI_INTCSREQU9438HIOY0EQU9C00H;T16550-2.asm;16550与PC机串口通信实验;*根据check配置信息修改下列符号值;INTR对应的中断矢量地址;INTR对应PC机内部8259的0CW1地址;INTR对应PC机内部8259的0CW2地址;INTR对应的中断屏蔽字;PCI卡中断控制寄存器地址;片选IOY0对应的端口始地址*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*

2、 *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* .Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx

3、 Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx TxMY16550_0EQUIOYO+OOH*4MY16550_1EQUIOYO+O1H*4MY16550_3EQUIOY0+03H*4PC_COM1_0EQU03F8HPC_COM1_1EQU03F9HPC_COM1_3EQU03FBH;16550数据缓冲寄存器端口地址;16550中断允许寄存器端口地址;16550线路控制寄存器端口地址;PC机COM1数据缓冲寄存器端口地址 ;PC机COM1中断允许寄存器端口地址

4、 ;PC机COM1线路控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUPSTACK1 ENDSDATA SEGMENTCS_BAK DW ?IP_BAK DW ?IM_BAK DB ?;保存INTR原中断处理程序入口段地址的变量;保存INTR原中断处理程序入口偏移地址的变量;保存INTR原中断屏蔽字的变量STR1 DB Communication with computer!$ ;字符串DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCLIMOV DX,PCI_INTCSRS

5、UB DX,19HIN AL,DXMOV DX,PCI_INTCSR;初始化PCI卡中断控制寄存器MOV AX,1F00H;向 PCI_INTCSR 中写入 003F1F00HOUT DX,AXADD DX,2MOV AX,003FHOUT DX,AX;保存INTR原中断处理程序入口偏移地址;设置当前中断处理程序入口偏移地址MOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX,ES:DIMOV IP_BAK,AXMOV AX,OFFSET MYISRMOV ES:DI,AX;替换INTR的中断矢量ADD DI,2MOV AX,ES:DIMOV CS_BAK,

6、AXMOV AX,SEG MYISRMOV ES:DI,AXMOV DX,INTR_OCW1IN AL,DXMOV IM_BAK,ALAND AL,INTR_IMOUT DX,ALMOV DX,PC_COM1_3MOV AL,80HOUT DX,ALMOV DX,PC_COM1_0MOV AL,0CHOUT DX,ALMOV DX,PC_COM1_1MOV AL,00HOUT DX,ALMOV DX,PC_COM1_3MOV AL,1BHOUT DX,ALMOV DX,PC_COM1_1MOV AL,00HOUT DX,ALMOV DX,MY16550_3;保存INTR原中断处理程序入口段地址

7、;设置当前中断处理程序入口段地址;设置中断屏蔽寄存器,打开INTR的屏蔽位;保存INTR原中断屏蔽字;设置PC机COM1线路控制寄存器;准备设置波特率除数寄存器;设置COM1除数寄存器低字节0CH;000C 对应 9600 bit/s;设置COM1除数寄存器高字节00H;设置COM1线路控制寄存器,初始化数据格式;偶校验,1位停止位,字符宽度为8;设置中断允许寄存器;中断不打开;设置16550线路控制寄存器MOV AL,80HOUT DX,ALMOV DX,MY16550_0MOV AL,0CHOUT DX,ALMOV DX,MY16550_1MOV AL,00HOUT DX,ALMOV DX

8、,MY16550_3MOV AL,1BHOUT DX,ALMOV DX,MY16550_1MOV AL,01HOUT DX,AL;准备设置波特率除数寄存器;设置除数寄存器低字节0CH;000C 对应 9600 bit/s;设置除数寄存器高字节00H;设置线路控制寄存器,初始化数据格式;偶校验,1位停止位,字符宽度为8;设置中断允许寄存器;允许接收缓冲寄存器满产生中断STIMOV BXQFFSET STR1MOV CX,001CHSEND:;将字符串数据写入COM1发送缓冲寄存器MOV DX,PC_COM1_OMOV AL,BXOUT DX,ALINC BXCALL DALLYLOOP SEND

9、QUIT:CLIMOV DX,PCI_INTCSRMOV AX,0000HOUT DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX,IP_BAKMOV ES:DI,AXADD DI,2MOV AX,CS_BAKMOV ES:DI,AXMOV DX,INTR_OCW1;恢复PCI卡中断控制寄存器;恢复INTR原中断矢量;恢复INTR原中断处理程序入口偏移地址;恢复INTR原中断处理程序入口段地址;恢复INTR原中断屏蔽寄存器的屏蔽字;返回到DOS;中断处理程序MYISR;读取16550接收缓冲寄存器数据并显示;清 PCI卡中断控制寄存器标志位;向

10、PC机内部8259发送中断结束命令;软件延时子程序MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00HINT 21HMYISR PROC NEARMOV DX,MY16550_0IN AL,DXMOV AH,0EHINT 10HOVER: MOV DX,PCI_INTCSRSUB DX,19HIN AL,DXMOV DX,PCI_INTCSRADD DX,2MOV AX,003FHOUT DX,AXMOV DX,INTR_OCW2MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALIRETMYISR ENDPDALLY PROC NEARPUSH CXPUSH AXMOV CX,0100HD1:MOV AX,2000HD2:DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALLY ENDPCODE ENDSEND START

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号