使用Proteus進(jìn)行單片機(jī)仿真,仿真硬件連接,串口通信部分使用keil與labview編寫程序,實(shí)現(xiàn):PC通過串行口將數(shù)字(00,01,02,03...,F(xiàn)F,十六進(jìn)制)發(fā)送給單片機(jī),單片機(jī)收到后回傳這個(gè)數(shù)字,PC接收到回傳數(shù)據(jù)后顯示出來,若發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)相等,則串行通信正確,否則有錯(cuò)誤。啟始符是數(shù)字00,結(jié)束符是數(shù)字FF。
本文引用地址:http://m.butianyuan.cn/article/201701/336653.htm實(shí)驗(yàn)中注意PC的串口名 compim與VISA資源名稱要相同,compim中的參數(shù)值要調(diào)對,最好不要用虛擬的串口。
keil中的程序?yàn)椋?/p>
# 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;//定時(shí)器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圖為
評論