按键控制数码管C程序.docVIP

  • 11
  • 0
  • 约1.39千字
  • 约 3页
  • 2015-08-01 发布于河南
  • 举报
(4*4的矩阵键盘八个口接入P0口;数码管为共阳型;PNP型三级管用8550、9012都可以;四个位选依次接入P3.4~P3.7口;段选接入P2口,a在P2.7、dp在P2.0) #includereg52.h #includeintrins.h #define uint unsigned int #define uchar unsigned char #define move temp=w4;\ w4=w3;\ w3=w2;\ w2=w1;\ w1=temp; sbit kh1=P0^0; sbit kh2=P0^1; sbit kh3=P0^2; sbit kh4=P0^3; sbit kl1=P0^4; sbit kl2=P0^5; sbit kl3=P0^6; sbit kl4=P0^7; sbit w1=P3^4; sbit w2=P3^5; sbit w3=P3^6; sbit w4=P3^7; sbit temp=P3^3; uchar code table[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; void shumaguan(uint time) { uchar a[4],i; uint j; a[0]=time/1000; a[1]=time/100%10; a[2]=time/10%10; a[3]=time%10; w1=1; w2=1; w3=1; w4=0; for(i=0;i4;i++) { move switch(a[i]) { case 0: P2=table[0];break; case 1: P2=table[1];break; case 2: P2=table[2];break; case 3: P2=table[3];break; case 4: P2=table[4];break; case 5: P2=table[5];break; case 6: P2=table[6];break; case 7: P2=table[7];break; case 8: P2=table[8];break; case 9: P2=table[9];break; } for(j=500;j0;j--); } w1=1; w2=1; w3=1; w4=1; } void main() { uchar h=50,l=50,s=250,b=0; while(1) { P0=0x0f; if(kh1==0) h=0; if(kh2==0) h=1; if(kh3==0) h=2; if(kh4==0) h=3; P0=0xf0; if(kl1==0) l=0; if(kl2==0) l=1; if(kl3==0) l=2; if(kl4==0) l=3; s=4*h+l; h=l=50; if(s!=250) b=s; } shumaguan(b); } }

文档评论(0)

1亿VIP精品文档

相关文档