当前位置:
文档之家› 串行通信专业技术模拟信号转换接口
串行通信专业技术模拟信号转换接口
由此可以实现PC串口的自收自发功能。
(2)思考题:异步串行通信接口的收/发双方是怎么建立起通信的
首先在异步通信中,要求接收方和发送方具有相同的通信参数,即起始位、停止位、波特率等等。在满足上面条件的情况下,发送方对于每一帧数据按照起始位数据位停止位的顺序进行发送,而接收方则一直处于接受状态,当检测到起始位低电平时,看是采集接下来发送方发送过来的数据,这样一帧数据(即一个字符)传送完毕,然后进行下一帧数据的接受。这样两者之间就建立起了通信。
if(done==1)//检测接受完毕信号
{
for(j=0;j<=count;j++)
{
while((IFG2&UCA0TXIFG)==0);
UCA0TXBUF=string[j];
}
done=0;
}
}
}
voidUSCIA0_int()
{
UCA0CTL1|=UCSWRST;
P1SEL|=BIT1+BIT2;
USCIA0_int();//通信设置
while(1)
{
done=0;
count=0;
for(i=0;i<32;i++)
{
while((IFG2&UCA0RXIFG)==0);//循环等待接受缓冲器满
string[i]=UCA0RXBUF;//读接受缓冲器并保存
if(string[i]=='@')//检测发送完毕信号@
}
也是采用了低频波特率方式,所以关于波特率设置的相关计算和上面是一样的。
(3)思考:如果在两个单片机之间进行串行通信,应该如何设计连线和编程?
由于在上面的连线中将单片机上的P1.2和BRXD相连,P1.1和BTXD相连,所以若要在两个单片机之间进行通信,首先应该将两个单片机的P1.2和P1.1交叉相连,并根据上面的程序进行相同的关于端口和波特率相关的设置即可实现两个单片机之间的通信。
count=0;
for(i=0;i<32;i++)
{
while((IFG2&UCA0RXIFG)==0);//循环等待接受缓冲器满
string[i]=UCA0RXBUF;//读接受缓冲器并保存
if(string[i]==1;//接受完毕信号
break;
}
}
count=i;
串行通信技术-模拟信号转换接口
———————————————————————————————— 作者:
———————————————————————————————— 日期:
ﻩ
微机原理与应用实验报告6
实验9串行通信技术
实验10Aﻩ模拟信号转换接口
实验报告
实验九串行通信技术
一、实验目的
1.了解异步串行通信原理;
{
BCSCTL1=CALBC1_1MHZ;//采用smclk1MHZ
DCOCTL=CALDCO_1MHZ;
}
}
其中SMCLK=1MHz,波特率采用的是9600,采用低频波特方式,则N=1000000/9600=104.1666…,故UCA0BR1=0,UCA0BR0=104,UCBRS=1;
当采用外部晶振时,时钟采用默认设置即可,程序如下:
2.查询方式控制单片机通过板载USB转串口与PC机实现串行通信
(1)硬件连接图
(2)C语言程序
采用SMCLK=1.0MHz时,程序如下:
#include "io430.h"
#include"in430.h"
unsignedinti,j,done,count;
char string[32];
voidUSCIA0_int();
{
UCA0CTL1|=UCSWRST;
P1SEL|=BIT1+BIT2;
P1SEL2|=BIT1+BIT2;//端口设置
UCA0CTL1|=UCSSEL_1+UCRXEIE;//时钟选择设置(SMCLK)
UCA0BR1=0;UCA0BR0=3;
UCA0MCTL=UCBRS_3;//波特率设置
UCA0CTL1&=~UCSWRST;
voidCLOCK_int();
intmain( void )
{
//Stopwatchdog timer to preventtimeout reset
WDTCTL=WDTPW +WDTHOLD;
USCIA0_int();//通信设置
CLOCK_int();//时钟设置
while(1)
{
done=0;
#include"io430.h"
#include"in430.h"
unsignedint i,j,done,count;
charstring[32];
voidUSCIA0_int();
int main(void)
{
//Stopwatchdog timertopreventtimeoutreset
WDTCTL= WDTPW+WDTHOLD;
3.(提高)利用PC机RS232通信接口与单片机之间完成串行通信
(1)硬件连接图
在实验时,采用了将PC机的串口com1直接连接至MSP430F149的孔型D9连接器上,G2553单片机的输出引脚P1.1和P1.2分别与F149单片机上的URXD1和UTXD1相连接,连接图如下所示:
(2)C语言程序
2.掌握MSP430异步串行通信模块及其编程方法;
二、实验任务
1.了解MSP430G2553实验板USB转串口的通信功能,掌握串口助手的使用
(1)利用PC机的串口助手程序控制串口,实现串口的自发自收功能
ﻩ为实现PC串口的自发自收功能,须现将实验板上的扩展板去下,并将单片机板上的BRXD和BTXD用杜邦线进行短接,连接图如下所示:
P1SEL2|=BIT1+BIT2;//端口设置
UCA0CTL1|=UCSSEL_2+UCRXEIE;//时钟选择设置(SMCLK)
UCA0BR1=0;UCA0BR0=104;
UCA0MCTL=UCBRS_1;//波特率设置
UCA0CTL1&=~UCSWRST;
}
voidCLOCK_int()
{
if(CALBC1_1MHZ!=0xff)//设置时钟为1MHz
{
done=1;//接受完毕信号
break;
}
}
count=i;
if(done==1)//检测接受完毕信号
{
for(j=0;j<=count;j++)
{
while((IFG2&UCA0TXIFG)==0);
UCA0TXBUF=string[j];
}
done=0;
}
}
}
voidUSCIA0_int()