串行通信和可编程接口芯片8251A

⭐️⭐️通信说明需要有发送端跟接收端。

波特率

收发时钟频率=收发波特率 × 波特率系数
故计算波特率系数时,记住波特率为分母。
波特率=位/字符 × 字符/秒

方式字

异步

⭐️起始位不计入字符长度
7、6位为停止位:00无效,01 1个停止位,10 1.5个停止位,11 2个停止位。
5、4位为奇偶校验:x0:无,01:奇,11:偶
3、2位为字符长度:00:5位,01:6,10:7,11:8
1、0位为异步方式:01:x1,10:x16,11:x64

同步

7:1表示单字符同步,0表示双字符同步
6:1:SYNDET为输入,0:SYNDET为输出
5,4,3,2同异步
1、 0均为0

控制字

⑴复位命令字:
RES8251:MOV AL,0100 0000B ; =40H 复位命令字
OUT P8251C,AL ;复位8251,回到方式选择状态
⑵控制通讯方向:
MOV AL,0000 0101B ; 允许接收、允许发送,全双工
OUT P8251C,AL ;控制通讯方向
⑶清除错误标志+方向控制:
INIT8251:MOV AL,0001 0101B ; =15H, 全双工,允许发送,清除错误标志,D2接收,D0发送
OUT P8251C,AL ; 初始化
⭐️ 如果题目没有任何相关要求,可直接用37H

状态字

⑴查询TXRDY发送器准备就绪:
NEXT_T: IN AL,P8251C ; 读状态字
TEST AL,01H ; TXRDY=1? 发送器就绪?
JZ NEXT_T ;等待发送器就绪
⑵查询RXRDY接收器准备就绪:
NEXT_R: IN AL,P8251C ; 读状态字
TEST AL,02H ; RXRDY=1? 接收器就绪?
JZ NEXT_R ;等待接收器就绪
⑶查询错误标志:
OK8251:IN AL,P8251C ; 读状态字,
TEST AL,0011 1000B ;=38H,是否有错误标志(FE,OE,PE)
⭐️对8251A进行编程时,为了确保可靠复位,应先向8251的控制口连续输出3个0,并且在输出间隔时需要延时。写入方式字与命令字时也都需要延时。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值