- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
串行通信技术实验报告
串行通信技术实验报告
姓名 学号 实验班号 实验机位号 50
实验目的
了解异步串行通信原理
掌握MSP430异步串行通信模块及其编程方法
必做实验任务
1.了解MSP430G2553实验板USB转串口的通信功能,掌握
拆下单片机的功能拓展板,将430-FET板载仿真器的BRXD,BTXD收发信号端口连接,通过接线
思考:异步串行通信接口的收/发双方是怎样建立起通信的?
答:异步串行通信的收发双方进行通信,在硬件与软件方面都有要求。
在在所以两条线而且由于
2.查询方式控制单片机通过板载USB转串口与PC机实现串行通信
本实验通过编程实现单片机和PC机之间的通信,信号bps,无校验先低后高字符串单片机收到字符
实验程序如下:
#include io430.h
unsigned char string[];
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
void USCIA0_int()
{
UCA0CTL1|=UCSWRST; //swrst=1;
//置P1.1、P1.2为USCI_A0的收发引脚
P1SEL|=BIT1+BIT2;
P1SEL2|=BIT1+BIT2;
//时钟SMCLK选择为1.0MHz
if (CALBC1_1MHz!=0xff)
{BCSCTL1=CALBC1_1MHZ;
DCOCTL=CALDCO_1MHZ;}
//设置控制寄存器
UCA0CTL1|=UCSSEL_2+UCRXEIE;
//设置波特率寄存器,采用低频波特率方式
UCA0BR1=0;
UCA0BR0=104;
UCA0MCTL=UCBRS_1;
UCA0CTL1=~UCSWRST; //swrst=0
}
While(1)
{
unsigned int j;
for (j=0;string[j]!=@;j++)
{
while((IFG2UCA0RXIFG)==0);
string[j]=UCA0RXBUF;
}
unsigned i=j;
for (j=0;j!=i+1;j++)
{
while((IFG2UCA0TXIFG)==0);
UCA0TXBUF=string[j];
}
}
}
思考:如果在两个单片机之间进行串行通信,如何设计连线和编程?
答:
编程:其中一个单片机可以继续采用本实验中所用的程序,另一个单片机之后进入接收状态
连线:将一个单片机的P1.1、P1.2接口分别与另一个的P1.2、P1.1接口连接,控制两个单片机同时运行程序即可完成两个单片机之间的通信。
3.利用PC机RS232通信接口与单片机完成串行通信
编程采用下面数据格式,完成单片机与PC机之间的字符串传送。
波特率9600bps,奇校验,8位数据,先低后高,1个停止位;
本实验需要用到MSP430F149,进行PC机与单片机之间的电平信号转换。
连线如下图:
实验程序如下:
#include io430.h
unsigned char string[];
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
void USCIA0_int()
{
UCA0CTL1|=UCSWRST; //swrst=1;
//置P1.1、P1.2为USCI_A0的收发引脚
P1SEL|=BIT1+BIT2;
P1SEL2|=BIT1+BIT2;
//时钟SMCLK选择为1.0MHz
if (CALBC1_1MHz!=0xff)
{BCSCTL1=CALBC1_1MHZ;
DCOCTL=CALDCO_1MHZ;}
//设置时钟源采用SMCLK,1MHz,波特率设置为9600,奇校验
UCA0CTL0|=UCPEN;
UCA0CTL1|=UCSSEL_2+UCRXEIE;
//设置波特率寄存器,采用低频波特率方式
UCA0BR1=0;
UCA0BR0=104;
UCA0MCTL=UCBRS_1;
UCA0CTL1=~UCSWRST; //swrst=0
}
While(1)
{
unsigned int j;
for (j=0;string[j]!=@;j++)
{
while((IFG2UCA0RXIFG)==0);
string[j]=UCA0RXBUF;
文档评论(0)