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

📄 keyproc.c

📁 15寸
💻 C
字号:
#include <at89x51.h>
#include <string.h>
#include "lcd.h"
#include "keyproc.h"
#include "command.h"

unsigned char s[16];
unsigned char *submenu[]={"voice","channel","bright","contrast","red","green","blue"};
unsigned char position_num = 0;
unsigned char *first,*second;

extern bit onoffFlag;
extern bit receiveFlag;
extern bit osd,subosd;
extern unsigned char command,recommand;
extern unsigned char address;
extern unsigned char menusub;


extern void serial(void);
extern void num2string(unsigned char number);

void sendAddress_key(void)
{
//	if(onoffFlag)	
//	{
		position_num = 0;
		lcd_cls();
		lcd_string16(0,"wait...");
		
		command = address;
		SCON = 0x0e8;
		serial();

//		lcd_cls();
		if(receiveFlag)
		{
			if(recommand == command)
			{	
				onoffFlag = ~onoffFlag;
				if(onoffFlag)
				{				
					lcd_string16(0,"please insert CMD:");
					return;
				}
				else
				{				
					lcd_string16(0,"please insert ID");
					return;
				}
			}
			lcd_string16(0,"error");
			return;
		}
		lcd_string16(0,"ID is not exist!");

//		return;
//	}	
}

void power_key(void)
{
	if(onoffFlag)
	{
		lcd_cls();
		lcd_string16(0,"wait...");
		command = power;
		SCON = 0x0e0;
		serial();
		lcd_cls();
		if(receiveFlag)
		{
			if(recommand == 0x81)
			{
				lcd_string16(0,"POWER ON");
				return;
			}
			else if(recommand == 0x80)
			{
				lcd_string16(0,"POWER OFF");
				return;
			}
		}
		lcd_string16(0,"error");
	}
}

void menu_key(void)
{
	if(onoffFlag)	
	{
		lcd_cls();
		lcd_string16(0,"wait...");
		command = menu;
		SCON = 0x0e0;
		serial();
		lcd_cls();
		if(receiveFlag)
		{
			if(recommand == 0x0c1)
			{
				lcd_string16(0,"OSD ON");
				osd = 1;
				subosd = 0;
				return;
			}
			else if(recommand == 0x0c0)
			{
				lcd_string16(0,"OSD OFF");
				osd = 0;
				subosd = 0;
				menusub = 0;
				return;
			}
		}
		lcd_string16(0,"error");
	}
}

void up_key()
{
	if(onoffFlag)	
	{
		if(osd)	
		{
//			lcd_cls();
//			lcd_string16(0,"wait...");
			command = up;
			SCON = 0x0e0;
			serial();			
			if(receiveFlag)
			{
				if(subosd ==0)
				{
					menusub++;
					if(menusub > 7)menusub=0;
					num2string(recommand);
					strcat(s,submenu[menusub]);
					lcd_cls();
					lcd_string16(0,s);
					return;
				}				
				num2string(recommand);
				lcd_string16(0,s);
			}
		}
	}
}

void down_key()
{
	if(onoffFlag)	
	{
		if(osd)	
		{
			command = down;
			SCON = 0x0e0;
			serial();			
			if(receiveFlag)
			{
				if(subosd ==0)
				{
					menusub--;
					if(menusub < 0)menusub=7;
					num2string(recommand);
					strcat(s,submenu[menusub]);
					lcd_cls();
					lcd_string16(0,s);
					return;
				}				
				num2string(recommand);
				lcd_string16(0,s);
			}
		}
	}
}

void enter_key(void)
{
	if(onoffFlag)
	{
		if(osd)
		{
			command = enter;
			SCON = 0x0e0;
			serial();
			if(receiveFlag)
			{
				if(recommand == 0x0e1)subosd=1;
				else if(recommand == 0x0e0)
				{subosd = 0;}
			}
		}
	}
}

void del_key(void)
{
	if(~onoffFlag)
	{
		first = " ";				   //////???????????????????????????
		second = " ";				   //////???????????????????????????
		address = 0;
		lcd_cls();
	}
}

void number_key(unsigned char number,unsigned char *char_number)
{
	if(~onoffFlag)
	{   
		lcd_string16(13,first);
		lcd_string16(14,second);
		lcd_string16(15,char_number);		

		first = second;
		second = char_number;

		position_num++;
		if(position_num>3)
		{
			position_num=0;
			address = 0;
		}
		else
		{
			unsigned char size = 10;
//			for(i = 0; i<(position_num-1) ; i ++)
//			{
//				size = size * 10;
//			}
	//		size = size / 10;
			address=address*size+number;
		}		
	}
}

⌨️ 快捷键说明

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