|
|
利用MATLAB實(shí)現(xiàn)PC機(jī)和單片機(jī)串口通信實(shí)例的電路原理圖:
07010621261955.jpg (81.81 KB, 下載次數(shù): 41)
下載附件
2018-3-9 22:29 上傳
PC將數(shù)字(0,1,2,3......255,轉(zhuǎn)換為16進(jìn)制)傳給下位機(jī)。
下位機(jī)收到后回傳這個(gè)數(shù)字,PC機(jī)接收到回傳數(shù)據(jù)后顯示出來。
如果PC發(fā)送和接收的數(shù)據(jù)相同,顯示通信正常,否則通信不正常。
通信程序發(fā)送以16進(jìn)制數(shù)00開始,以16進(jìn)制數(shù)FF表示通信結(jié)束。
利用MATLAB實(shí)現(xiàn)PC與單片機(jī)串口通信任務(wù)文件包:
0.png (46.32 KB, 下載次數(shù): 38)
下載附件
2018-3-9 22:29 上傳
利用Keil C51實(shí)現(xiàn)單片機(jī)與PC串口通信任務(wù)單片機(jī)源程序如下:
- /*PC機(jī)通過串行口將數(shù)字(1,2,3...255)傳給單片機(jī),單片機(jī)收到后回傳這個(gè)數(shù)字,
- 并存入自己內(nèi)部一段連續(xù)的空間中,PC機(jī)接收到回傳數(shù)據(jù)后顯示出來,直至傳送完結(jié)束符255*/
- # pragma db code
- # include<reg51.h>
- # 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=0xFa;
- TH1=0xFa; //22.1184MHZ晶振,波特率為4800 0xf3 9600 0xfa 19200 0xfd
- TR1=1; //啟動(dòng)定時(shí)
- }
- /*接收返回?cái)?shù)據(jù)*/
- 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);
- }
復(fù)制代碼
0.png (51.08 KB, 下載次數(shù): 40)
下載附件
2018-3-9 22:30 上傳
所有資料51hei提供下載:
03.PC機(jī)與單片機(jī)串口通信實(shí)例1.rar
(69.84 KB, 下載次數(shù): 90)
2018-3-9 15:24 上傳
點(diǎn)擊文件名下載附件
通信 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|