?? 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發(fā)送下來的數據
}
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) ; //等待發(fā)送完畢
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 + -