#include <REG52.H>  

unsigned char UART_buff;
bit New_rec = , Send_ed = , Money = ;
void main (void)
{
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = ;
ES = ;
EA = ;
while(Money == ); while()
{
if((New_rec == ) && (Send_ed == ))
{
UART_buff = SBUF;
SBUF = UART_buff;
New_rec = ;
Send_ed = ;
}
}
} void ser_int (void) interrupt {
if(RI == )
{
RI = ;
New_rec = ;
UART_buff = SBUF;
if(UART_buff == '') Money = ;
Money = ;
} else
{
TI = ;
Send_ed = ;
} }

2.mcu sends a1234, pc receives 1234


#define MAIN_Fosc        11059200L
#include "15W4KxxS4.H"
#include <intrins.h> #define uint8 unsigned char
#define uint16 unsigned int #define BAUD 9600
#define TM (65536 - (MAIN_Fosc/4/BAUD)) volatile uint8 Flag=FALSE; uint8 uart1temp; void Uart1_Init(void)
{ PCON &= 0x3f;
SCON = 0x50;
AUXR |= 0x40;
AUXR &= 0xfe;
TMOD &= 0x0f;
TMOD |= 0x20;
TL1 = 0xDC;
TH1 = 0xDC;
ET1 = ;
TR1 = ;
} void SendDataByUart1(uint8 dat)
{
if(!(dat^'a'))TI=;
else
{
TI=;
SBUF = dat;
while(TI == );
TI = ;
}
} void Uart1() interrupt UART1_VECTOR using
{
ES = ;
Flag=TRUE;
if (RI )
{
RI = ;
uart1temp = SBUF;
}
if (TI)
{
TI = ;
}
ES = ;
} void USART1_Tx_Puts(void)
{
if(Flag)
{
ES = ;
SendDataByUart1(uart1temp); ES = ;
Flag=FALSE;
}
} int main()
{
Uart1_Init();
ES = ;
EA = ;
while()
{
USART1_Tx_Puts( );
} }

3. mcu uart3 receives string, uart4 sends string.


