|
抄來(lái)的程序先要讀懂再改,胡亂改當(dāng)然會(huì)出問題。給你把贅句屏蔽掉了,肯定能行。
- #include <reg52.h>
-
- #define uint unsigned int
- #define uchar unsigned char
-
- /*函數(shù)聲明區(qū)*/
- void SendByte(unsigned char dat);
- //void SendStr(unsigned char *s);
- void Uart_Init(void);
- /*------------------主函數(shù)----------------------*/
- void main(void)
- {
- Uart_Init(); // SendStr(" UART test");
- ES = 1; //打開串口中斷
- while (1);
- }
- void Uart_Init(void)
- {
- SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
- TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重裝
- TH1 = 0xF4; // TH1: 重裝值 2400 波特率 晶振 11.0592MHz
- TR1 = 1; // TR1: timer 1 打開
- EA = 1; //打開總中斷
- }
- /*-----------------發(fā)送一個(gè)字節(jié)-----------------*/
- void SendByte(unsigned char dat)
- {
- SBUF = dat;
- while(!TI);
- TI = 0;
- }
- /*-----------------發(fā)送一個(gè)字符串---------------*/
- /*
- void SendStr(unsigned char *s)
- {
- while(*s!='\0')// \0 表示字符串結(jié)束標(biāo)志,通過檢測(cè)是否字符串末尾
- {
- SendByte(*s);
- s++;
- }
- }*/
- /*-----------------串口中斷程序-----------------*/
- void UART_SER (void) interrupt 4 //串行中斷服務(wù)程序
- {
- unsigned char Temp; //定義臨時(shí)變量
- // if(RI == 1) //判斷是接收中斷產(chǎn)生
- // {
- RI = 0; //標(biāo)志位清零
- Temp=SBUF; //讀入緩沖區(qū)的值
- // SBUF=Temp; //把接收到的值再發(fā)回電腦端
- SendByte(Temp); //把接收到的值再發(fā)回電腦端
- // }
- // if(TI == 1)
- // {
- // TI=0; //如果是發(fā)送標(biāo)志位,清零
- // }
- }
復(fù)制代碼
|
|