資源簡介
精確測量0~10k電阻阻值,使用一顆精確電阻校準后,測量的阻值精確到福祿克級別

代碼片段和文件信息
#include?
//?設置KEY?IO口
sbit?KEY_IN_1?=?P2^4;
sbit?KEY_IN_2?=?P2^5;
sbit?KEY_IN_3?=?P2^6;
sbit?KEY_IN_4?=?P2^7;
sbit?KEY_OUT_1?=?P2^3;
sbit?KEY_OUT_2?=?P2^2;
sbit?KEY_OUT_3?=?P2^1;
sbit?KEY_OUT_4?=?P2^0;
u8?xdata?g_KeySta[4][4]; //?按鍵兩個狀態(tài):松開0 按下1
const?u8?code?g_KeyCodeMap[4][4]?=?{
{?‘1‘??‘2‘??‘3‘?0x26?}?//數(shù)字鍵1、數(shù)字鍵2、數(shù)字鍵3、退格鍵
??{?‘4‘??‘5‘??‘6‘?0x25?}?//數(shù)字鍵4、數(shù)字鍵5、數(shù)字鍵6、重置鍵
??{?‘7‘??‘8‘??‘9‘?0x28?}?//數(shù)字鍵7、數(shù)字鍵8、數(shù)字鍵9、轉換鍵
??{?‘0‘?0x1B??0xC?0x27?}?//數(shù)字鍵0、未定義、?未定義、?回車鍵
??};
extern?u8?g_Mode_Type;
extern?u16?g_Set_Res_Val;
extern?u8?g_Enter_Flag;
//?按鍵動作實現(xiàn)
void?Key_Action(u8?keycode)
{
u8?buff[20];
u16?val?=?0;
switch?(g_Mode_Type)
{
//?一般模式
case?GENERAL_MODE:
switch?(keycode)
{
case?0x28:
//?輸入轉換鍵
LcdWriteCmd(0x01);
g_Set_Res_Val?=?0;
g_Enter_Flag?=?0;
g_Mode_Type?=?COMP_MODE;
LcdShowStr(0?0?“0“);
break;
}
break;
case??COMP_MODE:
switch?(keycode)
{
case?‘1‘:
? case?‘2‘:
case?‘3‘:
case?‘4‘:
case?‘5‘:
case?‘6‘:
case?‘7‘:
case?‘8‘:
case?‘9‘:
case?‘0‘:
???//?按下回車
???if?(g_Enter_Flag?==?0)?{
??? //?輸入1~9后的動作
val?=?g_Set_Res_Val;
val?*=?10;
val?+=?keycode?-?‘0‘; //?保存測試值
//?值超出
if?(val?>?10000L)?{
LcdShowStr(0?1?“VAL?ERROR!“);
}
else?{
g_Set_Res_Val?=?val;
sprintf(&buff[0]?“%d“?g_Set_Res_Val);
if?(g_Set_Res_Val)?LcdShowStr(0?0?&buff[0]);
else?LcdShowChar(0?0?‘0‘);
}
???}
break;
//?退格鍵
case?0x26:
//?按下退格
if?(g_Enter_Flag?==?0)?{
g_Set_Res_Val?/=?10;
sprintf(buff?“%d“?g_Set_Res_Val);
LcdWriteCmd(0x01);
if?(g_Set_Res_Val)?LcdShowStr(0?0?buff);
else?LcdShowStr(0?0?‘0‘);
}
break;
//?重置鍵
case?0x25:
LcdWriteCmd(0x01);
LcdShowStr(0?0?‘0‘);
g_Set_Res_Val?=?0;
g_Enter_Flag?=?0;
break;
//?轉換鍵
case?0x28:
LcdWriteCmd(0x01);
g_Set_Res_Val?=?0;
g_Enter_Flag?=?0;
g_Mode_Type?=?GENERAL_MODE;
break;
//?回車鍵
case?0x27:
g_Enter_Flag?=?1;
break;
}
break;
//?其他模式
default:?break;
}
}
//?按鍵執(zhí)行函數(shù)
void?Key_Handle(void)
{
u8?i?j;
static?u8?xdata?s_bkKey[4][4];
for?(i?=?0;?i?4;?i++)?{
for?(j?=?0;?j?4;?j++)?{
if?(s_bkKey[i][j]?!=?g_KeySta[i][j])?{
if?(g_KeySta[i][j]?==?KEY_DOWN)
{
//?按下執(zhí)行的操作
Key_Action(g_KeyCodeMap[i][j]);
}
s_bkKey[i][j]?=?g_KeySta[i][j];
}
}
}
}
//?按鍵掃描
void?Key_Scan(void)
{
static?u8?s_ikey_out?=?0?i?=0;
static?u8?xdata?s_KeyBuff[4][4];
//?獲取按鍵并消抖
s_KeyBuff[s_ikey_out][0]?=?((s_KeyBuff[s_ikey_out][0]?<1)?|?KEY_IN_1)?&?KEY_DELAY_MARK;
s_KeyBuff[s_ikey_out][1]?=?((s_KeyBuff[s_ikey_out][1]?<1)?|?KEY_IN_2)?&?KEY_DELAY_MARK;
s_KeyBuff[s_ikey_out][2
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????513??2017-11-09?21:27??copy\HARDWARE\inr\config.h
?????文件????????214??2017-11-09?20:57??copy\HARDWARE\inr\key.h
?????文件????????259??2017-11-09?21:34??copy\HARDWARE\inr\lcd1602.h
?????文件????????253??2017-11-09?20:52??copy\HARDWARE\inr\timer.h
?????文件????????145??2017-11-09?21:00??copy\HARDWARE\inr\tlc2543.h
?????文件???????3949??2017-11-09?21:38??copy\HARDWARE\src\key.c
?????文件???????1256??2017-11-09?22:14??copy\HARDWARE\src\lcd1602.c
?????文件????????912??2017-11-09?20:56??copy\HARDWARE\src\timer.c
?????文件????????651??2017-11-09?22:41??copy\HARDWARE\src\tlc2543.c
?????文件??????45340??2017-11-10?07:39??copy\OBJ\copy
?????文件??????13590??2017-11-10?07:39??copy\OBJ\copy.hex
?????文件????????183??2017-11-10?07:39??copy\OBJ\copy.lnp
?????文件???????2712??2017-11-10?07:46??copy\OBJ\copy.plg
?????文件??????11924??2017-11-10?07:39??copy\OBJ\key.obj
?????文件???????8070??2017-11-10?07:39??copy\OBJ\lcd1602.obj
?????文件??????13711??2017-11-10?07:39??copy\OBJ\main.obj
?????文件????????783??2017-11-10?07:39??copy\OBJ\STARTUP.obj
?????文件???????8102??2017-11-10?07:39??copy\OBJ\timer.obj
?????文件???????6721??2017-11-10?07:39??copy\OBJ\tlc2543.obj
?????文件??????39492??2017-11-10?07:39??copy\PROJECT\copy.m51
?????文件??????20428??2017-11-09?21:29??copy\PROJECT\copy.plg
????.......?????60695??2017-11-10?07:12??copy\PROJECT\copy.uvopt
????.......?????14381??2017-11-09?21:38??copy\PROJECT\copy.uvproj
????.......?????60692??2017-11-09?21:38??copy\PROJECT\copy_uvopt.bak
????.......?????????0??2017-11-09?16:24??copy\PROJECT\copy_uvproj.bak
?????文件??????11377??2017-11-10?07:39??copy\PROJECT\key.lst
?????文件???????3686??2017-11-10?07:39??copy\PROJECT\lcd1602.lst
?????文件???????8181??2017-11-10?07:39??copy\PROJECT\main.lst
?????文件???????6376??2009-05-07?14:37??copy\PROJECT\STARTUP.A51
?????文件??????14088??2017-11-10?07:39??copy\PROJECT\STARTUP.LST
............此處省略14個文件信息
評論
共有 條評論