EDN China > 设计实例 > 微处理器与DSP > 多媒体处理器 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于80C196KC微处理器的高速串行通讯

来源:电子技术应用/作者:张卫杰 魏震生 路平?? 2007年06月07日 ?? 收藏0

  初始化程序:

  ???? ldb? sp .#offfoh? ;设置堆栈指针

  ???? ldb? r_buf, ??#0e000h?? ;设置接收数据区地址指针

  ???? ldb???? t _b u f ??#2300h?? ;设置发送数据区地址指针

  ??? orb? ioc 1,?? #20h? ;选通TXD引脚功能

  ????? ldb? temp,??? #20h??? ;设置临时寄存器

  ???? ldb&

nbsp; baud _rate ,? #och??? ;设置波特率57600

  ???? ldb? baud _rate,?? #80h

  ??? ldb? sp_con,??# 19h?? ;设置串行通讯方式1,不设奇偶校验

  ?? ldb? count, # N ;设置通讯数据块大小

  ????? ………

  ????? 接收程序:

  ????? read : ldb? temp , sp _stat ;查询状态寄存器Ri标志

  ????? jbs? temp , 6 , read?

  ????? ldb? dl ,? sbuf?? ;接收并保存数据

  ????? stb? dl,[? r _buf]+ ;将数据存入接收数据缓冲区

  ????? djnz? count,? read?? ;未接收完数据,继续跳转查询状态寄存器RI

  ????? ………

  ????? 发送程序:

  ????? send : ldb? temp,? sp _stat ;检查状态寄存器TI标志

  ????? jbc? temp,? 5,? send

  ????? ldb? dl,? [ t _buf]+ ;发送寄存器空,取数据

  ????? ldb? sbuf , dl ;发送数据

  ????? djnz? count,? read??? ;未发完数据,继续跳转查询状态寄存器TI

  ????? ………

  ?????? 查询方式设计程序简单,但由于CPU不断查询标志位,不能做其它工作,因此,程序效率不高,不能用于对实时性要求高的场合,利用串行中断设计程序可以有效克服这些缺点。在96系列微处理器中,8098和8096只有一种中断方式,而80C196KB以后的产品又增设了发送中断和接收中断,分别设置了独立的中断向量。下面的程序采用中断方式接收和发送N个字节数据,其中串行口设置为工作模式1,波特率57600,不设奇偶校验,1MHz晶振。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

微处理器? 串行通讯? 波特率设置?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