- 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)