51单片机矩阵键盘设计.doc
文本预览下载声明
湖南工业大学
课 程 设 计
资 料 袋
电气与信息工程 学院() 2009--2010 学年第 学期
课程名称 指导教师
学生姓名 专业班级
题 目
成 绩 年 11 月 日~ 年 月 日
序号 材 料 名 称 备 注 1 课程设计任务书 2 课程设计说明书 3 课程设计图纸 张 4 5 6 课程设计任务书
20 —2010 学年第 学期 电气与信息工程 学院(系、部)电子信息科学与技术 专业 班级
课程名称:
设计题目:
完成期限:自 年 月 日至 年 月 日共 周
指导教师(签字): 年 月 日主任(签字): 年 月 日
单片机应用系统
4*4矩阵键盘设计说明书
学生姓名 班级 成绩 指导教师(签字)
起止日期: 年 月 日 至 年 月 日
年月日 表一
三、总体设计
1、软件设计
(1)电路原理图
(2)程序流程图
(3)源程序
#include reg51.h
#include reg51.h
Unsigned;char key_code[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1,0x00};
unsigned char ksp0[4]={0xfe,0xfd,0xfb,0xf7};
unsigned char ksp1[4]={0xef,0xdf,0xbf,0x7f};
unsigned char k=1;
void delay(void)
{
unsigned char i,j;
for(i=0;i5;i++)
for(j=0;j255;j++);
}
//键盘扫描
unsigned char key_scan()
{
unsigned char i,j,key;
P1=0x0f;
while(P1!=0x0f)
{delay();
P1=0x0f;
while(P1!=0x0f)
{
for(i=0;i=3;i++)
{
P1=ksp1[i];
if(P1!=ksp1[i]) break;
}
for(j=0;j=3;j++)
{
P1=ksp0[j];
if(P1!=ksp0[j]) break;
}
key=i*4+j;
return(key);
}return(16);
}return(16);
}
void main()
{unsigned cha
显示全部