#define MAIN_Fosc        11059200L    //¶¨ÒåÖ÷ʱÖÓ
#include "15W4KxxS4.H"
#include <intrins.h> // ¼ÓÈë´ËÍ·Îļþºó,¿ÉʹÓÃ_nop_¿âº¯Êý
#include <string.h> // ¼ÓÈë´ËÍ·Îļþºó,¿ÉʹÓÃstrstr¿âº¯Êý #define uint8 unsigned char
#define uint16 unsigned int #define S3RI 0x01
#define S3TI 0x02
#define S4RI 0x01
#define S4TI 0x02 #define BAUD 9600 // ²¨ÌØÂÊ
#define Buf_Max 50 uint8 xdata Rec_Buf3[Buf_Max]; //½ÓÊÕ´®¿Ú3»º´æÊý×é
uint8 xdata Rec_Buf4[Buf_Max]; //½ÓÊÕ´®¿Ú4»º´æÊý×é
uint8 i = ;
uint8 j = ; /***************************************************************************
* Ãè Êö : ´®¿Ú3³õʼ»¯º¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void Uart3_Init(void)
{
S3CON |= 0x50; //´®¿Ú3Ñ¡Ôñ¶¨Ê±Æ÷3Ϊ²¨ÌØÂÊ·¢ÉúÆ÷£¬Æô¶¯´®ÐнÓÊÕÆ÷
S3CON &= 0x70; //8λÊý¾Ý,¿É±ä²¨ÌØÂÊ T3H=(-(MAIN_Fosc///BAUD))/;
T3L=(-(MAIN_Fosc///BAUD))%; T4T3M |= 0x08; //ÔÊÐí¶¨Ê±Æ÷3ÔËÐÐ
IE2 |= 0x08; // ´®¿Ú3Öжϴò¿ª
IE2 &= 0xDF; // ¹Ø±Õ¶¨Ê±Æ÷3ÖжÏ
} /***************************************************************************
* Ãè Êö : ´®¿Ú3·¢ËÍÊý¾Ýº¯Êý
* Èë ²Î : uint8 Êý¾Ý
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void SendDataByUart3(uint8 dat)
{
S3BUF = dat; //дÊý¾Ýµ½UARTÊý¾Ý¼Ä´æÆ÷
while(!(S3CON&S3TI)); //ÔÚֹͣλûÓз¢ËÍʱ£¬S3TIΪ0¼´Ò»Ö±µÈ´ý
S3CON&=~S3TI; //Çå³ýS3CON¼Ä´æÆ÷¶ÔÓ¦S3TI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
} /***************************************************************************
* Ãè Êö : ´®¿Ú3·¢ËÍ×Ö·û´®º¯Êý
* Èë ²Î : ×Ö·û´®
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void SendStringByUart3(uint8 *s)
{
IE2 &= 0xF7; // ´®¿Ú3ÖжϹرÕ
while (*s) //¼ì²â×Ö·û´®½áÊø±êÖ¾
{
SendDataByUart3(*s++); //·¢Ë͵±Ç°×Ö·û
}
IE2 |= 0x08; // ´®¿Ú3Öжϴò¿ª
} /**************************************
¹¦ÄÜÃèÊö£ºÎÕÊֳɹ¦Óë·ñº¯Êý
Èë¿Ú²ÎÊý£ºuint8 *a
·µ»ØÖµ£ºÎ»
***************************************/
bit Hand3(uint8 *a)
{
if(strstr(Rec_Buf3,a)!=NULL) //ÅжÏ×Ö·û´®aÊÇ·ñÊÇ×Ö·û´®Rec_Buf3µÄ×Ó´®
return ; //Èç¹û×Ö·û´®aÊÇ×Ö·û´®Rec_Buf3µÄ×Ó´®
else
return ; //Èç¹û×Ö·û´®a²»ÊÇ×Ö·û´®Rec_Buf3µÄ×Ó´®
} /**************************************
¹¦ÄÜÃèÊö£ºÇå³ý»º´æÄÚÈݺ¯Êý
Èë¿Ú²ÎÊý£ºÎÞ
·µ»ØÖµ£ºÎÞ
***************************************/
void CLR_Buf3(void)
{
uint8 k;
for(k=;k<Buf_Max;k++) //½«´®¿Ú3»º´æÊý×éµÄÖµ¶¼ÇåΪÁã
{
Rec_Buf3[k] = ;
}
i = ;
} /***************************************************************************
* Ãè Êö : ´®¿Ú3ÖжϷþÎñº¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void Uart3() interrupt UART3_VECTOR using
{
IE2 &= 0xF7; // ´®¿Ú3ÖжϹرÕ
if (S3CON & S3RI) //´®ÐнÓÊÕµ½Í£Ö¹Î»µÄÖмäʱ¿Ìʱ£¬¸ÃλÖÃ1
{
S3CON &= ~S3RI; //Çå³ýS3CON¼Ä´æÆ÷¶ÔÓ¦S3RI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
Rec_Buf3[i] = S3BUF; //°Ñ´®¿Ú3»º´æSBUF¼Ä´æÆ÷Êý¾ÝÒÀ´Î´æ·Åµ½Êý×éRec_Buf3ÖÐ
i++;
if(i>Buf_Max) //½ÓÊÕÊý´óÓÚ¶¨Òå½ÓÊÕÊý×é×î´ó¸öÊýʱ£¬¸²¸Ç½ÓÊÕÊý×é֮ǰֵ
{
i = ;
}
}
if (S3CON & S3TI) //ÔÚֹͣλ¿ªÊ¼·¢ËÍʱ£¬¸ÃλÖÃ1
{
S3CON &= ~S3TI; //Çå³ýS3CON¼Ä´æÆ÷¶ÔÓ¦S3TI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
}
IE2 |= 0x08; // ´®¿Ú3Öжϴò¿ª
} /***************************************************************************
* Ãè Êö : ´®¿Ú4³õʼ»¯º¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void Uart4_Init(void)
{
S4CON |= 0x50; //´®¿Ú4Ñ¡Ôñ¶¨Ê±Æ÷4Ϊ²¨ÌØÂÊ·¢ÉúÆ÷£¬Æô¶¯´®ÐнÓÊÕÆ÷
S4CON &= 0x70; //8λÊý¾Ý,¿É±ä²¨ÌØÂÊ T4H=(-(MAIN_Fosc///BAUD))/;
T4L=(-(MAIN_Fosc///BAUD))%; T4T3M |= 0x80; //ÔÊÐí¶¨Ê±Æ÷4ÔËÐÐ
IE2 |= 0x10; // ´®¿Ú4Öжϴò¿ª
IE2 &= 0xBF; // ¹Ø±Õ¶¨Ê±Æ÷4ÖжÏ
} /***************************************************************************
* Ãè Êö : ´®¿Ú4·¢ËÍÊý¾Ýº¯Êý
* Èë ²Î : uint8 Êý¾Ý
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void SendDataByUart4(uint8 dat)
{
S4BUF = dat; //дÊý¾Ýµ½UARTÊý¾Ý¼Ä´æÆ÷
while(!(S4CON&S4TI)); //ÔÚֹͣλûÓз¢ËÍʱ£¬S4TIΪ0¼´Ò»Ö±µÈ´ý
S4CON&=~S4TI; //Çå³ýS4CON¼Ä´æÆ÷¶ÔÓ¦S4TI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
} /***************************************************************************
* Ãè Êö : ´®¿Ú4·¢ËÍ×Ö·û´®º¯Êý
* Èë ²Î : ×Ö·û´®
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void SendStringByUart4(char *s)
{
IE2 &= 0xEF; //´®¿Ú4ÖжϹرÕ
while (*s) //¼ì²â×Ö·û´®½áÊø±êÖ¾
{
SendDataByUart4(*s++); //·¢Ë͵±Ç°×Ö·û
}
IE2 |= 0x10; //´®¿Ú4Öжϴò¿ª
} /**************************************
¹¦ÄÜÃèÊö£ºÎÕÊֳɹ¦Óë·ñº¯Êý
Èë¿Ú²ÎÊý£ºunsigned char *a
·µ»ØÖµ£ºÎ»
***************************************/
bit Hand4(unsigned char *a)
{
if(strstr(Rec_Buf4,a)!=NULL) //ÅжÏ×Ö·û´®aÊÇ·ñÊÇ×Ö·û´®Rec_Buf4µÄ×Ó´®
return ; //Èç¹û×Ö·û´®aÊÇ×Ö·û´®Rec_Buf4µÄ×Ó´®
else
return ; //Èç¹û×Ö·û´®a²»ÊÇ×Ö·û´®Rec_Buf4µÄ×Ó´®
} /**************************************
¹¦ÄÜÃèÊö£ºÇå³ý»º´æÄÚÈݺ¯Êý
Èë¿Ú²ÎÊý£ºÎÞ
·µ»ØÖµ£ºÎÞ
***************************************/
void CLR_Buf4(void)
{
unsigned char k;
for(k=;k<Buf_Max;k++) //½«´®¿Ú4»º´æÊý×éµÄÖµ¶¼ÇåΪÁã
{
Rec_Buf4[k] = ;
}
j = ;
} /***************************************************************************
* Ãè Êö : ´®¿Ú4ÖжϷþÎñº¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void Uart4() interrupt UART4_VECTOR
{
IE2 &= 0xEF; // ´®¿Ú4ÖжϹرÕ
if(S4CON & S4RI) //´®ÐнÓÊÕµ½Í£Ö¹Î»µÄÖмäʱ¿Ìʱ£¬¸ÃλÖÃ1
{
S4CON &= ~S4RI; //Çå³ýS4CON¼Ä´æÆ÷¶ÔÓ¦S4RI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
Rec_Buf4[j] = S4BUF; //°Ñ´®¿Ú4»º´æSBUF¼Ä´æÆ÷Êý¾ÝÒÀ´Î´æ·Åµ½Êý×éRec_Buf4ÖÐ
j++;
if(j>Buf_Max) //½ÓÊÕÊý´óÓÚ¶¨Òå½ÓÊÕÊý×é×î´ó¸öÊýʱ£¬¸²¸Ç½ÓÊÕÊý×é֮ǰֵ
{
j = ;
}
}
if(S4CON & S4TI) //ÔÚֹͣλ¿ªÊ¼·¢ËÍʱ£¬¸ÃλÖÃ1
{
S4CON &= ~S4TI; //Çå³ýS4CON¼Ä´æÆ÷¶ÔÓ¦S4TI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
}
IE2 |= 0x10; // ´®¿Ú4Öжϴò¿ª
} /***************************************************************************
* Ãè Êö : Ö÷º¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
int main()
{
/////////////////////////////////////////////////
//×¢Òâ: STC15W4K32S4ϵÁеÄоƬ,ÉϵçºóËùÓÐÓëPWMÏà¹ØµÄIO¿Ú¾ùΪ
// ¸ß×è̬,Ð轫ÕâЩ¿ÚÉèÖÃΪ׼˫Ïò¿Ú»òÇ¿ÍÆÍìģʽ·½¿ÉÕý³£Ê¹ÓÃ
//Ïà¹ØIO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
// P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
/////////////////////////////////////////////////
P0M1 &= 0xF0; P0M0 &= 0xF0; //ÉèÖÃP0.0~P0.3Ϊ׼˫Ïò¿Ú Uart3_Init(); // ´®¿Ú3³õʼ»¯
Uart4_Init(); // ´®¿Ú4³õʼ»¯
EA = ; // ×ÜÖжϴò¿ª while()
{
if(Hand3("UART3")) // ÊÕµ½´ò¿ªLED1µÄÖ¸Áî
{
IE2 &= 0xF7; // ´®¿Ú3ÖжϹرÕ
CLR_Buf3(); //½«´®¿Ú3»º´æÊý×éµÄÖµ¶¼ÇåΪÁã
//SendStringByUart3("UART3 CHECK OK!\r\n"); //´®¿Ú3·¢ËÍ×Ö·û´®UART3 CHECK OK!
SendStringByUart4("UART4 CHECK OK!\r\n"); IE2 |= 0x08; // ´®¿Ú3Öжϴò¿ª
}
if(Hand4("UART4")) // ÊÕµ½´ò¿ªLED1µÄÖ¸Áî
{
IE2 &= 0xEF; // ´®¿Ú4ÖжϹرÕ
CLR_Buf4(); //½«´®¿Ú4»º´æÊý×éµÄÖµ¶¼ÇåΪÁã
//SendStringByUart4("UART4 CHECK OK!\r\n"); //´®¿Ú4·¢ËÍ×Ö·û´®UART4 CHECK OK!
IE2 |= 0x10; // ´®¿Ú4Öжϴò¿ª
}
}
}

4. mcu uart1 re a1234, uart2 send 1234

//pc send a1234 mcu send 1234
#define MAIN_Fosc 11059200L //?????
#include "15W4KxxS4.H"
#include <intrins.h> // ???????,???_nop_???
#include <string.h> // ???????,???strstr??? #define uint8 unsigned char
#define uint16 unsigned int #define BAUD 9600 // ???
#define TM (65536 - (MAIN_Fosc/4/BAUD))
#define Buf_Max 50
#define S2_S 0x00
#define S2RI 0x01
#define S2TI 0x02
#define S3RI 0x01
#define S3TI 0x02
#define S4RI 0x01
#define S4TI 0x02 uint8 xdata Rec_Buf1[Buf_Max]; //????1????
uint8 xdata Rec_Buf2[Buf_Max]; //????2????
uint8 xdata Rec_Buf3[Buf_Max]; //????3????
uint8 xdata Rec_Buf4[Buf_Max]; //????4????
uint8 i = ;
uint8 j = ;
uint8 m = ;
uint8 n = ; volatile uint8 Flag=FALSE; uint8 uart1temp; void Uart1_Init(void)
{ P_SW1|=0X80; //??P16 P17???1
P_SW1&=0XBF; //??P16 P17???1
P_SW2|=S2_S; //??P46 P47???2
//??1??
PCON &= 0x3f; //??1??????,????????SM0?SM1??
SCON = 0x50; //??1?8???,?????,???????
AUXR |= 0x01; //??1?????2???????
//??2??
S2CON = 0x50; //??2?8???,?????
//??3??
S3CON |= 0x10; //??3???????
S3CON &= 0x30; //??3?????2???????,8???,?????
//??4??
S4CON |= 0x10; //???????
S4CON &= 0x30; //8???,?????,??4?????2??????? AUXR |= 0x04; //???2???Fosc,?1T
T2L = 0xE0; //??????
T2H = 0xFE; //??????
AUXR |= 0x10; //?????2
} void SendDataByUart1(uint8 dat)
{
if(!(dat^'a'))TI=;
else
{
TI=;
S2BUF = dat;
while(!(S2CON&S2TI)); //?????????,S2TI?0?????
S2CON&=~S2TI;
}
} void Uart1() interrupt UART1_VECTOR using
{
ES = ;
Flag=TRUE;
if (RI )
{
RI = ;
uart1temp = SBUF;
}
if (TI)
{
TI = ;
}
ES = ;
} void USART1_Tx_Puts(void)
{
if(Flag)
{
ES = ;
SendDataByUart1(uart1temp); ES = ;
Flag=FALSE;
}
} int main()
{
Uart1_Init();
ES = ;
EA = ;
while()
{
USART1_Tx_Puts( );
} }

5. mcu u1 rec a123,u2 send 1234; u1 re b123, u3 send 123; u1 rec c123, u4 send 123; u1 rec xxx, u1 send xxx;

//pc send a1234 mcu send 1234
#define MAIN_Fosc 11059200L //?????
#include "15W4KxxS4.H"
#include <intrins.h> // ???????,???_nop_???
#include <string.h> // ???????,???strstr??? #define uint8 unsigned char
#define uint16 unsigned int #define BAUD 9600 // ???
#define TM (65536 - (MAIN_Fosc/4/BAUD))
#define Buf_Max 50
#define S2_S 0x00
#define S2RI 0x01
#define S2TI 0x02
#define S3RI 0x01
#define S3TI 0x02
#define S4RI 0x01
#define S4TI 0x02 uint8 xdata Rec_Buf1[Buf_Max]; //????1????
uint8 xdata Rec_Buf2[Buf_Max]; //????2????
uint8 xdata Rec_Buf3[Buf_Max]; //????3????
uint8 xdata Rec_Buf4[Buf_Max]; //????4????
uint8 i = ;
uint8 j = ;
uint8 m = ;
uint8 n = ;
uint8 td=; volatile uint8 Flag=FALSE; uint8 uart1temp; void Uart1_Init(void)
{ P_SW1|=0X80; //??P16 P17???1
P_SW1&=0XBF; //??P16 P17???1
P_SW2|=S2_S; //??P46 P47???2
//??1??
PCON &= 0x3f; //??1??????,????????SM0?SM1??
SCON = 0x50; //??1?8???,?????,???????
AUXR |= 0x01; //??1?????2???????
//??2??
S2CON = 0x50; //??2?8???,?????
//??3??
S3CON |= 0x10; //??3???????
S3CON &= 0x30; //??3?????2???????,8???,?????
//??4??
S4CON |= 0x10; //???????
S4CON &= 0x30; //8???,?????,??4?????2??????? AUXR |= 0x04; //???2???Fosc,?1T
T2L = 0xE0; //??????
T2H = 0xFE; //??????
AUXR |= 0x10; //?????2
} void SendDataByUart1(uint8 dat)
{ if(!(dat^'a')|!(dat^'b')|!(dat^'c')){TI=; td= dat; }//Èç¹ûÊÇaÔò²»·¢ËÍ
else if(td=='a')
{ TI=;
S2BUF = dat;
while(!(S2CON&S2TI)); //?????????,S2TI?0?????
S2CON&=~S2TI;
} else if(td=='b')
{
TI=;
S3BUF = dat;
while(!(S3CON&S3TI)); //?????????,S2TI?0?????
S3CON&=~S3TI;
}
else if(td=='c')
{
TI=;
S4BUF = dat;
while(!(S4CON&S4TI)); //?????????,S2TI?0?????
S4CON&=~S4TI;
}
else
{
TI=;
SBUF = dat;
while(!TI); //?????????,S2TI?0?????
TI=;
} } void Uart1() interrupt UART1_VECTOR using
{
ES = ;
Flag=TRUE;
if (RI )
{
RI = ;
uart1temp = SBUF;
}
if (TI)
{
TI = ;
}
ES = ;
} void USART1_Tx_Puts(void)
{
if(Flag)
{
ES = ;
SendDataByUart1(uart1temp); ES = ;
Flag=FALSE;
}
} int main()
{
Uart1_Init();
ES = ;
EA = ;
while()
{
USART1_Tx_Puts( );
} }

6.  ...5, u4 rec q, exit loop, enter new function

//pc send a1234 mcu send 1234
#define MAIN_Fosc 11059200L #define Main_Fosc_KHZ (MAIN_Fosc / 1000)
#include "15W4KxxS4.H"
#include <intrins.h>
#include <string.h> #define uint8 unsigned char
#define uint16 unsigned int #define Buf_Max 50
uint8 data Rec_Buf[Buf_Max];
#define S2_S 0x00
#define S2RI 0x01
#define S2TI 0x02
#define S3RI 0x01
#define S3TI 0x02
#define S4RI 0x01
#define S4TI 0x02 uint8 i = ;
uint8 j = ;
uint8 m = ;
uint8 n = ;
uint8 td=; volatile uint8 Flag=FALSE; uint8 uart1temp; void Uart1_Init(void)
{ P_SW1|=0X80; //串口1在P1.6,P1.7
P_SW1&=0XBF;
// P_SW2|=S2_S; //串口2在P1.0,P1.1
//
// PCON &= 0x3f;
// SCON = 0x50; //?
// AUXR |= 0x01; // T2
//
// S2CON = 0x50; //
//
// S3CON |= 0x10; //
// S3CON &= 0x30; //
//
// S4CON |= 0x10; //
// S4CON &= 0x30; //
//
// AUXR |= 0x04; //
// T2L = 0xE0; //
// T2H = 0xFE; //
// AUXR |= 0x10; // SCON = 0x50;
S2CON = 0x50; //8位数据,可变波特率
S3CON = 0x10; //8位数据,可变波特率
S3CON &= 0xBF; //串口3选择定时器2为波特率发生器
S4CON = 0x10; //8位数据,可变波特率
S4CON &= 0xBF; //串口4选择定时器2为波特率发生器
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x01; //串口1选择定时器2为波特率发生器
AUXR |= 0x04; //定时器2时钟为Fosc,即1T
T2L = 0xE8; //设定定时初值
T2H = 0xFF; //设定定时初值
AUXR |= 0x10; //启动定时器2 } void SendDataByUart1(uint8 dat)
{
if(!(dat^'a')|!(dat^'b')|!(dat^'c')|!(dat^'q') ){TI=; td= dat; }
else if(td=='a')
{ S2BUF = dat;
while(!(S2CON&S2TI));
S2CON&=~S2TI;
} else if(td=='b')
{
S3BUF = dat;
while(!(S3CON&S3TI));
S3CON&=~S3TI;
} else if (td=='c')
{ S4BUF = dat;
while(!(S4CON&S4TI));
S4CON&=~S4TI; }
} void USART1_Tx_Puts(void)
{
if(Flag)
{
ES = ;
SendDataByUart1(uart1temp); ES = ;
Flag=FALSE;
}
} void SendDataByUart12(uint8 dat)
{
SBUF = dat;
while(! TI );
TI=; } /*
void SendDataByUart12(uint8 dat)
{
SBUF = dat;
while(!TI);
TI=0; }*/
void USART1_Tx_Puts12(void)
{
if(Flag)
{
ES = ;
SendDataByUart12(uart1temp); ES = ;
Flag=FALSE;
}
} int main()
{ P1M1 &= 0x3F; P1M0 &= 0x3F; //设置P1.6~P1.7为准双向口
Uart1_Init();
ES = ;
EA = ; while()
{ USART1_Tx_Puts ( );
if( td=='q')
{
SBUF=;
break;
}
} while()
{ USART1_Tx_Puts12 ( ); } } void Uart1() interrupt UART1_VECTOR using
{
ES = ;
Flag=TRUE;
if (RI )
{
RI = ;
uart1temp = SBUF;
Rec_Buf[i] = uart1temp; //把串口1缓存SBUF寄存器数据依次存放到数组Rec_Buf中
i++;
if(i>Buf_Max) //接收数大于定义接收数组最大个数时,覆盖接收数组之前值
{
i = ;
}
} if (TI)
{
TI = ;
}
ES = ;
}

