logo资料库

按键计数器的程序.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
按键计数器设计 #include #define uchar unsigned char #define uint unsigned int //共阴极数码管 //uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //控制位选 11111110 11111101 11110111 11101111 uchar code LED_W[8] = {0xfe,0xfd,0xf7,0xef}; uchar code table[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极数码管 //蜂鸣器器控制脚 uint key_temp = 0; sbit key1=P3^7; sbit key2=P3^6; sbit key3=P3^3; sbit speak =P2^5; void delay(uint i) { uchar x,j; for(j=0;j
EA = 1; //开总中断 } void Outside_Int(void) interrupt 2 { EX1 = 0; delay(3); key_temp=0; yin2(); EX1 = 1; } void main(void) { Outside_Init(); while(1) { key1=1; if(key1==0) { delay(2); if(key1==0) { key_temp++; if(key_temp==9999) key_temp=0; yin1(); //延时 30ms,去掉这行会出现按一下中断几次的情况 } while(!key1); } P0 = table[ key_temp /1000]; P1 = LED_W[0]; delay(2); //数码管段值 //点亮第四位数码管 P0 = table[ key_temp %1000/100]; P1 = LED_W[1]; delay(2); //数码管段值 //点亮第三位数码管 P0 = table[ key_temp %100/10]; P1 = LED_W[2]; delay(2); //数码管段值 //点亮第二位数码管 P0 = table[ key_temp %10]; P1 = LED_W[3]; //数码管段值 //点亮第一位数码管
delay(2); } }
分享到:
收藏