实验七单片机串口通信.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七单片机串口通信 实验七串口通信实验 【实验目的】 1、 理解单片机串行口的工作原理; 2、 学习使用单片机的TXD、RXD 口; 3、 学习PC机的串口通讯原理。 【实验内容】 任务: 单片机与电脑串口通讯,将单片机与电脑相连,借助串口调试助手, 单片机发送 “Everything is possible 八_八”。 2?串口调试助手中输A^turnonledl ”、Uturnonled2 ”、Uturnonled3 ” 中一个,相应的led点亮,单片机再发送“Turn on LED1 has been executed!n 消息提示输入下一个需要点亮的灯。通讯波特率:9600bps,信息格式: 无校验位+ 8个数据位+ 1个停止位,传送方式,单片机采用中断方式接 收信息。原理: SMO^SMl:由软件置位或清零,用于选择串行口四种工作方式。SM2: 多机通信控制位。在方式2和方式3中,如SM2=1,则接收到的第9位数 据(RB8)为0时不启动接收中断标志RI(即RI=0),并且将接收到的前8位数 据丢弃;RB8为1时,才将接收到的前8位数据送入SBUF,并置位RI,产 牛中断请求。当SM2二0时,则不论第9位数据为0或1,都将前8位数据 装入SBUF中,并产生中断请求。在方式0时,SM2必须为0。 REN:允许串行接收控制位。若REN=O,则禁止接收;REN=1,则允许 接收,该位由软件置位或复位。 TB8:发送数据D8位。在方式2和方式3时,TB8为所要发送的第9 位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据: TB8二0为数据,TB8=1为地址;也可用作数据的奇偶校验位。该位由软件 置位或复位。RB8:接收数据D8位。在方式2和方式3时,接收到的第 9位数据,可作为奇偶校验位或地址帧或数据帧的标志。方式1时,若SM2=0, 则RB8是接收到的停止位。在方式0时,不使用RB8位。 TI:发送中断标志位。在方式0时,当发送数据第8位结束后,或在 其它方式发送停止位后,由内部硬件使TI置位,向CPU请求中断。CPU在 响应中断后,必须用软件清零。此外,TI也可供查询使用。 RI:接收中断标志位。在方式0时,当接收数据的第8位结束后,或 在其它方式接收到停止位的中间由内部硬件使RI置位,向CPU请求中断。 同样,在CPU响应中断后,也必须用软件清零。RI也可供查询使用。 倍。其余各位与串行口无关。 波特率设置: 串行口的4种工作方式对应着三种波特率模式。 对于方式0,波特率是固定的,为fosc/12o 对于方式2,波特率由振荡频率fosc和SM0D(PC0N.7)所决定。其对应 公式为 波特率二2SM0D X fosc/64o 当 SMOD=0 时,波特率为 fosc/64;当 SMOD=1 时,波特率为fosc/32o 对于方式1和方式3,波特率由定时器/计数器T1的溢出率和SMOD 决定,即由下式确定: 波特率=2SM0DX定时器/计数器T1溢出率/32 鉴于8051单片机输入、输出电平均为TTL/CMOS电平,而计算机配置 的是RS232标准串行接口,使用的是RS232标准电平(逻辑0: +3V?+15V, 逻辑约?3V??15V),二者的电气规范不一致,因此要完成PC机与单片 机的数据通讯,必须进行电平转换。 实验参考程序: 一、任务1 l.main.c 程序 **********程序名称:串口发送数据(晶振频率18.432MHz) 功能说明:通过串口 1发送Everything is possible!” 波特率9600,数据位8,奇偶效验无,停止位1,数据流控制无 ********/ include ,,iapl5w4k58s4.h #include lt;intrins.hgt; //加入此头文件后可使用_nop_库函 数include ,,delay.hH //延时函数头文件 ==========// 函数:void SYSJnit(void) //描述:单片机端口初始化 //================—=== ========== void SYS_lnit() { P0M0=0x20; POM 1=0x20; PlM0=0x3C; PlMl=0x3C; P2M0=0x00; P2M 1=0x00; P3M0=0x00; P3M 1=0x00; P4M0=0x00; P4M 1=0x00; P5M0=0x00; P5M 1=0x00; } //================—=== ==========// 函数:void main(void) // 描述:主函数 // //void main() // // 初始化串口 DelayUS(lOO); while (1) //

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档