|
1黑幣
51hei截圖20200515110235.png (39.57 KB, 下載次數(shù): 38)
下載附件
2020-5-15 11:02 上傳
單片機源程序如下:
- #include <STC12C5A60S2.H>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- /********************************************
- 全局變量和初始定義
- ********************************************/
- uchar R_buf = 0;
- uchar S_buf = 0;
- uchar sflag = 0;
- /*******************************************
- 串口1 初始化 定時器1
- *******************************************/
- void Uart1Init(void) //9600bps@11.0592MHz
- {
- SCON = 0x50; //8位數(shù)據(jù),可變波特率
- AUXR &= 0xBF; //定時器1時鐘為Fosc/12,即12T
- AUXR &= 0xFE; //串口1選擇定時器1為波特率發(fā)生器
- TMOD &= 0x0F; //設(shè)定定時器1為16位自動重裝方式
- TL1 = 0xE8; //設(shè)定定時初值
- TH1 = 0xFF; //設(shè)定定時初值
- ET1 = 0; //禁止定時器1中斷
- TR1 = 1; //啟動定時器1
- ES = 1;
- EA = 1;
- }
- /***********************************
- 延時函數(shù)
- ***********************************/
- void Delay10us() //@11.0592MHz
- {
- unsigned char i;
- _nop_();
- i = 25;
- while (--i);
- }
- /******************************************
- 串口 1 的中斷服務(wù)函數(shù)
- ******************************************/
- void Uart1_Interrupt ( void ) interrupt 4 using 1
- {
- if ( RI == 1)
- {
- R_buf = SBUF;
- RI = 0;
- sflag = 1;
- // ES = 0;
- }
- }
- /*******************************************
- 主函數(shù) *
- *******************************************/
- void main ( void )
- {
- Uart1Init();
- while (1)
- {
- Delay10us();
- if ( sflag == 1)
- {
- sflag = 0;
- REN = 0;
- S_buf = R_buf;
- SBUF = S_buf;
- while( !TI );
- TI = 0;
- REN = 1;
- // ES = 1;
- }
- }
- }
復(fù)制代碼 各位大神幫忙看一下。問題出在哪兒?
|
|