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

📄 main.c

📁 2407嵌入式系统程序(c语言)
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "f2407_c.h"
#include "global.h"
#include "lcdsub.h"
#include "key.h"
#include "zimo.h"


int initial(void)
{
	asm(" SETC INTM"); /*Interrupt Mask; */
	WSGR=0x0000;        /*Disable all wait-state;*/
	asm(" CLRC SXM");  
	asm(" CLRC OVM");
	asm(" CLRC CNF");  /*B0 is configured for Data*/
	*SCSR1=0x83FE;   /*CLKIN=10M CLKOUT=20M and enable spi module clock*/
	/*SCSR2=0x000E;*/
	*IFR=0xFFFF;
	*WDCR=0x0E8;    /*diable watch dog*/
	*MCRA=0x0000;
	*MCRC=0x8000;
	CON8255=0x0080;         /*8255 control word initilize*/ 	
    WORD8255=0xAA;
	Delay1S();
	WORD8255=0x55;
	Delay1S();
}

void ret_submeau2(void)  	/*return to submeau2*/
{
	LCD_CLEAR();
	LCD_SUBMEAU2('2');
	LCD_SUBMEAU2('3');
	LCD_SUBMEAU2('5'); 
	LCD_SUBMEAU2('7');
	LCD_SUBMEAU2('9');
	SUBBAR2('1');
	SUBMEAU2FLAG=0x0001;
}
void ret_submeau3(void)   	/*return to submeau3*/
{ 
	LCD_CLEAR();
	LCD_SUBMEAU3('2');
	LCD_SUBMEAU3('3');
	LCD_SUBMEAU3('5');
	SUBBAR3('1');
	SUBMEAU3FLAG=0x0001;
}
void ret_submeau4(void)     /*return to submeau4*/
{
	LCD_CLEAR();
	LCD_SUBMEAU4('2');
	LCD_SUBMEAU4('3');
	LCD_SUBMEAU4('5');
	LCD_SUBMEAU4('7');
	SUBBAR4('1');
	SUBMEAU4FLAG=0x0001;
}
void ret_mainmeau(void)
{ 
	LCD_CLEAR();
	LCD_STARTMEAU('1');
	LCD_STARTMEAU('4');
	LCD_STARTMEAU('5');
	LCD_STARTMEAU('7');
	LCD_STARTMEAU('9');
	MAINBAR('2');
}
void motor_startup(argument1,argument2)
{
	*SCITXBUF=0x01;
	WORD8255=0x0f;
	Delay1S();
	*SCITXBUF=motor_data;
	WORD8255=0xf0;
}
void motor_speedup(argument1,argument2)
{  
	if(motor_num<11)
		{motor_data++;
		motor_num++;}
	else
		{motor_data=0x04;
		motor_num=0;}
		*SCITXBUF=motor_data;
		Delay1S();
}
void electronic(argument1,argument2)
{ 
	if(num_8255<7)
		{data_8255=data_8255*2;
		num_8255++;}
	else
		{data_8255=0x01;
		num_8255=0;}
		WORD8255=data_8255;
		Delay1S();
} 
void WAIT_KEY(int i)
{ 
	i=0;
	while(!i)
	i=KEY_SCAN();
	return;
}
void PIN_SET(argument1,argument2,argument3,argument4,i)
{ 
	WAIT_KEY(i);
	Delay1S();
	if(KEY_RIGHT==1)
		{
			hand_num=hand_num+1;
			if(hand_num==9)
				hand_num=1;
				HAND_SHOW(hand_num);
		}
	if(KEY_LEFT==1)
		{
			hand_num=hand_num-1;
			if(hand_num==0)
				hand_num=8;
				HAND_SHOW(hand_num);
		}
	if(KEY_UP==1)
		{
			if(hand_num<5)
				{
					if(pin_num1==98)
					pin_num1=14;
					else
					pin_num1=pin_num1+1;
					HAND_PINNUM(pin_num1);
				}
			if(hand_num==5)
				{
					if(pin_num2==98)
					pin_num2=5;
					else
					pin_num2=pin_num2+1;
					HAND_PINNUM(pin_num2);
				}
			if(hand_num==6)
				{
					if(pin_num1==98)
					pin_num1=14;
					else
					pin_num1=pin_num1+1;
					HAND_PINNUM(pin_num1);
				}
			if(hand_num==7|hand_num==8)
				{
					if(pin_num3==499)
					pin_num3=5;
					else
					pin_num3=pin_num3+1;
					HAND_PINNUM(pin_num3);
				}
			}               /*if(KEY_UP==1)*/
	if(KEY_DOWN==1)
		{
			if(hand_num<5)
				{
					if(pin_num1==14)
					pin_num1=98;
					else
					pin_num1=pin_num1-1;
					HAND_PINNUM(pin_num1);
				}
			if(hand_num==5)
				{
					if(pin_num2==5)
					pin_num2=98;
					else
					pin_num2=pin_num2-1;
					HAND_PINNUM(pin_num2);
				}
					if(hand_num==6)
				{
					if(pin_num1==14)
					pin_num1=98;
					else
					pin_num1=pin_num1-1;
					HAND_PINNUM(pin_num1);
				}
			if(hand_num==7|hand_num==8)
				{
					if(pin_num3==5)
					pin_num3=499;
					else
					pin_num3=pin_num3-1;
					HAND_PINNUM(pin_num3);
				}
		}  				/*if(KEY_DOWN==1)*/	
}
void TIGHT_SET(argument1,argument2,argument3,argument4,argument5,i)
{ 
	int HANZI_CON[16];
	WAIT_KEY(i);
	Delay1S();
	if(KEY_LEFT==1)
		{if(caidan==1)
			{TIGHT_BILI(1,HANZI_CON,HANZI_BILI,HANZI_BILI+16,HANZI_YINZI,HANZI_YINZI+16,0xFFB9);
			DAOZHILING(2,HANZI_CON);}
		 if(caidan==2)
		 	{TIGHT_BILI(2,HANZI_CON,HANZI_BILI,HANZI_BILI+16,HANZI_YINZI,HANZI_YINZI+16,0xFFB9);
		 	TIGHT_BILI(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBB);}
		 if(caidan==3)
		 	{TIGHT_BILI(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
		 	TIGHT_BILI(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,0xFFBB);}
		 if(caidan==4)
		 	{TIGHT_BILI(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
		 	DAOZHILING(1,HANZI_CON);}
		 if(caidan==1)
		 	caidan=4;
		 else
		    caidan=caidan-1;
		 }
	if(KEY_RIGHT==1)
		{if(caidan==1)
			{TIGHT_BILI(1,HANZI_CON,HANZI_BILI,HANZI_BILI+16,HANZI_YINZI,HANZI_YINZI+16,0xFFB9);
			TIGHT_BILI(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBB);}
		 if(caidan==2)
		 	{TIGHT_BILI(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBB);
		 	TIGHT_BILI(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
		 if(caidan==3)
		 	{TIGHT_BILI(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
		 	DAOZHILING(2,HANZI_CON);}
		 if(caidan==4)
		 	{DAOZHILING(1,HANZI_CON);
		 	TIGHT_BILI(2,HANZI_CON,HANZI_BILI,HANZI_BILI+16,HANZI_YINZI,HANZI_YINZI+16,0xFFB9);}
		 if(caidan==4)
		 	caidan=1;
		 else 
		 caidan=caidan+1;
		 }
	if(KEY_UP==1)
		{
			switch(caidan)
				{
					case 1:
						if(pin_num1==4)
							pin_num1=1;
						else 
						pin_num1=pin_num1+1;
						LCD_NUM(pin_num1,0xFFB9);
						break;
					case 2:
						if(pin_num2==32)
							pin_num2=5;
						else
						pin_num2=pin_num2+1;
						LCD_NUM(pin_num2,0xFFBB);
						break;
					case 3:
						if(pin_num3==32)
							pin_num3=5;
						else 
						pin_num3=pin_num3+1;
						LCD_NUM(pin_num3,0xFFBD);
						break;
					case 4:
						if(pin_num4==1)
							pin_num4=0;
						else 
						pin_num4=1;
						LCD_NUM(pin_num4,0xFFBF);
						break;
					}
		}
		if(KEY_DOWN==1)
		{
			switch(caidan)
				{
					case 1:
						if(pin_num1==1)
							pin_num1=4;
						else
						pin_num1=pin_num1-1;
						LCD_NUM(pin_num1,0xFFB9);
						break;
					case 2:
						if(pin_num2==5)
							pin_num2=32;
						else 
						pin_num2=pin_num2-1;
						LCD_NUM(pin_num2,0xFFBB);
						break;
					case 3:
						if(pin_num3==5)
							pin_num3=32;
						else
						pin_num3=pin_num3+1;
						LCD_NUM(pin_num3,0xFFBD);
						break;
					case 4:
						if(pin_num4==0)
							pin_num4=1;
						else
						pin_num4=0;
						LCD_NUM(pin_num4,0xFFBF);
						break;
					}
		}		
}
void SPEED_SET(argument1,argument2,argument3,argument4,argument5,i)
{
	int HANZI_CON[16];
	WAIT_KEY(i);
	Delay1S();
	if(KEY_LEFT==1)
		{if(caidan==1)
			{SPEED_SEXIAN(1,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);
			SPEED_SEXIAN(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);}
		 if(caidan==2)
		 	{SUDU(1,HANZI_CON);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);}
		 if(caidan==3)
		 	{SPEED_SEXIAN(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
		 	SUDU(2,HANZI_CON);}
		 if(caidan==4)
		 	{SPEED_SEXIAN(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
		 if(caidan==1)
		 	caidan=4;
		 else 
		 caidan=caidan-1;
		 }
	if(KEY_RIGHT==1)
		{if(caidan==1)
			{SPEED_SEXIAN(1,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);
			SUDU(2,HANZI_CON);}
		 if(caidan==2)
		 	{SUDU(1,HANZI_CON);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
		 if(caidan==3)
		 	{SPEED_SEXIAN(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);}
		 if(caidan==4)
		 	{SPEED_SEXIAN(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);}
		 if(caidan==4)
		 	caidan=1;
		 else 
		 caidan=caidan+1;
		 }
	if(KEY_UP==1)
		{
			switch(caidan)
				{
					case 1:
						if(hand_num==8)
							hand_num=1;
						else
						hand_num=hand_num+1;
						HAND_SHOW(hand_num);
						break;
					case 2:
						if(pin_num2==220)
							pin_num2=20;
						else
						pin_num2=pin_num2+1;
						LCD_NUM(pin_num2,0xFFBB);
						break;
					case 3:
						if(pin_num3==48)
							pin_num3=1;
						else
						pin_num3=pin_num3+1;
						LCD_NUM(pin_num3,0xFFBD);
						break;
					case 4:
						if(pin_num4==48)
							pin_num4=1;
						else 
						pin_num4=pin_num4+1;
						LCD_NUM(pin_num4,0xFFBF);
						break;
					}
		}
		if(KEY_DOWN==1)
		{
			switch(caidan)
				{
					case 1:
						if(hand_num==1)
							hand_num=8;
						else 
						hand_num=hand_num-1;
						HAND_SHOW(hand_num);
						break;
					case 2:
						if(pin_num2==20)
							pin_num2=220;
						else
						pin_num2=pin_num2-1;
						LCD_NUM(pin_num2,0xFFBB);
						break;
					case 3:
						if(pin_num3==1)
							pin_num3=48;
						else
						pin_num3=pin_num3+1;
						LCD_NUM(pin_num3,0xFFBD);
						break;
					case 4:
						if(pin_num4==1)
							pin_num4=48;
						else
						pin_num4=pin_num4+1;
						LCD_NUM(pin_num4,0xFFBF);
						break;
					}
		}
}
void SEXIAN_SET(argument1,argument2,argument3,argument4,argument5,i)
{ 
	int HANZI_CON[16];
	WAIT_KEY(i);
	Delay1S();
	if(KEY_LEFT==1)
		{if(caidan==1)
			{SPEED_SEXIAN(1,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);
			SPEED_SEXIAN(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);}
		 if(caidan==2)
		 	{SHUJUHAO(1,HANZI_CON);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);}
		 if(caidan==3)
		 	{SPEED_SEXIAN(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
		 	SHUJUHAO(2,HANZI_CON);}
		 if(caidan==4)
		 	{SPEED_SEXIAN(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
		 if(caidan==1)
		 	caidan=4;
		 else 
		 caidan=caidan-1;
		 }
	if(KEY_RIGHT==1)
		{if(caidan==1)
			{SPEED_SEXIAN(1,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);
			SHUJUHAO(2,HANZI_CON);}
		 if(caidan==2)
		 	{SHUJUHAO(1,HANZI_CON);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
		 if(caidan==3)
		 	{SPEED_SEXIAN(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);}
		 if(caidan==4)
		 	{SPEED_SEXIAN(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);
		 	SPEED_SEXIAN(2,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);}
		 if(caidan==4)
		 	caidan=1; 
		 else
		 caidan=caidan+1;
		 }
	if(KEY_UP==1)
		{
			switch(caidan)
				{
					case 1:

⌨️ 快捷键说明

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