資源簡介
以應用實例的方式說明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個文件信息
評論
共有 條評論