资源简介
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
相关资源
- 基于12864的简易示波器C51编程
- 用89C51实现的正弦波信号发生器电路图
- 简易c51单片机矩阵式键盘密码锁
- LCD1602液晶显示的计算器加减乘除
- 030 矩阵键盘 电子琴 仿真 51单片机
- 毕业设计智能灯
- 基于51单片机的8路AD电压采集与测量
- nokia 5110 矩阵键盘控制 原理图
- 基于P89C51单片机的多路数据采集系统
- 单片机的可视对讲门铃设计
- C51 汇编语言多字节加法,减法,除法
- DAC7614 12bit DAC驱动,c51
- 80c51单片机4位数码管计算器设计
- HC06蓝牙模块控制小灯开关例程
- 51定时器计算器
- TMC5160功能特性简要翻译
- TMC5160寄存器定义
- PIC16F877A和LCD1602液晶显示以及mpx4250压
- 单片机内部资源的C51编程.ppt
- STC89c51/52及STC12C5A60S2单片机原理图和
- 单片机课程设计,数字电压表,主要
- 基于AT89C51的倒计时盘
- 篮球记分牌proteus版本.zip
- C51蜂鸣器播放两只老虎和小星星代码
- 单片机 89c51 八个数码管显示0到f c程
- C51步进电机正反转及调速控制
- keil中c51编程中常用的头文件
- 1602 基于89C51单片机的DS18B20恒温控制系
- 基于C51单片机的交通灯开发
- DS18B20 STC1T系列单片机驱动程序
评论
共有 条评论