|
/*6月28日 星期一 ;張培;本程序利用反轉(zhuǎn)掃描法實(shí)現(xiàn)0-F的顯示 */
#include <reg51.h>
#define unit unsigned int
#define uchar unsigned char
main() { unit c[16]={0x0C0,0x0F9,0x0A4,0x0B0,0x99,0x92,0x82,0x0F8, 0x80,0x90,0x88,0x83,0x0c6,0x0a1,0x86,0x8e};
unit k[17]={0x0ee,0x0de,0x0be,0x7e,0x0ed,0x0dd,0x0bd,0x7d, 0x0eb,0x0db,0x0bb,0x7b,0x0e7,0xd7,0x0b7,0x77,0x0ff};
uchar x,a,b; x=0;
while (1)
{ P1=0x0f0; //P1口送F0
a=P1; //讀P1口的值
a=a&0x0f0;//屏蔽低四位
P1=0x0f; //P1口送0F
b=P1; //讀P1口的值
b=b&0x0f; //屏蔽高四位
a=a|b; //行列組合值
if (a!=0xff)//判斷是否有鍵按下
P2=c[x];
if (a!=k[x])//判斷是第幾個(gè)鍵按下
if (a!=0x0ff)//判斷是否查完
x++; } }
|
|