📄 system.c
字号:
#include"REG1210.h"
#include"STRING.H"
#include"STDLIB.H"
#include"MATH.H"
#include"OLED.H"
#include"UART.H"
#include"SystemDeclare.h"
#include"CONVERT.H"
sbit OLED_NRST = P2^5;
//////////////////////////////////////////////////////////////////////////
void UsartInterrupt(void) interrupt 4 using 2
{ EA=0;
if(TI_0==1)
{
TI_0=0;
UsartSend();
}
if(RI_0==1)
{
RI_0=0;
UsartReceive();
}
EA=1;
}
//////////////////////////////////////////////////////////////////////////
void T2Interrupt(void) interrupt 5 using 1
{
T2Service();
}
main()
{
unsigned char i;
SystemInitialization();
OLEDPutchar(0,0,UsartSendBuff,32);
Delay500uS(10000);
while(1)
{
//USART finish sending package process
if (Usart.FinishSending==1)
{
Usart.FinishSending=0;
Usart.SendLength=0;
Usart.SentLength=0;
}
//USART finish sending package process
//USART received package process
if (Usart.FinishReceiving==1)
{
Usart.FinishReceiving=0;
Usart.ReceiveTimeOut=0xFF;
Usart.ReceivedLength=0;
//串口接收到的数据和命令处理函数//
if ( strncmp( &UsartReceiveBuff[0], "DISDATA ", 8 ) ==0 )
{
OLEDPutchar( 0, 0, &UsartReceiveBuff[8], UARTBuffLength-5 ); //在OLED上显示PC发送下来的数据
}
else if ( strncmp( &UsartReceiveBuff[0], "SETFORE ", 8 ) ==0 ) //设置前景色
{
ColourSetting.Foreground = StringToHex( &UsartReceiveBuff[8], 2 );
}
else if ( strncmp( &UsartReceiveBuff[0], "SETBACK ", 8 ) ==0 ) //设置背景色
{
ColourSetting.Background = StringToHex( &UsartReceiveBuff[8], 2 );
}
else if ( strncmp( &UsartReceiveBuff[0], "SETCONT ", 8 ) ==0 ) //设置对比度
{
OLEDWriteCommand(0x81);
OLEDWriteCommand( StringToHex( &UsartReceiveBuff[8], 2 ) );
}
else if ( strncmp( &UsartReceiveBuff[0], "DISON", 5 ) ==0 ) //开显示
{
OLEDWriteCommand(0xAF);
}
else if ( strncmp( &UsartReceiveBuff[0], "DISOFF", 6 ) ==0 ) //关显示
{
OLEDWriteCommand(0xAE);
}
else
{
}
//串口接收到的数据和命令处理函数//
/////////////////返回调试信息给PC
for(i=0;i<UARTBuffLength;i++)
{
UsartSendBuff[i]=UsartReceiveBuff[i];
}
Usart.SendLength=UARTBuffLength;
Usart.SentLength=0;
TI_0=1;
while(Usart.FinishSending==0) ; //等待发送完毕
Usart.FinishSending=0;
Usart.SendLength=0;
Usart.SentLength=0;
/////////////////返回调试信息给PC
/////////////////清UART接受缓冲
for(i=0;i<UARTBuffLength;i++)
{
UsartReceiveBuff[i]=0;
}
/////////////////清UART接受缓冲
}
//USART received package process
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -