当前位置: 首页 > news >正文

站酷海洛肥西建设局网站

站酷海洛,肥西建设局网站,网站com域名上不去cn能,各类网站网站建设的目标是什么STC89C52学习笔记(七) 综述:本文介绍了串口以及讲述了串口相关寄存器如何配置并给予相关代码。 一、修改代码注意事项 在修改代码时不要一次性加入一堆代码,不利于定位错误。可以先注释一些代码,待解决完毕问题后再…

STC89C52学习笔记(

综述:本文介绍了串口以及讲述了串口相关寄存器如何配置并给予相关代码。

一、修改代码注意事项

在修改代码时不要一次性加入一堆代码,不利于定位错误。可以先注释一些代码,待解决完毕问题后再去除一些注释。

二、串口

1.定义

串口是一种通讯接口,可以实现两个设备互相通信。51单片机内部自带UART(通用异步收发器),可以实现单片机的串口通信。

2.连接

①单片机上有串口,然后电脑利用串口助手,就可以实现单片机与电脑的串口通信。

②蓝牙串口模块,信号通过串口发送给他,然后通过手机上的蓝牙app,达到手机和单片机的串口通信。(单片机→蓝牙串口模块→手机蓝牙app)

3.特点

①简单的串口有两根通讯线:TXD和RXD(TXD:transimit exchange data;RXD:receive exchange data)。

②两根通讯线为交叉连接,当双向通讯时,需要两根通讯线,仅仅单项数据传输时,只需要一根通讯线。

③串口常用的电平标准有三种:TTL电平(晶体管晶体管逻辑,单片机就是用这种电平逻辑,+5V表示1,0V表示0)、RS232电平(-3~-15表示1,+3~+15表示0)、RS485电平(两线差+2~+6表示1,-2~-6表示0)。

通讯至少需要3根线:GND、TXD和RXD。如果设备1和设备2都是独立供电的,那么可以不用VCC接线。但是,如果设备2是一个模块,不是独立供电,那么设备1需要给设备2供电。

⑤全双工:通信双方可以在同一时刻互相传输;半双工,通讯双方可以在互相通讯,但是不能同时;单工:通讯只能由一方发送到另一端。

⑥异步:通信双方各自约定通信速率;同步:通信双方用同一根时钟线约定通信速率。

4.51单片机的UART

①STC89C52的RXD端口在P3.0,TXD端口在P3.1

②STC89C52有1个UART

③STC89C52的UART有四种工作模式:模式1:同步移位寄存器。模式二:8位UART,波特率可以改变。模式三:9位UART,波特率可以改变。模式四:9位UART,波特率可以改变。

③串口参数

1)波特率:串口发送/接收数据为的间隔时间,也就是串口通信的速率

2)校验位:有奇、偶检验和0、1校验

④串口时序图

8位数据格式的时序图

9位数据格式的时序图

⑤串口模式图

时钟部分:中间部分控制收发器的采样时间来控制波特率。

发送:单片机先将数据写入寄存器SBUF(Sever buffer串口缓存寄存器)中,再通过发送控制器将数据发送出去,发送完成产生相应的中断。

接收时,通过移位寄存器即受到SBUF,再通过单片机读取数据,接收完成产生相应的中断。

⑥串口和中断系统

⑦初始化串口

1)对于寄存器SCON的配置,由于这里的串口选择工作模式二(8位UART,波特率可以改变),于是SM0 SM1应配置为0 1,于是程序应为:“SCON=0x40;”

2)对于电源控制寄存器说明如下,SMOD和SMOD0均为1,于是,PCON寄存器应该配置为:“PCON|=0x80;”

3)定时器

8位自动重装定时器和16位定时器的区别:16位记的数据多(65535),但是每次都需要自己写代码赋初值,浪费时间。双8位就是将16位分开,一个计数(255),另一个存放初值,每次计数完成后AR会自动将值赋给CNT,不用代码处理,比较快,但只有8位所以记的数少了。

于是,这里配置定时器1的模式应该为:将TMOD配置为0010 0000,也即是“TMOD &= 0x0F;TMOD |= 0x20;”

4)利用stc-isp软件自动计算波特率。

5)启动定时器1,代码为“TR1=1”

6)完整的串口初始化函数如下

void UART_Init()   //4800bps@12.000MHz
{PCON|=0x80;SCON=0x40;TMOD &= 0x0F;		//设置定时器模式TMOD |= 0x20;		//设置定时器模式TL1 = 0xF3;		//设定定时初值TH1 = 0xF3;	//设定定时初值TF0 = 0;		//清除TF0标志TR0 = 1;		//定时器0开始计时
}

⑧发送数据

1)由之前⑤可以知道,发送数据是先写入在寄存器SBUF里面,所以,程序可以写为:“SBUF=Byte;”

2)当发送的数据过多时,不是一下子就可以完成发送的,于是需要检验是否发送完成,这里是根据检验发送完成标志位TI,程序为:“while(TI==0);”

3)由于发送完成后需要对TI进行软件复位,于是程序应为:“TI=0;”

完整的串口发送程序如下:

void UART_SendByte(unsigned char Byte)
{SBUF=Byte;while(TI==0);TI=0;
}

4)下载程序并打开串口,配置好串口的参数:串口端号、串口的波特率(4800)、校验位和停止位。


参考视频:51单片机学习.视频

侵权联系删除!

http://www.yayakq.cn/news/778139/

相关文章:

  • 企业网站建设费未付款怎样挂账1如何做网站推广
  • 网站策划怎么下载网站源码
  • wordpress网站系统自贡订房中心网站建设
  • 淮安官方网站开发区贺州同城购物网站建设
  • 个人主页网站应该怎样做西宁市网站建设
  • 网站建设设计制作外包wordpress标签手册
  • 网站平台建设实训内容合肥网络公司哪个最好
  • 需要登陆的网站如何做爬虫oa系统哪个品牌好
  • 旅游商务网站建设酒店网络营销策略论文
  • 网店网站开发自己建服务器做网站违法
  • 开封网站制作公司做中介开什么网站
  • wordpress 选项卡插件深圳网站关键词优化公司哪家好
  • 网站维护一年一般多少钱qq是用什么开发的
  • 怎么看一个网站做得好不好建立网站的基本条件
  • 网站建设项目建议书的内容八爪鱼采集器WordPress接口
  • dw免费网站模板中国招聘网
  • app网站模板下载网站系统是什么
  • 协会类网站免费模板网站倒计时怎么做的
  • 公司网站设计公司排名怎样找做淘宝客的网站
  • 建设外贸网站公司简介有了域名 做网站
  • 顺德网站建设策划网站关键字工具
  • 普陀做网站价格网页设计培训点
  • 学软件工程好找工作吗seo关键词快速排名软件
  • 宣汉网站建设网站推广策略的控制和效果评价
  • dj网站模板免费下载网站模板 作业
  • 网站上线流程分为wordpress 调用头尾
  • 在哪里能找到做网站的人做网站动态背景的图片
  • 宁乡县建设局网站谷歌网站排名
  • 做网站大量视频怎么存储做网站所需要的代码
  • cms网站开发模式WordPress刷下载量