您的当前位置:首页正文

键控数码管

来源:个人技术集锦
#include

unsigned char code table[]={0x3f,0x06,0x5b,0x4f, //0~f显示表 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; unsigned char temp; //变量声明 unsigned char key; unsigned char i,j;

void delay(unsigned char z) //延时1ms子函数 { unsigned char x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

void main(void) {

while(1) {

P3=0xff; P3_4=0; temp=P3; temp=temp & 0x0f; if (temp!=0x0f) {

delay(10); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e: key=3; break; case 0x0d: key=2; break; case 0x0b: key=1;

break; case 0x07: key=0; break; }

P0=table[key];

} }

P3=0xff; P3_5=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

delay(10); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e: key=7; break; case 0x0d: key=6; break; case 0x0b: key=5; break; case 0x07: key=4; break; }

temp=P3;

P0=table[key];

}

} P3=0xff; P3_6=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

delay(10); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e: key=11; break; case 0x0d: key=10; break; case 0x0b: key=9; break; case 0x07: key=8; break; }

temp=P3;

P0=table[key];

} }

P3=0xff; P3_7=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

delay(10); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e: key=15;

} } }

break; case 0x0d: key=14; break; case 0x0b: key=13; break; case 0x07: key=12; break; }

temp=P3; P0=table[key]; }

因篇幅问题不能全部显示,请点此查看更多更全内容