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

📄 earkey.c

📁 attendace system on 8051 chipset from intel.
💻 C
📖 第 1 页 / 共 2 页
字号:
/*void rxtx() interrupt 4
{
        char ch;

        if(RI)
        {
                if(!fim10mode)
                {
                        ET0 = 0;

                        ch = SBUF;

                        if(ch == '[')
                        {
                                index = 0;
                        }
                        else if(ch == ']')
                        {
                                _data[index] = 0;
                                processdata();
                        }
                        else
                        {
                                _data[index] = ch;
                                index++;
                        }

                        RI = 0;

                        inittimer0();
                }
        }
} */

/*void inittimer0()
{
	TMOD = (TMOD & 0xF0) | 0x01;
	ET0 = 1;                    
	TR0 = 1;                    
	EA = 1;                     
}

void __transmit(char *str)
{
        while(*str)
        {
                SBUF = *str;
                while(!TI);
                TI = 0;
                str++;
        }
}

void transmit(char *str)
{
        while(*str)
        {
                SBUF = *str;
                while(!TI);
                TI = 0;
                str++;
        }
}

//For FIM10 module

void transmitpacket(    char port, 
                        char command,
                        char param1,
                        char param2,
                        char data_size,
                        char error,
                        char header_checksum,
                        char *packet_data,
                        char data_checksum)
{
        char i;
        long d_cksm = 0;

        if(port == 1) //FIM10 module
        {
                fim10mode = 1;

                COM_SELECT = 0;
        }

        SBUF = 0x7E;while(!TI);TI = 0;

        //Command
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = command;while(!TI);TI = 0;

        //Parameter1
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = param1;while(!TI);TI = 0;

        //Parameter2
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = param2;while(!TI);TI = 0;

        //Data size
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = data_size;while(!TI);TI = 0;

        //Error
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;

        //Header Checksum
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = 0x00;while(!TI);TI = 0;
        SBUF = command + param1 + param2 + data_size + error;
        while(!TI);TI = 0;

        //Data 
        if(data_size > 0)
        {
                for(i = 0; packet_data[i] != '\0'; i++)
                {
                        SBUF = packet_data[i];
                        while(!TI);
                        TI = 0;

                        d_cksm += packet_data[i];
                }

                for(; i < data_size; i++)
                {
                        SBUF = 0x00;
                        while(!TI);
                        TI = 0;
                }

                //Data Checksum
                SBUF = (d_cksm & 0xFF000000) >> 24;while(!TI);TI = 0;
                SBUF = (d_cksm & 0x00FF0000) >> 16;while(!TI);TI = 0;
                SBUF = (d_cksm & 0x0000FF00) >> 8;while(!TI);TI = 0;
                SBUF = (d_cksm & 0x000000FF) >> 0;while(!TI);TI = 0;
        }

        if(port == 1)
        {
                COM_SELECT = 1;

                fim10mode = 0;
        }
}

char getserch()
{
        char ch;

        while(!RI);
        ch = SBUF;
        RI = 0;

        return ch;
}

void receivepacket(     char port,
                        char *command,
                        char *param1,
                        char *param2,
                        char *data_size,
                        char *error,
                        char *header_checksum,
                        char *packet_data,
                        char *data_checksum)
{
        char ch;
        char i = 0;

        if(port == 1)
        {
                fim10mode = 1;

                COM_SELECT = 0;
        }

        while(1)
        {
                ch = getserch();

                if(ch == 0x7E)break;
        }

        //Command
        for(i = 0; i < 4; i++)
        {
                ch = getserch();
        }
        *command = ch;
           
        //Parameter1
        for(i = 0; i < 4; i++)
        {
                ch = getserch();
        }
        *param1 = ch;

        //Parameter2
        for(i = 0; i < 4; i++)
        {
                ch = getserch();
        }
        *param2 = ch;

        //Data size
        for(i = 0; i < 4; i++)
        {
                ch = getserch();
        }
        *data_size = ch;

        //Error
        for(i = 0; i < 4; i++)
        {
                ch = getserch();
        }
        *error = ch;

        //Header checksum
        for(i = 0; i < 4; i++)
        {
                ch = getserch();
        }
        *header_checksum = ch;

        if(*data_size > 0)
        {
                *data_checksum = 0;
                for(i = 0; i < *data_size; i++)
                {
                        packet_data[i] = getserch();
                }

                for(i = 0; i < 4; i++)
                {
                        ch = getserch();
                }
                *data_checksum = ch;
        }

        if(port == 1)
        {
                COM_SELECT = 1;

                fim10mode = 0;
        }
} */

void main()
{
        //char j;
        int x = 0;
        //char i;
        int y = 3;
        char text[15];
        init89c51rd2(BAUD_RATE_9600);
        
        ENABLE_ONCHIP_XRAM();
     
        initlcd();

        delay(25000);

	clearlcd();

        lcddisplaybmp(0, 0, JBB, JBB_BMP_COLS, JBB_BMP_ROWS, INVERTED_MODE);
        delay(25000);
        delay(25000);
        delay(25000);
        delay(25000);
        delay(25000);

        clearlcd();

        lcddisplaystr(2 * 8, 2, "HELLO WORLD", NORMAL_MODE);
        delay(25000);
        delay(25000);
        delay(25000);
        delay(25000);
        delay(25000);
        lcddisplaystr(2 * 8, 2, "KEYBOARD TEST", NORMAL_MODE);

        delay(25000);
        delay(25000);
        delay(25000);
        delay(25000);
        
	while(1)
	{
             text[x] = getkey();
             text[x + 1] = '\0';
             clearlcd();
             lcddisplaystr(0 * 8, 1, "Char received", NORMAL_MODE);
             lcddisplaystr(0 * 8, 3, text, NORMAL_MODE);
             x++;
             if(x >= 15)x = 0;
        }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -