欢迎来到天天文库
浏览记录
ID:22286271
大小:120.04 KB
页数:20页
时间:2018-10-28
《实验七单片机串口通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验七单片机串口通信实验七串口通信实验【实验目的】1、理解单片机串行口的工作原理;2、学习使用单片机的TXD、RXD口;3、学习PC机的申口通讯原理。【实验内容】任务:1.单片机与电脑串口通讯,将单片机与电脑相连,借助串口调试助手,单片机发送“Everythingispossible八_八”。2.申口调试助手中输入“turnonledl”、“turnonled2”、“turnonled3”中一个,相应的led点亮,单片机再发送“TurnonLED1hasbeenexecuted!”消息提示输入下一个需要点亮的灯。通讯
2、波特率:9600bps,信息格式:无校验位+8个数据位+1个停止位,传送方式,单片机采用中断方式接收信息。原理:SMO、SM1:由软件置位或清零,用于选择串行口四种工作方式。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必须
3、为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:发送中断标
4、志位。在方式0时,当发送数据第8位结束后,或在其它方式发送停止位后,由内部硬件使TI置位,向CPU请求屮断。CPU在响应中断后,必须用软件淸零。此外,TI也可供查询使用。RI:接收中断标志位。在方式0时,当接收数据的第8位结束后,或在其它方式接收到停止位的中间由内部硬件使RI置位,向CPU请求中断。同样,在CPU响应中断后,也必须用软件清零。RI也可供查询使用。倍。其余各位与串行口无关。波特率设置:串行口的4种工作方式对应着三种波特率模式。对于方式0,波特率是同定的,为fosc/12。对于方式2,波特率由振荡频率fo
5、sc和SM0D(PC0N.7)所决定。其对应公式为波特率=2SM0DXfosc/64。当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fOSC/32。对于方式1和方式3,波特率由定时器/计数器T1的溢出率和SMOD决定,即由下或确定:波特率=2SM0DX定时器/计数器T1溢出率/32鉴于8051单片机输入、输出电平均为TTL/CMOS电平,而计算机配置的是RS232标准串行接门,使用的是RS232标准电平(逻辑0:+3V〜+15V,逻辑1:约-3V〜-15V),二者的电气规范不一致,因此要完成PC
6、机与单片机的数据通讯,必须进行电〒转换。实验参考程序:一、任务1l.main.c程序/***********程序名称:串口发送数据(晶振频率18.432MHz)功能说明:通过串口1发送“Everythingispossible!”波特率9600,数据位8,奇偶效验无,停止位1,数据流控制无********/#includeniapl5w4k58s4.h"#include<intrins.h>//加入此头文件后,可使用_门(^_库函数include,,delay.hH//延时函数头文件//=========
7、===============================================================//函数:voidSYSJnit(void)//描述:单片机端口初始化"========================================================================voidSYS_lnit(){P0M0=0x20;POM1=0x20;PlM0=0x3C;PlMl=0x3C;P2M0=0x00;P2M1=0x00;P3M0=0x00;P3M1=
8、0x00;P4M0=0x00;P4M1=0x00;P5M0=0x00;P5M1=0x00;}//========================================================================//函数:voidmain(void)//描述:主函数//========================
此文档下载收益归作者所有