16550说明汇编.ppt

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

UART芯片16550简介 16550结构 4. 控制寄存器的格式 接收数据缓冲寄存器(只读),发送缓冲寄存器(只写) 波特率除数寄存器(低字节) 波特率除数寄存器(高字节) 线路控制寄存器 LCR 线路状态寄存器 LSR 寄存器端口地址分配 线路控制寄存器LCR 线路状态寄存器LSR 中断允许寄存器IER 波特率发生器 时钟源频率1.8432MHz 时钟频率= 波特率*16倍*分频系数 即:分频系数=1843200/(波特率*16) 波特率与分频系数对应表 16550初始化流程 16550初始化例题要求 要求串行数据帧包含8位有效数据、1位停止位、采用奇校验方式,编写设置波特率为9600的初始化程序。 根据公式计算,波特率为9600时,分频值为000CH 请编写满足该要求的16550初始化程序 根据线路控制寄存器LCR的约定,控制字 16550初始化程序 CTR EQU 3FBH ;控制口 DLSB EQU 3F8H ;除数低字节口 DMSB EQU 3F9H ;除数高字节口 MOV AL ;设置波特率时 ;要求特征位DLAB为1 MOV DX,CTR ;线控寄存器端口地址 OUT DX,AL ;写入特征位 MOV AL,0CH ;波特率分频值低字节 MOV DX,DLSB ;分频值低位端口地址 OUT DX,AL ;写入分频值低位 MOV AL,00H ;波特率分频值高字节 INC DX ;分频值高位端口地址 OUT DX,AL ;写入分频值高位 MOV AL ;控制字 MOV DX,CTR ;线控寄存器端口地址 OUT DX,AL ;写入控制字 IER EQU 3F9H ;中断允许寄存器 LSR EQU 3FDH ;通信线状态寄存器 THR EQU 3F8H ;发送缓冲器 MOV AL ;以中断方式发送接收数据 MOV DX,IER OUT DX,AL MOV DX,LSR ;以查询方式发送数据 XXX: IN AL,DX TEST AL,20H JZ XXX MOV DX,THR ;发送数据 MOV AL,‘A’ OUT DX,AL *guzhaolin@126.com 时钟 DLAB A2 A1 A0 被访问的寄存器 串口1的地址 0 0 0 0 接收缓冲器RBR、发送缓冲器THR 3F8H 0 0 0 1 中断允许寄存器IER 3F9H 1 0 0 0 中断标识寄存器IIR(只读) FIFO控制器FCR(只写) 3FAH × 0 1 0 传输线控制寄存器LCR 3FBH × 0 1 1 传输线状态寄存器LSR 3FDH 除数寄存器(低字节)DLL 3F8H 除数寄存器(高字节)DLM 3F9H × 1 0 1 1 0 0 1 寻址识别 1:分频 0:收发数据、中断 D7 D6 D5 D4 D3 D2 D1 D0 XX0:校验位无效 001:奇校验 011:偶校验 101:校验0 111:校验恒1 校 验方 式 数据 帧长 00:5位 01:6位 10:7位 11:8位 设置简断 1-强制间断 0-正常 停止位 1:1位半或2位 0:1位停止位 DLAB D7 D6 D5 D4 D3 D2 D1 D0 0 恒定值 1:发送移位空 1:发送缓冲空 1:检测到间断 1:帧错 1:奇偶校验错 1:数据溢出错误 1:接收数据就绪 D7 D6 D5 D4 D3 D2 D1 D0 最低 最高 次低 次高 1:接收数据错中断请求 1: 发送中断请求 1:接收中断请求 1:MODEM中断请求 01H 00H 115200 02H 00H 57600 05H 00H 23040 06H 00H 19200 0AH 00H 11520 0CH 00H 9600 10H 00H 7200 18H 00H 4800 20H 00H 3600 30H 00H 2400 40H 00H 1800 60H 00H 1200 C0H 00H 600 80H 01H 300 00H 03H 150 17H 04H 110 00H 06H 75 00H 09H 50 分频器DLL(L) 分频器DLM(H) 波特率 16550串口芯片的初始化编程就是设置波特率、确定串行通信的数据帧格式、使能等。 设置波特率 设置数据位数、停止位、校验位 使能

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档