数码管显示44矩阵键盘的键盘号程序解释好了大作业.docVIP

  • 17
  • 0
  • 约4.57千字
  • 约 10页
  • 2019-09-14 发布于上海
  • 举报

数码管显示44矩阵键盘的键盘号程序解释好了大作业.doc

《单片机原理及应用课程设计》报告 ——数码管显示4×4矩 阵键盘的键盘号 专 业: 电子信息科学与技术 班 级: 姓 名: 学 号: 指导教师: 2012年 5月15日 1、课程设计目的 1.1巩固和加深对单片机原理和接口技术知识的理解; 1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力; 1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法; 1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法; 1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。 2、课程设计要求 单片机的P1口的P1.0~P1.7连接4×4矩阵键盘,P0口控制一只数码管,当4×4矩阵键盘中的某一按键按下时,数码管上显示对应的键号。例如,1号键按下时,数码管显示“1”, 14号键按下时,数码管显示“E”等等。 3、硬件设计 3.1 设计思想 分析本任务的要求,在课程设计的基础上,添加要求,使设计能够完成当4×4矩阵键盘中的某一按键按下时,数码管上显示对应的键号。 3.2主要元器件介绍: AT89C51单片机 LED数码管 4X4矩阵键盘 3.3 功能电路介绍 AT89C51单片机:控制器。程序中将单片机的引脚置高电平低电平,单片机通过读取IO引脚的电平,在根据读取的数据去查找数组中相应的按键值,然后在送到数码管也就是P0口去显示.(51单片机通过IO口来读取键盘的电平,再通过程序来查找对应的数值,在送到数码管去显示) LED数码管 :输出设备 4X4矩阵键盘:输入设备 4、软件设计 4.1 设计思想 通过对矩阵键盘的逐行扫描,来获得所按下键的键盘号,最终通过数码管显示出来。 4.2软件流程图 开始 开始 初始化 初始化 结束,返回 结束,返回 若有按键按下,显示键盘号 若有按键按下,显示键盘号 扫描键盘第一行 扫描键盘第一行 若无按键按下 若无按键按下 扫描键盘第二行 扫描键盘第二行 若无按键按下 若无按键按下 扫描键盘第三行 扫描键盘第三行 若无按键按下 若无按键按下 扫描键盘第四行 扫描键盘第四行 若无按键按下 若无按键按下 结束,返回 结束,返回 4.3源程序 #includereg52.h #define uchar unsigned char #define uint unsigned int uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//定义显示段码 uchar num,temp; void delay(uchar k)//定义延时函数 { uchar i,j; for(i=k;i0;i--) for(j=110;j0;j--); } void disp(char num1)//定义显示函数 { P0=table[num1];//将段码值送入P0口显示 } char keyscan()//定义键盘检测函数 { P1=0xfe;//给P1口送检测信即先检测第一列有无按键被按下(key1~key4) temp=P1;//将检测信号赋给变量temp temp=temp0xf0;//“与”去除低四位检测部分 while(temp!=0xf0)//判断是否有按键被按下,即key1-key4有任意按键被按下temp便不等于0xff { delay(5);//按键防抖动延时(时间要求不严格) while(temp!=0xf0)//延时之后再次判断 { temp=P1;//进入函数说明有按键被按下,再将p1值赋给temp进行判断是哪位被按下 switch(temp)//利用switch函数判断temp值 { case 0xee://若P0等于0xee,则由判断为0的位被按下即第四位(最低位),则应赋值num为0; num=0; break; case 0xde:/理判断其为第三位被按下(该行第二位)num=1

文档评论(0)

1亿VIP精品文档

相关文档