com_pc-mcu的更多相关文章

  1. 意法STM32F1系列MCU单片机解密芯片破解复制

    意法STM32F1系列MCU单片机解密芯片破解复制 STM32F1系列MCU芯片解密: STM32F100解密 | STM32F101解密 | STM32F102解密 | STM32F103解密 |  ...

  2. MCU的四个功能

    以下来自Atmel Mega128的说明手册: 微控制器(微处理器)Microcontroller(MCU)的四个基本功能为: 1. access memory, 2.  perform calcul ...

  3. 【MCU】【STM32】1.cube MX库使用笔记

    STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列.(如,STM32CubeF4 是针对STM32F4系列). 平台包括了STM32Cube 硬件抽象层和一套的中间件组件(RTOS, ...

  4. 如何快速掌握一款新的MCU? (转)

      发布时间:2013-12-15 10:27:51 技术类别:单片机     个人分类:话题思考       任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量.指 ...

  5. (原创)巩固理解基于DS18B20的1-wire协议(MCU,经验)

    1.Abstract     如前篇随笔所写,将以前遇到最难懂的两个部分重拾一下.前一篇写的是I2C协议(http://www.cnblogs.com/hechengfei/p/4117840.htm ...

  6. (原创) 巩固理解I2C协议(MCU,经验)

        题外话:这几天天气突然转冷了.今天已是11月23日了,查查黄历,昨天(11月22日)刚好是小雪,一夜温度骤降,果然老祖先的经验有灵验!冬天来了,还是多加加衣服,注意保暖! 1.Abstract ...

  7. 如何为编程爱好者设计一款好玩的智能硬件(三)——该选什么样的MCU呢?

    一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计硬件积木的! ...

  8. 如何去各型MCU的官网上下载正确的数据手册

    一.背景 感谢老司机左栋,虽然他一直很排斥这个名号 : ) ,可就技术上来说,还是当之无愧的. 弄了1年多单片机了,数据手册不是老员工或者头头给,就是从开发板资料拿.一直没有意识到,官网的东西才是最可 ...

  9. [转载]MCU DSP ARM 嵌入式 之间的区别

    2016-06-28 10:31:24) 嵌入式"这是个概念,准确的定义没有,各个书上都有各自的定义.但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简 ...

  10. 面对一个新的MCU,我再也不敢说第一步是点灯了

    折腾了几天AT91SAM3S,今天才算是把开发板上的3个LED点亮. 在点亮之前,起码看了百八十页的Datasheet,动用了N次百度. 各种时钟,看门狗,分散加载,中断向量,都得去整.这些都远远超过 ...

