#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. MATLAB 提取头发(最大连通域)

    I= imread('2.jpg'); figure(), imshow(I) R=I(:,:,); G=I(:,:,); B=I(:,:,); [m,n]=size(r); mask=zeros(m ...

  2. veil-catapult

    veil-catapult进行payload投放,直接使payload在内存中执行. kaliIP:192.168.1.119 目标IP:192.168.1.121 1.powershell powe ...

  3. 无线渗透wep加密路由器

    停掉网络服务 service network-manager stop 检查现在的环境适不适合使用airmon-ng airmon-ng check 杀死可能冲突的进程 开启网卡monitor模式 a ...

  4. js实现商品颜色尺码联动以及购买数量的选择

    <script type="text/javascript"> $(function(){ //初始化点击第一个颜色 jquery $("#colors a: ...

  5. python websocket网页实时显示远程服务器日志信息

    功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用 ...

  6. redis 4 集群重启与数据导入

    1.redis 4 平时启用aof db与每天的完整备份. 2.集群状态检查 cluster info 检查集群状态 cluster nodes 检查节点状态 redis-cli -c -p 7000 ...

  7. Android 实现简单 倒计时60秒,一次1秒

    倒计时功能如上图所示,其实就几行代码即可实现效果啦!!! /** 倒计时60秒,一次1秒 */ CountDownTimer timer = new CountDownTimer(60*1000, 1 ...

  8. Android 环境搭建与Android SDK目录介绍

    Android SDK下载和安装 本地已有合适版本Android SDK,则无需再下载,或者可以使用SDK Manager更新SDK: 没有SDK,则需要下载. 这里说一下使用SDK Manager下 ...

  9. 9. Palindrome Number (考虑负数的情况)

    Determine whether an integer is a palindrome. Do this without extra space. long int reverse(int x) { ...

  10. P3796 【模板】AC自动机(加强版)

    P3796 [模板]AC自动机(加强版) https://www.luogu.org/problemnew/show/P3796 题目描述 有NN个由小写字母组成的模式串以及一个文本串TT.每个模式串 ...