栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

单片机之利用键盘反转法控制8x8矩阵

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

单片机之利用键盘反转法控制8x8矩阵

单片机之利用键盘反转法控制8x8矩阵

显示0~F

 

#include 

#define uchar unsigned char
#define uint  unsigned int
	
uchar num=0;
uchar key=0;

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

uchar  row[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar code tab[]={
			0x00,0x7E,0xFF,0xC3,0xC3,0xFF,0x7E,0x00, //0
			0x00,0x00,0xC2,0xFF,0xFF,0xC0,0x00,0x00, //1
			0x00,0xC6,0xE3,0xF3,0xDB,0xCF,0xC6,0x00, //2
			0x00,0x42,0xDB,0xDB,0xDB,0xFF,0x66,0x00, //3
			0x00,0x7C,0x62,0xFF,0xFF,0x60,0x60,0x00, //4
			0x00,0x6F,0xEF,0xCD,0xCD,0xFD,0x79,0x00, //5
			0x00,0x7E,0xFF,0xDB,0xDB,0xFB,0x72,0x00, //6
			0x00,0x03,0x03,0xE3,0xFF,0x1F,0x03,0x00, //7
			0x00,0xFF,0xFF,0xDB,0xDB,0xFF,0xFF,0x00, //8
			0x00,0x4E,0xDF,0xDB,0xDB,0xFF,0x7E,0x00, //9
			0x20,0x10,0x18,0x14,0x18,0x10,0x20,0x00, //A
			0x00,0x00,0x7E,0x52,0x52,0x7E,0x00,0x00, //B
			0x00,0x00,0x7E,0x42,0x42,0x42,0x00,0x00, //C
			0x00,0x00,0x7E,0x42,0x42,0x42,0x3c,0x00, //D
			0x00,0x00,0x7E,0x52,0x52,0x52,0x52,0x00, //E
			0x00,0x00,0x7E,0x0A,0x0A,0x0A,0x0A,0x00, //F
		};

void display(uchar Duan_value);
void Delay(uchar t);
void key_scan();

void main()
{
	while(1){	
		int i=0;
		display(key);
		key_scan();

		for(i=8*num;i<8*(num+1);i++)
		{
			P2=row[i-8*num];
			P0=tab[i];
			Delay(1);
		}
	}
}

void delay(uchar t){uchar x,y;for(x=t;t>0;t--)for(y=111;y>0;y--);}

void display(uchar value){
	P3=table[value];
}

void key_scan(){
	uchar m0,m1;
	uchar temp;
	P1=0xf0;
	temp=P1;

	if(temp!=0xf0)
	{
		delay(10);
		if(temp!=0xf0){
		m0=temp;
		P1=0x0f;
		temp=P1;

		if(temp!=0x0f){
			m1=temp;
			temp=m0|m1;
		}
		switch(temp){
			case 0xee:key=0;num=0; break;
			case 0xde:key=1;num=1; break;
			case 0xbe:key=2;num=2; break;
			case 0x7e:key=3;num=3; break;
			case 0xed:key=4;num=4; break;
			case 0xdd:key=5;num=5; break;
			case 0xbd:key=6;num=6; break;
			case 0x7d:key=7;num=7; break;
			case 0xeb:key=8;num=8; break;
			case 0xdb:key=9;num=9; break;
			case 0xbb:key=10;num=10;break;
			case 0x7b:key=11;num=11;break;
			case 0xe7:key=12;num=12;break;
			case 0xd7:key=13;num=13;break;
			case 0xb7:key=14;num=14;break;
			case 0x77:key=15;num=15;break;
		}
		do{
			temp=P1;
			temp&=0x0f;
		}while(temp!=0x0f);
	}
	}
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983728.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号