资源简介
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
相关资源
- STC8951系列单片机中方指南
- proteus仿真 AT89C51输出各种波形
- 基于AT89C51的数据采集系统设计新方法
- C51单片机汇编指令查询、学习工具集
- 基于89c51的数字钟
- 基于单片机交通灯设计
- imx6q ch452驱动矩阵键盘扫描
- 基于89C51计算机锁定加密键盘设计
- 基于51单片机的计算器(C51编写,有
- verilog 4×4矩阵键盘
- STM32+TMC5160代码电路图.rar
- STM32+1602液晶proteus仿真.zip
- AT89C51+ADC0808 PROTEUS仿真
- 单片机原理及接口技术C51编程张毅刚
- 基于AT89C51的十字路口交通灯设计pro
- 单片机原理及接口技术C51编程
- at89c51单片机外文翻译
- 单片机原理及接口技术C51编程高清P
- 基于C51的电子琴设计
- 1602液晶显示51串口接受的数据
- keilc51源代码
- 在C51中变量的空间分配几个方法
- 初学C51的一些误区
- 单片机初学者学习C51时的一些误区和
- Philips 80C51MX
- 12bit流水线ADC电路整体电路原理图-c
- 0.96OLED_C51系列_IIC应答_例程
- 0-999计数器的C51程序
- [单片机原理与应用设计C51编程+Prote
- 最经典矩阵键盘程序,非常规法。
评论
共有 条评论