串行通信技术实验报告.docVIP

  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文档。上传文档
查看更多
串行通信技术实验报告

串行通信技术实验报告 姓名 学号 实验班号 实验机位号 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)

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

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

1亿VIP精品文档

相关文档