标题:
单片机独立键盘的程序及仿真
[打印本页]
作者:
f1234567
时间:
2017-11-2 10:48
标题:
单片机独立键盘的程序及仿真
独立键盘仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(18.46 KB, 下载次数: 43)
下载附件
2017-11-2 16:36 上传
单片机源程序如下:
#include <REG51.H>
sbit key1 = P3^0;
sbit key2 = P3^1;
sbit key3 = P3^2;
sbit key4 = P3^3;
unsigned char code displaytab[33]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,
0xff,0x00,0x40,0x73,0x76,0x6e,0x38,
};
unsigned char led[8];
void delay_ms(unsigned int cnt) //延时
{
unsigned int t,i;
for(i=0;i<cnt;i++)
{
t=115;
while(--t);
}
}
void display()
{ unsigned char nbit;
for(nbit=0;nbit<8;nbit++)
{P2=(P2&0xe3)+nbit*4;
P0=displaytab[led[nbit]];
delay_ms(1);
P0=0;
}
}
unsigned char keyscan()
{
unsigned char key;
if(key1==0) key=1;
else if(key2==0) key=2;
else if(key3==0) key=3;
else if(key4==0) key=4;
else key=0;
return key;
}
void main()
{unsigned char cnt=100;
led[7]=0x1b;
led[6]=0x1b;
led[5]=0x1b;
led[4]=0x1b;
led[3]=0x1b;
while(1)
{ led[2]=cnt/100;
led[1]=cnt%100/10;
led[0]=cnt%10;
display();
if(keyscan()==1)
{
cnt++;
while(keyscan()==1)display();
}
else if(keyscan()==2)
{
cnt--;
while(keyscan()==2)display();
}
else if(keyscan()==3)
{
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
独立键盘.rar
(73.69 KB, 下载次数: 19)
2017-11-2 10:48 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1