使用Proteus進行單片機仿真,仿真硬件連接,串口通信部分使用keil與labview編寫程序,實現(xiàn):
PC通過串行口將數(shù)字(00,01,02,03...,F(xiàn)F,十六進制)發(fā)送給單片機,單片機收到后回傳這個數(shù)字,PC接收到回傳數(shù)據后顯示出來,若發(fā)送的數(shù)據和接收到的數(shù)據相等,則串行通信正確,否則有錯誤。啟始符是數(shù)字00,結束符是數(shù)字FF。
實驗中注意PC的串口名 compim與VISA資源名稱要相同,compim中的參數(shù)值要調對,最好不要用虛擬的串口。
keil中的程序為:
# pragma db code
# include
# define uchar unsigned char
void rece(void);
void init(void);
uchar re[17];
void main(void)
{
uchar temp;
init();
do{
while(RI==0);
temp=SBUF;
if(temp==0x00)
{rece();}
else break;
}while(1);
}
void init(void)
{
TMOD=0x20;//定時器1--方式2
PCON=0x80;//電源控制
SCON=0x50;//方式1
TL1=0xF3;
TH1=0xF3;//22.1184MHz晶振,波特率為4800 0xf396000xfa19200 0xfd
TR1=1;
}
void rece(void)
{
char i;
i=0;
do{while(RI==0);
re[i]=SBUF;
RI=0;
SBUF=re[i];
while(TI==0);
TI=0;
i++;
}while(re[i-1]!=255);
}
labview的前面板跟程序框圖 以及Proteus圖為