标题:
单片机控制数码管显示1-15
[打印本页]
作者:
15290037438
时间:
2018-6-24 12:22
标题:
单片机控制数码管显示1-15
#include<reg52.h>//52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
uchar key;
uchar code table[]={0x3f,//0
0x06,//1
0x5b,//2
0x4f,//3
0x66,//4
0x6d,//5
0x7d,//6
0x07,//7
0x7f,//8
0x6f,//9
0x77,//A
0x7c,//B
0x39,//C
0x5e,//D
0x79,//E
0x71 //F
};
/*延时程序 */
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)//i=xms即延时约xms 毫秒
for(j=110;j>0;j--);
}
/*键盘扫描程序*/
void matrixkeyscan()
{
uchar temp;
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xee:
key=0;
break;
case 0xde:
key=1;
break;
case 0xbe:
key=2;
break;
case 0x7e:
key=3;
break;
}
while(temp!=0xf0)//等待按键释放
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xfd;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xed:
key=4;
break;
case 0xdd:
key=5;
break;
case 0xbd:
key=6;
break;
case 0x7d:
key=7;
break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xfb;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xeb:
key=8;
break;
case 0xdb:
key=9;
break;
case 0xbb:
key=10;
break;
case 0x7b:
key=11;
break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xf7;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xe7:
key=12;
break;
case 0xd7:
key=13;
break;
case 0xb7:
key=14;
break;
case 0x77:
key=15;
break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
}
}
}
/*主程序*/
void main()
{
P0=0x0;
while(1)
{
matrixkeyscan();//不停调用键盘扫描程序
{
P2=0xff;//11111111
P0=table[key/10];
P2=0xbf;//10111111
delayms(10);
P2=0xff;//11111111
P0=table[key%10];
P2=0x7f;//11111110
delayms(10);
}
}
}
复制代码
数码管显示.rar
2018-6-24 12:21 上传
点击文件名下载附件
下载积分: 黑币 -5
309.74 KB, 下载次数: 2, 下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1