?? keystate.c
字號:
#include <stdio.h>
#include <absacc.h>
#include <reg51.h>
/* define variable type */
#define uchar unsigned char
void INITIAL(void); /*液晶顯示初始化*/
void CLEAR(void); /*液晶顯示清屏*/
void locate(uchar page, column); /*指定首字符顯示位置*/
void KEY(void); /*按鍵識別*/
void show(void); /*從當前位置開始顯示顯示緩沖區BUFFER中的內容*/
char data BUFFER[15]; /*顯示緩沖區*/
uchar data NDIG; /*待顯示的字符數*/
uchar data KEYSTATE; /*鍵值*/
/*存放每個鍵被按下的次數*/
int xdata k1=0,k2=0,k3=0,k4=0,k5=0,k6=0,k7=0,k8=0;
int xdata k9=0,k0=0,kx=0,kj=0,km1=0,km2=0,km3=0,km4=0;
int xdata sumup=0; /*測試用的變量*/
/* main()主函數, 初始化變量和液晶的初始顯示內容。*/
void main(void)
{
uchar i;
INITIAL(); /*顯示初始化*/
CLEAR(); /*清屏*/
/*從page 3,column 4開始顯示"sumup=rdy"*/
/*固定長度的字符串顯示*/
locate(3,4);
NDIG=sprintf(BUFFER,"sumup=rdy");
show(); /*顯示子函數*/
sumup=12345;
/*從page 2,column 4開始顯示"sumup=12345",為含數值的長度不確定的字符串顯示*/
locate(2,4);
NDIG=sprintf(BUFFER,"sumup=%d",sumup);
show(); /*顯示子函數*/
/*按鍵查詢方式顯示初始內容*/
for (;;)
{
KEY(); /*按鍵識別*/
while (KEYSTATE) /*有鍵被按下時,根據鍵值處理*/
{
switch (KEYSTATE)
{
case 0xb7: k0+=1; break; /*0*/
case 0x7e: k1+=1; break; /*1*/
case 0xbe: k2+=1; break; /*2*/
case 0xde: k3+=1; break; /*3*/
case 0x7d: k4+=1; break; /*4*/
case 0xbd: k5+=1; break; /*5*/
case 0xdd: k6+=1; break; /*6*/
case 0x7b: k7+=1; break; /*7*/
case 0xbb: k8+=1; break; /*8*/
case 0xdb: k9+=1; break; /*9*/
case 0xee: km1+=1; break; /*m1*/
case 0xed: km2+=1; break; /*m2*/
case 0xeb: km3+=1; break; /*m3*/
case 0xe7: km4+=1; break; /*m4*/
case 0x77: kx+=1; break; /***/
case 0xd7: kj+=1; break; /*#*/
}
KEYSTATE=0;
}
locate(0,2); /*從page 0,column 2開始顯示"k1:<被按下的次數>"*/
NDIG=sprintf(BUFFER,"k1:%d ",k1);
show();
locate(0,32); /*從page 0,column 32開始顯示"k2:<被按下的次數>"*/
NDIG=sprintf(BUFFER,"k2:%d ",k2);
show();
locate(0,62); /*從page 0,column 62開始顯示"k3:<被按下的次數>"*/
NDIG=sprintf(BUFFER,"k3:%d ",k3);
show();
locate(0,92); /*從page 0,column 92開始顯示"k4:<被按下的次數>"*/
NDIG=sprintf(BUFFER,"k4:%d ",k4);
show();
locate(1,2); /*從page 1,column 2開始顯示"k5:<被按下的次數>"*/
NDIG=sprintf(BUFFER,"k5:%d ",k5);
show();
locate(1,32); /*從page 1,column 32開始顯示"k6:<被按下的次數>"*/
NDIG=sprintf(BUFFER,"k6:%d ",k6);
show();
locate(1,62); /*從page 1,column 62開始顯示"k7:<被按下的次數>"*/
NDIG=sprintf(BUFFER,"k7:%d ",k7);
show();
locate(1,92); /*從page 1,column 92開始顯示"k8:<被按下的次數>"*/
NDIG=sprintf(BUFFER,"k8:%d ",k8);
show();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -