?? 鍵盤程序2.txt
字號:
#include <reg51.h>
#include <intrins.h>
#define unint unsigned int
#define unchar unsigned char
#define dsout P3//數碼管字形
#define dsrun P1//數碼管選通
#define keybord P2//鍵盤
sbit row1=P2^4;//鍵盤行
sbit row2=P2^5;
sbit row3=P2^6;
sbit row4=P2^7;
/*************P3.4~3.0分別為列1,2,3,4**********************/
unchar code dscode[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
/*******************消抖*********************/
void del(void)
{
unint i;
for (i=1;i<=10000 ;i++ );
}
/******************判斷是否按鍵****************/
bit keyscan(void)
{
keybord=240;//高4位為1,低4位為0
if (keybord!=240)
return 0;//有鍵按下為1
else
return 1;//無鍵按下為0
}
/*****************獲取鍵值*************************/
unchar getkey(void)
{
unchar keynum,perp;
keybord=247;//P3.3為0
for (perp=0;perp<=3;perp++ )
{
if (row1==0)
{keynum=perp+0;break;}//1行值為0
if (row2==0)
{keynum=perp+4;break;}//2 行值為4
if (row3==0)
{keynum=perp+8;break;}//3為8
if (row4==0)
{keynum=perp+12;break;}
else
keybord=_cror_(keybord,1);//轉下列掃描
}
return keynum;
}
main()
{
unchar getcode;
dsout=0;
dsrun=0;//選通
while (1)
{
while (keyscan());
del();
getcode=getkey();
while (~keyscan());
del();
dsout=dscode[getcode];
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -