网站大量收购独家精品文档,联系QQ:2885784924

定时中断计数器0-微机控制与单片应用教学团队.PPT

定时中断计数器0-微机控制与单片应用教学团队.PPT

  1. 1、本文档共176页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定时中断计数器0-微机控制与单片应用教学团队

查询中断识别寄存器IIR 保存正在请求中断的优先权最高的中断级别编码 0 0 0 0 0 ID1 ID0 IP 0 有中断 1 无中断 ID1ID0 优先权 中断类型 1 1 1 0 0 1 0 0 1 2 3 4 接收线路状态 接收数据准备好 发送缓冲器空 调制解调器状态 8.3.4 8250应用举例 在使用8250进行通信之前,必须对8250进行初始化编程,给有关的内部寄存器设置相应的参数。初始化编程的主要步骤为: ⑴ 写入除数寄存器 设置传输率 ⑵ 写入通信线路控制寄存器 设置字符格式 ⑶ 写入调制解调器控制寄存器 设置工作方式 ⑷ 写入中断允许寄存器 设置中断允许或屏蔽位 已知在一台IBM-PC机的0号扩展槽内,插了一块以INS8250为核心的异步串行通信接口卡。试编写一程序,利用8250的循环回送特性,将IBM-PC作为发送和接收机,从键盘输入内容,经接收后再在CRT上显示出来。 设: 数据传输速率为1200波特; 通信格式为7位/字符、1个停止位、奇校验; 数据发送和接收均采用查询方式; 程序为循环结构,只要按下键,就显示。 例8-12 STACK SEGMENT DB 256 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE START PROC FAR PUSH DS XOR AX,AX PUSH AX ;…………………………………………………………… 开始 波特率,数据位数,校验位,停止位的初始化 初始化流程: Modem控制寄存器的初始化使DTR/、RTS/有效,输出及反馈输入 PART1:初始化 ;第1步:设置传输率 MOV DX,3FBH ;LCR的口地址 MOV AL,80H OUT DX,AL ;使传输线控制寄存器最高位置1 MOV DX,3F8H ;DLL的口地址 MOV AL,60H;写入1200波特的DLL值,通过查表 ;可知1200对应的DLH DLL值分别为0060H OUT DX,AL MOV DX,3F9H ;DLH口地址 MOV AL,0 OUT DX,AL ;写入1200波特的DLH值 ;第2步:设置字符格式 MOV DX,3FBH ;设定LCR的口地址 MOV AL,0AH ;7位字符,1位停止位,奇校验 OUT DX,AL ;写入LCR控制字 ;………………………………………………….. ;第3步:设置工作方式 MOV DX,3FCH ;设定MCR口地址 MOV AL,13H ;置MCR控制字 OUT DX,AL ;内部输入输出反接 ;………………………………………………….. ;第4步:写入中断允许寄存器 MOV DX,3F9H ;设定IER口地址 MOV AL,0 ;禁止一切中断 OUT DX,AL ;置IER控制字 线状态寄存器→AL 接收有错? 接收数据准备好? 发送缓冲器空? 键盘缓冲区空? 从键盘缓冲区取出 字符输出 输入AL,取出低7位 调BIOS子程序显示 显示换行 回车字符? 显示“?” Y Y N Y Y Y N N N N 接收发送流程 PART2:把接到的字符显示出来,把键盘输入的发送出去 FOREVER: MOV DX,3FDH ;输入线状态寄存器内容 IN AL,DX TEST AL,1EH ;测接收是否出错 JNZ ERROR ;…………………………………………………….. TEST AL,01H ;测是否接收数据准备好 JNZ RECEIVE ;准备好就跳转 ;…………………………………………………….. TEST AL,20H ;测是否发送保持寄存器空 JZ FOREVER ;……………………………………………………. MOV AH,1 ;测键盘缓冲区是否有字符 INT 16H JZ FORERVER ;ZF=1,缓冲区空 MOV AH,0 ;从键盘缓冲区取一个字符代码 INT 16H MOV DX,3F8H ;将字符代码发送到输出缓冲区 OUT DX,AL ;………………………………………………………. JMP FOREVER RECEIVE: MOV DX,3F8H ;接收数据准备好,输入字符 IN AL,DX ;代码入AL,取出低7位 AND AL,7FH ;…………………………………………………………… PUSH AX MOV BX,0 MOV AH,14 ;显示 INT 10H PO

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档