资源简介
以应用实例的方式说明dmx512接收和发送的指令流程,包含应用方案的原理图文件很说明书。
代码片段和文件信息
/************************************************************************
*keycnc_1.c
*作者:吴芳福
*2009.03.16
*按键程序文件
/************************************************************************/
#include “Head File/extern_symbol.h“
/***********************************************************************
*keydll_2
***********************************************************************/ /*
//按键处理
void keydll_2(void)
{
INT8U key_2 = 0; //记录按键值
static bit F_KeyPressing_2 = 0;//记录按键状态:0为没有按键按下,1为有按键按下
static INT8U longkeycount_2 = 0;//记录长按处理的次数
////////////////////////////////////////////////////
if((!KEYIN0_MAIN) || (!KEYIN1_MAIN) || (!KEYIN2_MAIN)) //按键值读取
{
if(!KEYIN0_MAIN)
{key_2 = 0x01;}// 0x03;}//
if(!KEYIN1_MAIN)
{key_2 = 0x02;}
if(!KEYIN2_MAIN)
{key_2 = 0x03;}//0x01;}//
}
if(Key_long_flag) //允许长按事件发生
{
if((key_2 == 2)||(key_2 == 3)) //需要长按处理的键添加到这里 //需要长按处理的键添加到这里
{
longkeycount_2++;
if(longkeycount_2 >= 60) //有效长按时间
{
longkeycount_Space_flag = 1;
}
if(longkeycount_Space_flag)
{
longkeycount_Space++;
if(longkeycount_Space >= 7)//要长按处理的间隔
{key_count_flg = 1;longkeycount_Space = 0;}
}
}
}
///////////////////////////////////////////////////
if(key_2 != 0 && F_KeyPressing_2 == 0 || key_count_flg)//longkeycount_2 != 0)
{
key_count_flg = 0;
////////////////////////////////////////////////////
if((!KEYIN0_MAIN) || (!KEYIN1_MAIN) || (!KEYIN2_MAIN)) //按键值读取
{
if(!KEYIN0_MAIN)
{key_2 = 0x01;}//0x03;}//
if(!KEYIN1_MAIN)
{key_2 = 0x02;}
if(!KEYIN2_MAIN)
{key_2 = 0x03;}//0x01;}//
}
////////////////////////////////////////////////////
if(key_2 == 0) //抖动
{
longkeycount_2 = 0;
return; //抖动不处理,返回
}
if(F_KeyPressing_2 == 0) //如果之前没有按键按下
{
F_KeyPressing_2 = 1; //设置按键已经按下标志
}
switch(key_2)
{
case 0x00 : {} break;
case 0x01 : {
Key3_1_flag = ~Key3_1_flag;
} break;
case 0x02 : {
Key3_2_flag = 1;
} break;
case 0x03 : {
Key3_3_flag = 1;
} break;
default : break;
}
}
else
{
if((!KEYIN0_MAIN) || (!KEYIN1_MAIN) || (!KEYIN2_MAIN))
{
if(!KEYIN0_MAIN)
{key_2 = 0x01;}//0x03;}//
if(!KEYIN1_MAIN)
{key_2 = 0x02;}
if(!KEYIN2_MAIN)
{key_2 = 0x03;}//0x01;}//
}
if(key_2 == 0) //如果当前没有按键按下
{
if(F_KeyPressing_2) //如果之前有按键按下
{
longkeycount_Space_flag = 0;
longkeycount_2 = 0; //恢复长按计数为0,即表示没有长按发生
F_KeyPressing_2 = 0; //恢复按键状态标志为0,即没有按键按下
}
}
}
}
/***********************************************************************
*KeyTransfer //3键模式按键扫描
***********************************************************************//*
void KeyTransfer(void)
{
if(!keycnc_flg)
{
if((!KEYIN0_MAIN) || (!KEYIN1_MAIN) || (!KEYIN2_MAIN))
{
keycnc_flg = 1;
Clk20ms = 0;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2467 2009-03-31 00:28 dmx512led-加协议0405_40\5404_Uv2.Bak
文件 2613 2009-03-31 19:52 dmx512led-加协议0405_40\dmx512led.Uv2
文件 2745 2009-03-31 19:52 dmx512led-加协议0405_40\dmx512led.Opt
文件 1097728 2009-03-12 18:43 dmx512led-加协议0405_40\HW-LED011A.doc
文件 6376 2005-03-22 15:22 dmx512led-加协议0405_40\STARTUP.A51
文件 29736 2009-03-12 22:38 dmx512led-加协议0405_40\主板原理图.sch
文件 17207 2009-04-05 15:04 dmx512led-加协议0405_40\5404.plg
文件 749 2009-04-05 15:04 dmx512led-加协议0405_40\STARTUP.OBJ
文件 14049 2009-04-05 15:04 dmx512led-加协议0405_40\STARTUP.LST
文件 3072 2009-04-05 15:04 dmx512led-加协议0405_40\5404.Opt
文件 88740 2009-04-05 15:04 dmx512led-加协议0405_40\MAIN_MODE.lst
文件 8340 2009-04-05 15:04 dmx512led-加协议0405_40\INTERRUPT_MODE.lst
....... 3020 2009-04-05 14:26 dmx512led-加协议0405_40\5404_Opt.Bak
文件 64403 2009-04-05 15:04 dmx512led-加协议0405_40\5404
文件 4859 2009-04-02 00:13 dmx512led-加协议0405_40\新建 文本文档.txt
文件 3516 2009-04-02 00:13 dmx512led-加协议0405_40\新建 文本文档.txt.bak
文件 2497 2009-03-31 19:57 dmx512led-加协议0405_40\5404.Uv2
文件 108 2009-04-05 15:04 dmx512led-加协议0405_40\5404.lnp
文件 47410 2009-04-05 15:04 dmx512led-加协议0405_40\5404.M51
文件 9310 2009-04-05 15:04 dmx512led-加协议0405_40\5404.hex
文件 41421 2009-04-05 15:04 dmx512led-加协议0405_40\MAIN_MODE.obj
文件 0 2009-04-04 22:59 dmx512led-加协议0405_40\新建 文本文档 (2).txt.bak
文件 6729 2009-04-03 23:05 dmx512led-加协议0405_40\目标文件备份\5404.hex
文件 3365 2009-03-18 08:43 dmx512led-加协议0405_40\Source File\deycnc_1.c
文件 3647 2009-04-05 03:52 dmx512led-加协议0405_40\Source File\INTERRUPT_MODE.c
文件 35357 2009-04-05 14:59 dmx512led-加协议0405_40\Source File\MAIN_MODE.c
文件 5308 2009-04-05 14:26 dmx512led-加协议0405_40\Source File\StirTheCodeRead.c
文件 2808 2009-03-17 15:49 dmx512led-加协议0405_40\Source File\Unti
文件 7439 2009-03-04 10:47 dmx512led-加协议0405_40\Source File\Unti
文件 16133 2007-03-24 15:51 dmx512led-加协议0405_40\Other File\c8051F340.h
............此处省略16个文件信息
评论
共有 条评论