?? text1.c
字號:
/*本程序為鍵盤掃描程序,各鍵值初定為0x00-0x09對應各個數字鍵,0x0A-確認,0x0B清除,0x0C編號
,0x0D加液,0x0E菜單,0x0F-走紙,0x10-打印,0x11-關機,0x12-左方向鍵,0x13右方向鍵,0x14上方
向鍵,0x15下方向鍵*/
#include <C8051F020.H>
#define uchar unsigned char
#define uint unsigned int
void whatkey(void);
/*
void key_on(uchar ikey);
*/ /*函數聲明*/
void main() /*主函數*/
{
while(1)
whatkey();
}
/*
void key_on(uchar ikey)
{
switch(ikey)
{
case 0x00: 按鍵0操作;
break;
case 0x01: .........
....................
}
}
*/ /*具體執行函數*/
void whatkey(void) /*掃描函數,判斷哪個按鍵按下*/
{
uchar key; /*定義形參,代表具體按鍵*/
uchar i,j; /*定義倆參數*/
P4=0x01;
P5^0=0;
P5^1=0;
P5^2=0; /*第一排鍵判斷賦值*/
if(P4==0x21&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x21&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x07; /*7鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x41&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x41&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x08; /*8鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x81&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x81&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x09; /*9鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x01&&P5^0==1&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x01&&P5^0==1&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x0C; /*編號鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x01&&P5^0==0&&P5^1==1&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x01&&P5^0==0&&P5^1==1&&P5^2==0) /*再次判斷*/
key=0x0D; /*加液鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x01&&P5^0==0&&P5^1==0&&P5^2==1) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x01&&P5^0==0&&P5^1==0&&P5^2==1) /*再次判斷*/
key=0x0E; /*菜單鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
P4=0x02;
P5^0=0;
P5^1=0;
P5^2=0; /*第二排鍵判斷賦值*/
if(P4==0x22&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x22&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x04; /*4鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x42&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x42&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x05; /*5鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x82&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x82&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x06; /*6鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x02&&P5^0==1&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x02&&P5^0==1&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x0F; /*走紙鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x02&&P5^0==0&&P5^1==1&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x02&&P5^0==0&&P5^1==1&&P5^2==0) /*再次判斷*/
key=0x10; /*打印鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x02&&P5^0==0&&P5^1==0&&P5^2==1) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x02&&P5^0==0&&P5^1==0&&P5^2==1) /*再次判斷*/
key=0x11; /*關機鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
P4=0x04;
P5^0=0;
P5^1=0;
P5^2=0; /*第三排鍵判斷賦值*/
if(P4==0x24&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x24&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x01; /*1鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x44&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x44&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x02; /*2鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x84&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x84&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x03; /*3鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
/*
else if(P4==0x04&&P5^0==1&&P5^1==0&&P5^2==0)
{
for(i=0;i<50;i++)
for(j=0;j<20;j++);
if(P4==0x04&&P5^0==1&&P5^1==0&&P5^2==0)
key=0x..;
}
*/ /*預留鍵*/
else if(P4==0x04&&P5^0==0&&P5^1==1&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x04&&P5^0==0&&P5^1==1&&P5^2==0) /*再次判斷*/
key=0x14; /*上方向鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
/*
else if(P4==0x04&&P5^0==0&&P5^1==0&&P5^2==1)
{
for(i=0;i<50;i++)
for(j=0;j<20;j++);
if(P4==0x04&&P5^0==0&&P5^1==0&&P5^2==1)
key=0x..;
}
*/ /*預留鍵*/
P4=0x08;
P5^0=0;
P5^1=0;
P5^2=0; /*第四排鍵判斷賦值*/
if(P4==0x28&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x28&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x0B; /*清除鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x48&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x48&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x00; /*0鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x88&&P5^0==0&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x88&&P5^0==0&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x0A; /*確認鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x08&&P5^0==1&&P5^1==0&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x08&&P5^0==1&&P5^1==0&&P5^2==0) /*再次判斷*/
key=0x12; /*左方向鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x08&&P5^0==0&&P5^1==1&&P5^2==0) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x08&&P5^0==0&&P5^1==1&&P5^2==0) /*再次判斷*/
key=0x15; /*下方向鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
else if(P4==0x08&&P5^0==0&&P5^1==0&&P5^2==1) /*判斷按鍵是否按下*/
{
for(i=0;i<50;i++) /*消抖動*/
for(j=0;j<20;j++);
if(P4==0x08&&P5^0==0&&P5^1==0&&P5^2==1) /*再次判斷*/
key=0x13; /*右方向鍵*/
/*
key_on(key);
*/ /*執行程序*/
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -