集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 919|回复: 0

80c51单片机串口通讯实验总结

[复制链接]
zhiweiqiang33 发表于 2012-10-28 14:18:54 | 显示全部楼层 |阅读模式
SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志,在我的学习过程中,选用了方式1来实现串口通信(SM0=0 SM1=1)这种方式波特率可变而且为发送8为数据的工作方式。


REN为接收控制位,软件置1后,允许接收;

TI为发送中断位,RI为接收中断位,均由软件置1方可继续工作;

由于物理地址上存在两个SBUF寄存器……但软件地址上只存在一个,所以串行口的收发均由SBUF控制。设所要发送的字符为“a”,“a”的ACSII码为0x98H,则发送所用的命令行为SBUF=“a”;,计算机接收端就会收到98H;相反接收时方式则为b=SBUF;(b为无符号char型变量).在实际操作时由于单片机发送有延时所以发送多位数据时,以及接受多位数据时,不能直接罗列这些命令行,应加入检测TI RI并软件置0的命令。

以发送为例:

          SBUF=“b”;


          while(TI!=1);


          TI=0;


          SBUF=“a”;


          while(TI!=1);


          TI=0;


SBUF=“c”;


          while(TI!=1);


          TI=0;


SBUF=“k”;


          while(TI!=1);


          TI=0;


即可发送“back”至串口。

在使用串口通信的同时,波特率的同步有单片机定时器实现,由于反复使用波特率,8位自动重装的定时器工作方式2最为合适

TMOD=0x20;
TH1=0xfe;
TL1=oxfe;
TR1=1;

即可产生晶振为11.0592mhz的9600波特率……

控制串行口接收的方式有两种~中断法和查询法

查询发采用while语句每当有数据传送时,通过RI判断

中断法采用EA=1;ES=1;的串行口中断
中断子程序中对RI置0。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-26 16:16 , Processed in 0.069140 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表