网站大量收购独家精品文档,联系QQ:2885784924

单片机8051串行接口的C编程研讨.ppt

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

* * 第6章 8051串行口的C编程 本章主要介绍串行通信概念及51系列单片机的串行口问题,将具体介绍以下内容: 51单片机串行口----串行口结构、串行口的控制寄存器、串行口的工作方式、串行口的初始化、应用举例。 计算机串行通信基础----基本概念。 通 信 方 式 §6.1 计算机串行通信基础 基本概念 并行通信方式—空间上区分各位数据 及联络控制信号。占 用传输线多,速度快。 串行通信方式—时间上区分各位数据 及联络控制信号。占 用传输线少,速度慢。 §6.2 51单片机串行口 一、串行口结构 8051系列单片机片上有UART(通用异步收发)用于串行通信,发送时数据由TXD端发出,接收时数据由RXD端输入。 TTL电平:短距离机间通信 RS232电平:与计算机通信。(驱动芯片MAX232) 二、串行口的控制寄存器 与串行口有关的控制寄存器有: 1.串行口控制寄存器SCON RI TI RB8 TB8 REN SM2 SM1 SM0 D0 D1 D2 D3 D4 D5 D6 D7 工作方式控制位 中断标志 接收允许位 (硬件置位,软件清0) 0 禁止 1 允许 (软件设置) 工作方式控制位SM0、SM1 SM0 SM1 工作方式 说明 波特率 0 0 方式0 同步移位寄存器 fosc/12 0 1 方式1 10位异步收发 由定时器控制 1 0 方式2 11位异步收发 fosc/32或fosc/64 1 1 方式3 11位异步收发 由定时器控制 2.电源控制寄存器PCON IDL PD GF0 GF1 SMOD D0 D1 D2 D3 D4 D5 D6 D7 SMOD:串行口波特率加倍位。 方式1,3波特率=定时器1溢出率/16; 方式2波特率=fosc/32。 0 方式1,3波特率=定时器1溢出率/32; 方式2波特率=fosc/64。 三、串行口的工作方式 串行口共有四种工作方式 方式1—10位异步通信方式 10位=1位起始位(0)+8位数据位+1位停止位(1) 其中起始位和停止位在发送时是自动插入的。 发送:SBUF=?; SBUF=“abc”; 例子:SBUF=“a”; SBUF=0x61; 发送条件TI=0;(软件清0) 发送完毕TI=1;(硬件置位) 接收:?=SBUF; 例子:serial_data=SBUF; 接收条件REN=1;(软件置位) 收到数据RI=1; (硬件置位) 读数完毕RI=0; (软件清0) 波特率=2SMOD*(定时器1的溢出率)/32 例子:波特率=9600,fosc=11.059M,则设置 PCON=0x00; //SMOD=0; TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; //启动定时器1 ES=1; //开串行口中断 EA=1; //开CPU中断 四、串行口的初始化 1.串行口波特率 使用单片机串口时,选用的晶振比较固定6MHz,12MHz,11.0592MHz。常用于和计算机的通信;选用的波特率也相对固定。串行口常用的波特率及相应的设置见表8-3。 2.初始化步骤 设置产生波特率的定时器1、串行口控制和中断控制。 具体步骤: (1)确定定时器1的工作方式,编程TMOD寄存器; (2)计算定时器1的初值,装载TH1和TL1; (4)确定串行口的控制,编程SCON和PCON; (5)开CPU和源中断,编程IE中的ES和EA位。 (3)启动定时器1,编程TCON中的TR1位; 五、串行口应用举例 例1:发送字符串程序 #includereg51.h #define uchar unsingned char #define uint unsigned int uchar idata trdata[10]= {‘M’,‘C’,‘S’,‘-’,‘5’,‘1’,0x0d,0x0a,0x00}; main() { uchar i; uint j

文档评论(0)

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

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

1亿VIP精品文档

相关文档