標(biāo)題:
51單片機(jī)和PC串口通信仿真實(shí)驗(yàn)源碼(串口助手應(yīng)答單片機(jī))
[打印本頁(yè)]
作者:
張露婕
時(shí)間:
2018-10-18 19:09
標(biāo)題:
51單片機(jī)和PC串口通信仿真實(shí)驗(yàn)源碼(串口助手應(yīng)答單片機(jī))
晶振12MHz,波特率1200, 程序啟動(dòng)后單片機(jī)主動(dòng)發(fā)出Hello Server, PC使用串口助手應(yīng)答單片機(jī),當(dāng)單片機(jī)收到PC發(fā)來(lái)的數(shù)據(jù)AAH后,將30H-3FH的16個(gè)字節(jié)發(fā)送給PC,當(dāng)51收到E0H時(shí)就發(fā)40H-5FH的32個(gè)字節(jié)數(shù)據(jù),若單片機(jī)收到其他數(shù)據(jù)后,則不做任何修改返回PC。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(8.72 KB, 下載次數(shù): 103)
下載附件
2018-10-19 02:15 上傳
單片機(jī)源程序如下:
#include <reg51.h>
char code table[]="hello server!";
int i=0,j=0;
int a=0;
int n=0,m=0;
char data1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f};
char *p=0x40;
void send(char *n,char *m)
{
for(;n<=m;n++)
{
SBUF=*n;
while(!TI);
}
}
void C51() interrupt 4
{
if(RI==1)
{
a=SBUF;
RI=0;
}
else if(TI==1)
{
TI=0;
}
}
void main()
{
EA=1;
TMOD=0x20;
TH1=0xE6;
TL1=0xE6;
TR1=1;
SCON=0x50;
ES=1;
for(;p<=0x5f;p++)
{
*p=data1[j];
j++;
}
for(i=0;table[i]!='\0';i++)
{
SBUF=table[i];
while(!TI);
}
while(1)
{
if(a==0xAA)
{
send(0x50,0x5f);
a=0;
}
if(a==0xE0)
{
send(0x40,0x5f);
a=0;
}
if(a!=0xAA&&a!=0xE0&&a!=0)
{
SBUF=a;
while(!TI);
a=0;
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
實(shí)驗(yàn)五.zip
(34.62 KB, 下載次數(shù): 120)
2018-10-18 19:09 上傳
點(diǎn)擊文件名下載附件
內(nèi)含電路圖和代碼
下載積分: 黑幣 -5
作者:
310139033
時(shí)間:
2019-12-6 08:26
謝謝樓主分享,拿走了
作者:
147wzl
時(shí)間:
2023-11-10 21:02
串口助手要怎么操作?我設(shè)置好相對(duì)的參數(shù),無(wú)法打開(kāi)串口。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1