- #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); //回傳數據
- }
- }
- }
復制代碼
|