單片機作為從機接收數據的程序:
#include<reg52.h>
#include <stdio.h>
unsigned char Rx_buf[4],num=0;
sbit LED1=P1^0;
sbit LED2=P1^1;
void InitUART(void) //這是串口的基本配置,配置波特率是9600.
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xF9;
TL1 = TH1;
PCON = 0x80;
EA = 1;
ES = 1;
TR1 = 1;
}
void Delay_ms(unsigned int n)//n 毫秒延時
{
unsigned char j;
while(n--)
{
for(j=0;j<125;j++);
}
}
void main()
{
unsigned char Tx_Buf[10];
InitUART(); //初始化串口
while(1)
{
;
}
}
/*****************串口接收中斷函數*********************/
void SERIAL_MY(void) interrupt 4
{
ES=0; //關閉中斷
if(RI) //接收到數據
{
Rx_buf[num]=SBUF; //接收數據進數組
if(num>0x10)
num=0;
else
num++;
}
RI=0;
ES=1; //關閉中斷
}
|