資源簡介
89C51單片機控制三相步進電機,輸入為4*4矩陣鍵盤,輸出顯示為1602液晶,菜單為四級菜單

代碼片段和文件信息
#include?“reg52.h“
#include?“1602LCD.h“
#include?“Menu.h“
#define?uint8?unsigned?char
#define?uint32?unsigned?long?int
sbit? P2_7?=P2^7;
sbit?? P3_0=P3^0;
sbit?? P3_1=P3^1;
unsigned?char?TempBuffer[10];
void??DelayNS(uint32??dly);
uint8?KeyScan(void);
void?IntToStr(unsigned?int?t?unsigned?char?*str?unsigned?char?n);
void?(*current_operation_index)();
uint8?func_index;
uint8?V=125;
uint8?RT=125;
uint8?ST=125;??
uint32?TempV=0;
uint32 temp=0;
uint8?i=0;
void?Timer0Int();
typedef?struct
???{
uint8?current;
uint8?up;
uint8?down;
uint8?enter;
uint8?back;
void?(*current_operation)();
}?key_table;
?key_table?code?table[28]=
?{
? {01120(*fun0)}
{10081(*fun1)}
{273101(*fun2)}
{324111(*fun3)}
{435111(*fun4)}
{546121(*fun5)}
{657121(*fun6)}?
{76201(*fun7)}
{81981(*fun8)}
{98801(*fun9)}
{10101022(*fun10)}
???????????????????????
{11111133(*fun11)}
{12121244(*fun12)}
};
void?main()
{
uint8?key;
LCD_Initial();
//Timer0Int();
P2_7=1;
while(1)
{
?
switch(KeyScan())
???? {
????? case?0x11:
{
key=0;?
func_index=table[func_index].back;
}break;
???? case?0x21:
{
key=1;?
func_index=table[func_index].up;
switch(func_index)
{ //此處應(yīng)對變量范圍進行限制
case??10:V++;break;
case??11:RT++;break;
case??12:ST++;break;
}
}break;
?? case?0x41:key=2;?break;
?? case?0x81:key=3;?break;
?? case?0x12:key=4;?break;
?? case?0x22:
{
key=5;?
func_index=table[func_index].enter;
}break;
?? case?0x42:key=6;?break;
?? case?0x82:key=7;?break;
?? case?0x14:key=8;?break;
?? case?0x24:
{
key=9;?
func_index=table[func_index].down;
switch(func_index)
{
case??10:V--;break;
case??11:RT--;break;
case??12:ST--;break;
}
}break;
?? case?0x44:key=10;break;
?? case?0x84:key=11;break;
?? case?0x18:key=12;break;
?? case?0x28:key=13;break;
?? case?0x48:key=14;break;
?? case?0x88:key=15;break;
?? default:?break;
???? }
current_operation_index=table[func_index].current_operation;
(*current_operation_index)();//執(zhí)行當前操作函數(shù)
}
}
/****************************************************************************
*?名????稱:DelayNS(uint32??dly)
*?功????能:長軟件延時
*?入口參數(shù):dly 延時參數(shù),值越大,延時越久
*?出口參數(shù):無
****************************************************************************/
void??DelayNS(uint32??dly)
{?
uint32??i;
????for(;?dly>0;?dly--)?
????{
????????for(i=0;?i<100;?i++);
????}
}
/****************************************************************************
*?名????稱:KeyScan(void)
*?功????能:鍵盤掃描
*?入口參數(shù):無
*?出口參數(shù):無
****************************************************************************/
uint8?KeyScan(void)
{
?? uint8??readkey;
?? uint8??x_tempy_temp;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3816??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\1602lCD.h
?????文件????????423??2005-01-01?02:13??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\DelayNS.h
?????文件???????1400??2005-01-01?00:15??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\KeyScan.h
?????文件??????19825??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng
?????文件???????5870??2005-01-01?17:09??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.c
?????文件???????7234??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.hex
?????文件?????????80??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.lnp
?????文件??????13133??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.LST
?????文件??????27143??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.M51
?????文件??????23584??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.OBJ
?????文件???????2283??2010-04-06?14:18??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.Opt
?????文件????????836??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.plg
?????文件???????2298??2005-01-01?01:58??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\liuliangbeng.Uv2
?????文件???????1717??2005-01-01?00:15??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\Menu.h
?????文件???????5115??2002-04-16?15:32??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\STARTUP.A51
?????文件??????11665??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\STARTUP.LST
?????文件????????749??2010-04-06?14:17??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng\STARTUP.OBJ
?????文件?????159268??2005-01-01?17:11??C51+1602液晶+矩陣鍵盤+三相步進電機\流量泵.DSN
?????目錄??????????0??2011-01-01?12:57??C51+1602液晶+矩陣鍵盤+三相步進電機\liuliangbeng
?????目錄??????????0??2011-01-01?12:57??C51+1602液晶+矩陣鍵盤+三相步進電機
-----------?---------??----------?-----??----
???????????????286439????????????????????20
評論
共有 條評論