随机推荐

  1. 1.5.3、CDH 搭建Hadoop在安装之前(定制安装解决方案---创建群集主机的虚拟映像)

    创建群集主机的虚拟映像 您可以使用预先部署的Cloudera软件创建虚拟机映像,例如PXE启动映像,Amazon AMI和Azure VM映像,这些映像可用于快速启动虚拟机.这些图像使用parcel来 ...

  2. Oracle数据导出导入

    总结了几种Oracle导入导出的命令方法,方便以后使用.      数据导出: 1. 将数据库test完全导出,用户名system 密码manager 导出到d:/daochu.dmp中        ...

  3. Lattice Constants and Crystal Structures of some Semiconductors

    Lattice Constants and Crystal Structures of some Semiconductors and Other Materials Element or Compo ...

  4. centos搭建OPENldap

    LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需要定制.与X ...

  5. hdoj1013(数根,大数,九余数算法)

    Digital Roots Problem Description The digital root of a positive integer is found by summing the dig ...

  6. Codeforces Beta Round #54 (Div. 2)

    Codeforces Beta Round #54 (Div. 2) http://codeforces.com/contest/58 A 找子序列 #include<bits/stdc++.h ...

  7. Windows 64 位 mysql 5.7.20 安装教程

    mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法 mysql官网下载地址:https://dev.my ...

  8. java 基础之--java动态代理

    1.抽象角色:声明真实对象与代理对象的共同接口: 2.代理角色:相当于中介的作用,bridge,内部包含对真实角色的reference,在执行真实操作对象时,附加其他操作,相当于对真实角色的封装: 3 ...

  9. java 基础之--反射详解

    java 反射绝大部分都位于 java.lang.reflect package 中:常用的类就是: 1.class类:代表一个类 2.field类:代表类的成员变量 3.method:代表类的方法 ...

  10. day 06 列表去重, 数据类型的补充,编码,深浅copy

    因为重要,所以放前面 列表去重 l1 = [1, 2, 3, 4, 5] l2 = [3, 4, 5, 6, 7] set = list(set(l1 + l2)) # set自动去重,然后变成lis ...