|
你試試
- #include <reg52.h>
-
- #define uchar unsigned char
- #define uint unsigned int
- uchar buf;
- //volatile unsigned char sending;
- sbit led=P1^0;
- //sbit sending = P1^1;
- //申明函數(shù)
- void delay(unsigned char i);
- void send(uchar d);
- void initUart(void);
- void main(void)
- {
- //初始化串口
- initUart();
- while(1);
- }
- //初始化串口 9600
- void initUart(void)
- {
- SCON=0x50;
- PCON=0x00;
- TMOD=0x20;
- EA=1;
- ES = 1;
- TL1=0xfd;
- TH1=0xfd;
- TR1=1;
- led = 0;
- // sending = 0;
- }
- //發(fā)送一個字節(jié)的數(shù)據(jù),形參d即為待發(fā)送數(shù)據(jù)。
- void send(uchar d)
- {
- // sending=1; //設(shè)置發(fā)送標(biāo)志
- SBUF=d; //將數(shù)據(jù)寫入到串口緩沖
- while(!TI); //等待發(fā)送中斷請求標(biāo)志位為1
- TI=0; //發(fā)送中斷請求標(biāo)志位清0
- }
- /**
- * 延時函數(shù)
- **/
- /*
- void delay(unsigned char i)
- {
- uchar j,k;
- for(j=i;j>0;j--)
- for(k=125;k>0;k--);
- }
- */
- /*********************************************************
- 串口接收
- *********************************************************/
- void serial() interrupt 4
- {
- //收到數(shù)據(jù)
- // if(RI){
- RI=0; //清中斷請求
- buf = SBUF;
- led = ~led;
- send(buf);
- // }
-
- // if(TI){
- // TI=0;
- // sending=0; //清正在發(fā)送標(biāo)志
- // }
- }
復(fù)制代碼
|
|