keil报错:error C213: left side of asn-op not an lvalue
单片机源程序:
- #include "STC12C5A.h"
- #include "iodefine.h"
- static void DisplayProcess( void );
- static void PutToDispCache( uint val );
- static void sendsubf( uint sendword );
- static xdata uchar _dispCache[4] = { 0 };
- static xdata uchar _recFlag = 0;
- uint _receiveword = 0;
- void SBUFinit( void )
- {
- S2SMOD = 0x00; //波特率无加成
- S2CON = 0x50; //01010000 8位可变波特率,无奇偶校验位。
- ES2 = 1; //允许串口中断
- BRTR = 1; //允许独立波特率发生器运行
- BRT = 96; //波特率=SCLK/12/(256-BRT)96----9600
-
- while(1){
- if( _recFlag == 1){
- sendsubf( _receiveword );
- PutToDispCache ( _receiveword );
- Display( _dispCache, 0x22 );
- _recFlag = 0;
- }
- }
- }
- void sendsubf( uint sendword ) ///向串口发送数据
- {
- ES2 = 0;
- S2TI = 0;
- S2BUF = sendword; //需要发送的数据先送到SBUF 寄存器中
- while( S2TI==0 ); //等到数据发送完再进行下一句代码
- S2TI =0;
- ES2 = 1;
- }
- void receive_int( void ) interrupt 8 //串口中断,接收数据
- {
- if( S2RI ){
- S2RI = 0;
- _receiveword = S2BUF;
- _recFlag = 1;
- }else( S2TI = 0 );
- }
- static void PutToDispCache ( uint val )
- {
- if( val > 9999 ){ //超过显示最大值,显示最大值9999
- val = 9999;
- }
- if( val < 0 ){ //低于显示最小值,显示最小值0
- val = 0;
- }
- _dispCache[0] = val / 1000;
- val %= 1000;
- _dispCache[1] = val / 100;
- val %= 100;
- _dispCache[2] = val / 10;
- _dispCache[3] = val % 10;
- }
复制代码 |