资源简介

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)
{ //此处应对变量范围进行限制
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)();//执行当前操作函数


}
}

/****************************************************************************
* 名    称:DelayNS(uint32  dly)
* 功    能:长软件延时
* 入口参数:dly 延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void  DelayNS(uint32  dly)

uint32  i;
    for(; dly>0; dly--) 
    {
        for(i=0; i<100; i++);
    }
}

/****************************************************************************
* 名    称:KeyScan(void)
* 功    能:键盘扫描
* 入口参数:无
* 出口参数:无
****************************************************************************/
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


评论

共有 条评论