⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system.c

📁 MSC1210 驱动 OLED源程序 包括ASCII码字库表
💻 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 + -