- #include<reg52.h>
- unsigned char tmp;
- void send_char(unsigned char tmp)
- {
- SBUF=tmp; //将tmp送到缓冲区
- while(!TI); //等待数据传送 ,当数据传(8位)送完时,TI=1
- TI=0; //软件清0
- }
- void main()
- {
- TMOD=0x20; //选用定时器T1工作模式2 ,0010 0000 ,用于产生波特率
- TH1=TL1=0xfd; //波特率为9600
- SCON=0x50; //设定串行口工作方式2(10位异步收发1+8+1), 0101 0000, 允许接受数据
- //相当于下面三句
- //SM0=0;
- //SM1=1;
- //REN=1;
- PCON=0x00; // 波特率不倍增,可不写,默认为0x00
- TR1=1; //启动T1
- while(1){
- if(RI==1){ //是否有数据到来
- RI=0; //软件清0
- tmp=SBUF; //暂存接受到的数据
- P0=tmp; //数据传到P0口
- send_char(tmp); //回传数据
- }
- }
- }
复制代码
|