我是想按一下開發板上的s4的時候d2燈亮。松開的時候數碼管自動加一。。。但是這個程序有問題,請各位大俠幫我看一下了.
#include<reg52.h> #define uint unsigned int #define uchar unsigned char uchar code Temp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共陰顯示字庫 sbit WEI=P2^7; sbit DUAN=P2^6; sbit key1=P3^6; sbit d1=P1^4; sbit d2=P0^3; uint num=0; void delay(uint z) //延遲 { uint x,y; for(x=z;x--;x>0) for(y=110;y--;y>0); } void main() { P3=0xff;//先讓鍵盤為高電平 /*WEI=1; P0=0xff;//位選 關數碼管 WEI=0;*/ while(1) { if(key1==0) d1=0; //led使能 WEI=1; P0=0xff;//位選 關數碼管 WEI=0; { delay(20);//前面去抖動 if(key1==0) { d2=0; num++;
if(num>=10) num=0; } //while(!key1); delay(20);//后去抖動 while(!key1);//鍵盤松開 } DUAN=1; P0=Temp[num];//段選 DUAN=0; WEI=1; P0=0x00;//位選 WEI=0; } } |