标题:
单片机矩阵键盘通过点阵显示(proteus仿真+源码)
[打印本页]
作者:
完犊子丶
时间:
2018-10-19 16:13
标题:
单片机矩阵键盘通过点阵显示(proteus仿真+源码)
按下矩阵键盘中数字键,让点阵显示相应数字,按下字符F键,则把点阵清屏,再按数字键,点阵又显示相应数字。
单片机仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(13.98 KB, 下载次数: 48)
下载附件
2018-10-19 19:47 上传
0.png
(55.02 KB, 下载次数: 44)
下载附件
2018-10-19 19:47 上传
单片机源程序:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code KEY_TABLE[]={ 0xee,0xde,0xbe,0x7e,
0xed,0xdd,0xbd,0x7d,
0xeb,0xdb,0xbb,0x7b,
0xe7,0xd7,0xb7,0x77};//键盘表
uchar code M[16][8]=
{
{0x0,0x3C,0x24,0x24,0x24,0x24,0x24,0x3C,},
{0x0,0x8,0x8,0x8,0x8,0x8,0x8,0x8,},
{0x0,0x3C,0x4,0x4,0x3C,0x20,0x20,0x3C,},
{0x0,0x3C,0x4,0x4,0x3C,0x4,0x4,0x3C,},
{0x0,0x24,0x24,0x34,0x3C,0x4,0x4,0x4,},
{0x0,0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,},
{0x0,0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,},
{0x0,0x3C,0x4,0x4,0x4,0x4,0x4,0x4,},
{0x0,0x3C,0x24,0x24,0x3C,0x24,0x24,0x3C,},
{0x0,0x3C,0x24,0x24,0x3C,0x4,0x4,0x3C,},
{0x0,0x3C,0x4,0x4,0x3C,0x24,0x24,0x3C,},
{0x0,0x20,0x20,0x20,0x3C,0x24,0x24,0x3C,},
{0x0,0x0,0x0,0x3C,0x20,0x20,0x20,0x3C,},
{0x0,0x4,0x4,0x4,0x3C,0x24,0x24,0x3C,},
{0x0,0x3C,0x24,0x24,0x3C,0x20,0x20,0x3C,},
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}
};
//延时函数
void delayms(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
unsigned char cnta,num;
main()
{
uchar temp,key,i;
while(1)
{
P3=0xf0;//置行为0,列为1,读列值。
if(P3!=0xf0)//判断有,无键盘按下
{
delayms(150);//消振
if(P3!=0xf0)//如果if的值为真,这时可以确定有键盘按下
{
temp=P3;//存储列读入的值
P3=0x0f;//置列为0,行为1,读行值。
key=temp|P3;//将行,列值综合,赋给key。
for(i=0;i<16;i++)
if(key==KEY_TABLE[i])//读键盘表,确定读入的按键值
{num=i;break;}
{
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
TR0=1;
ET0=1;
EA=1;
while(i!=num);
}
}
}
}
}
void t0(void) interrupt 1 using 0
{
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
P1=tab[cnta];
P0=M[num][cnta];
cnta++;
if(cnta==8)
{
cnta=0;
}
//delayms(1000);
}
复制代码
全部资料51hei下载地址:
矩阵键盘显示.zip
(64.05 KB, 下载次数: 52)
2018-10-19 16:13 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1