标题:
4x4矩阵键盘单片机驱动程序
[打印本页]
作者:
daming
时间:
2014-12-30 01:52
标题:
4x4矩阵键盘单片机驱动程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit P27=P2^7; //位显示,最右边
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};
//code 的作用是把s8存到8K的ROM中
//共阳数码光显示字型数码组 1011 1111 “-”
void delay1ms(uchar n) //1ms基准延时程序
{
uchar i;
while(n--)
for(i=0;i<115;i++);
}
void display(uchar i)
{
P27=0;
P0=table[i];
}
void main()
{
uchar temp;
display(16); //初始显示“-”
while(1){
P1=0xff; //先向P1口写1,端口读状态
P1=0xf0;
temp=P1; //按键
if(temp!=0xf0){
delay1ms(15); //延时消陡
if(temp!=0xf0){ //扫描
P1=0xfe;
temp=P1;
switch(temp)
{
case 0xee:display(0);break;
case 0xde:display(1);break;
case 0xbe:display(2);break;
case 0x7e:display(3);break;
}
P1=0xfd;
temp=P1;
switch(temp)
{
case 0xed:display(4);break;
case 0xdd:display(5);break;
case 0xbd:display(6);break;
case 0x7d:display(7);break;
}
P1=0xfb;
temp=P1;
switch(temp)
{
case 0xeb:display(8);break;
case 0xdb:display(9);break;
case 0xbb:display(10);break;
case 0x7b:display(11);break;
}
P1=0xf7;
temp=P1;
switch(temp)
{
case 0xe7:display(12);break;
case 0xd7:display(13);break;
case 0xb7:display(14);break;
case 0x77:display(15);break;
}
}
}
}
}
复制代码
作者:
ywd683
时间:
2015-1-2 09:12
下来看看!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1