- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10串行通信
10.3 8250初始化编程 直接对8250端口操作 利用BIOS通信软件 (INT 14H) (2) INT 14H 0号子功能的执行流程: ① 截取AL7~AL5查表,取出相应的波特率除数→除数寄存器。 ② 截取AL4~AL0→通信线控制寄存器。 ③ 0→中断允许寄存器。 ④ 取通信线状态寄存器内容→AH。 ⑤ 取MODEM状态寄存器内容→AL。 ⑥ 执行IRET返回。 (3) 调用注意事项 。调用INT 14H 0号子功能初始化串行口,通信波特率只有8种选择,奇偶校验也只有3种选择。 。从执行流程可以看出,使用 0 号功能初始化之后,8250 的内部中断将被禁止。只能采用查询方式发送和接收数据。 。如果在 0号子功能初始化之后,再对中断允许寄存器和MODEM控制寄存器写入相应的命令字,仍然能使其工作在中断方式。 注 2. 发送一帧数据 【INT 14H 1号子功能】 发送一个数据 入口参数: AH=1发送数据 AL=待发送的数据 DX=0使用主串口,DX=1使用辅串口 出口参数: AH的D7位为1,表示发送失败,D7位为0表示发送成功。 AL数据→发送保持寄存器 AH的D7位为0 返回 03→MODEM控制寄存器 从而使引脚DIR=0、RTS=0 设置循环次数 读MODEM状态寄存器 CTS、DSR都为0? 循环次数—1 =0? AH的D7位置1 返回 设置循环次数 读通信线状态寄存器 发送保持寄存器空? 循环次数—1 =0? Y Y Y Y N N N N INT 14H 1号子功能执行流程 EG:利用主串口查询方式发送一个“A” SCANT: MOV DX,3FDH IN AL,DX TEST AL,20H; JZ SCANT ; D5=1 MOV DX,3F8H MOV AL,’A’ OUT DX,AL EG:利用辅串口查询方式接收一个字符 SCANR:MOV DX,2FDH IN AL,DX TEST AL,01H; JZ SCANR ; D0=1 MOV DX,2F8H IN AL,DX EG:利用辅串口查询方式接收一个字符 SCANR: MOV DX,2FDH IN AL,DX TEST AL JNZ ERROR TEST AL,01H; JZ SCANR ; D0=1 MOV DX,2F8H IN AL,DX (4) 中断允许寄存器(3F9H/2F9H) 8250内部有4级中断,以“接收数据错中断”优先级最高,其次是“接收中断”、“发送中断”,最低优先级是“MODEM中断”。 该寄存器的D7~D4位恒为0。D3~D0位表示8250的4级中断是否被允许。 D0=1,允许接收到一帧数据后,内部提出“接收中断请求”。 D1=1,允许发送保持寄存器空时,内部提出“发送中断请求” D2=1,允许接收出错时,内部提出“接收数据错中断请求”。 D3=1,允许MODEM状态改变时,内部提出“MODEM中断请求”。 说明: ? 示意图 Q1 Q2 Q3 Q4 Q5 Q0 Q0 Q2 Q1 中断判优(排队) 线路状态寄存器 中断允许寄存器 收到一帧数据 接收数据错 发送保持空 中断请求 (5) 中断识别寄存器(3FAH/2FAH) D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 由于8250仅能向CPU发出一个总的中断请求信号,为了识别是哪一个中断源引起的中断,应在转入中断服务程序之后,读取中断识别寄存器的内容进行判断,然后再转入相应的处理程序。 中断识别码 中断指示位 0 有中断 1 无中断 MOV DX,3FAH IN AL,DX CMP AL,0 JZ MODEM中断 CMP AL,2 JZ 发送中断 CMP AL,4 JZ 接收中断 CMP AL,6 JZ 字符错中断 中断识别寄存器的特点: 低3位反映中断的发生情况,高5位始终固定 为‘0’ 此特点用于检测系统中I8250是否存在 MOV DX,3FAH IN AL,DX TEST AL,0F8H JZ 有8250 JNZ 没有8250 D7 D6 D5 D4 D3
文档评论(0)