您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页51单片机矩阵键盘设计

51单片机矩阵键盘设计

来源:五一七教育网


湖南工业大学

课 程 设 计

资 料 袋

电气与信息工程 学院(系、部) 2009--2010 学年第 1 学期 课程名称 单片机应用系统 指导教师 贺正芸

学生姓名 专业班级 电子信息科学与技术 学号

题 目 4*4矩阵键盘 成 绩 起止日期 2009 年 11 月 23 日~ 2009 年 12 月 04 日

目 录 清 单

序号 1 2 3 4 5 6 材 料 名 称 课程设计任务书 课程设计说明书 课程设计图纸 资料数量 备 注 张

1

湖南工业大学

课程设计任务书

2009 —2010 学年第 1 学期

电气与信息工程 学院(系、部)电子信息科学与技术 专业 班级

课程名称: 单片机应用系统 设计题目: 4*4矩阵键盘 完成期限:自 2009 年 11 月 9 日至 2009 年 11 月 20 日共 2 周 内 容 及 任 务 由P1.0—P1.3(列)和P1.4—P1.7(行)组成4*4矩阵键盘,P0口接LED静态显示电路。由于P0口内部无上拉电阻,因此必须外部接上上拉电阻,其阻值的选择可以根据LED数码管发光电流及其亮度来决定,参考值为560欧姆。编写4*4键盘的驱动程序。 编写主程序,当按键按下时,能够在数码管显示器与按键的键值对应的数字。 起止日期 进 度 安 排 2009.11.23-2009.11.24 设计内容及基本原理 2009.11.25-2009.11.27 2009.11.28-2009.12.04 进行系统的软件设计, 进行系统的硬件设计 工作内容 主 要 参 考 资 料 [1] 欧伟明. 单片机原理与应用. 电子工业出版社,2009年 指导教师(签字): 年 月 日 系(教研室)主任(签字): 年 月 日

2

单片机应用系统

4*4矩阵键盘设计说明书

学班学成

生姓名 级 号 绩

电科072

指导教师(签字)

起止日期:2009 年 11 月 23 日 至 2009 年 12 月4 日

电气与信息工程学院(部)

3

年 月 日

单片机设计题目:矩阵式键盘数显设计

一、设计要求及任务

1、设计要求

(1)由P1.0—P1.3(列)和P1.4—P1.7(行)组成4*4矩阵键盘,P0口接LED静态显示电路。由于P0口内部无上拉电阻,因此必须外部接上上拉电阻,其阻值的选择可以根据LED数码管发光电流及其亮度来决定,参考值为560欧姆。编写4*4键盘的驱动程序。

(2)编写主程序,当按键按下时,能够在数码管显示器与按键的键值对应的数字

2、设计任务

(1)以ATS51为核心,设计系统硬件电路,并根据所设计的电路制作实物。 (2)分析任务要求,绘制程序流程图,编写相应的软件程序。

(3)编写设计说明书,内容包括:电路原理图;程序流程图,源程序清单;电路实测波形、电路原理分析、硬件调试分析;软件调试分析;结论和体会。

序号 1 2 3 4 5 6 7 8 9 10 11

器件名称 ATS51 插座 万能板 1位数码管 12MHZ晶振 30pF电容 20uF电容 9脚排阻(470*8) 按钮 10K电阻 1K电阻 200欧姆电阻 电源插孔 电源开关 发光二极管 下载接口 实验电源(220V转5V) 电烙铁 焊锡丝 1 1 1 1 1 2 1 1 17 4 1 2 1 1 1 1 1 1 若干 器件数量 4

二、任务分析

导线若干 若干 根据任务要求知此课程设计是做一个4*4的矩阵键盘P1口接键盘,P0口接数码管。19脚和18脚接晶振电路,9脚接复位电路,P1.5—P1.7要接下载接口。 应先画出电路原理图,根据原理图列出报目表,编写程序,进行软件仿真,软件仿真成功后开始做硬件。 编写程序时,步骤如下: 1、判断是否有键按下 2、识别被按下的键 3、查数码显示编码表

三、报目表

根据任务分析列出报目表,如表一所示

三、总体设计 1、软件设计 (1)电路原理图

VCCP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7123456ATS514039383736353433323130292827262524232221VCCP0.0560P0.1560P0.2560P0.3560P0.4560P0.5560P0.6560P0.7560EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0gfcomab表一

10K10K10K10K048C159D26AE37BFedcdpcomP1.6RESTGNDGNDGND24681013579P1.5P1.7VCCRESTGNDVCC下载口接线20022uF30pFREST30pF1K78REST9P3.0P3.11011P3.212P3.3P3.41314P3.515P3.6P3.71617XTAL218XTAL119GND2012MHZ

(2)程序流程图

5

入口扫描一行扫描下一行扫描一列Y延时10ms去抖动4列全部扫描完?再次扫描原列扫描下一行N与原值扫描值相符?4行全部扫描完?Y返回0xFF表示无键按下NY按键释放Y扫描下一行该行该列是否有键按下?N扫描下一行N根据行号和列号查键码表求键值根据键值查数码显示编码表返回

(3)源程序

#include #include 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;i<5;i++)

for(j=0;j<255;j++); }

//键盘扫描

unsigned char key_scan() {

unsigned char i,j,key; P1=0x0f;

while(P1!=0x0f) {delay();

P1=0x0f;

while(P1!=0x0f) {

6

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 char key=0; while(1) {while(k)

{P1=0x0f; if(P1!=0x0f) {k=0;

key=key_scan();

if(key!=16) P0=key_code[key]; } } while(!k)

{P1=0x0f;

if(P1==0x0f) k=1; } } }

(4)PROTEUS 仿真图

7

2、硬件设计

8

9

心得体会:

通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地

应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 这个设计过程中,我们由P1.0—P1.3(列)和P1.4—P1.7(行)组成4*4矩阵键盘,P0口接LED静态显示电路。由于P0口内部无上拉电阻,因此必须外部接上上拉电阻,其阻值的选择可以根据LED数码管发光电流及其亮度来决定,参考值为560欧姆。编写4*4键盘的驱动程序。编写主程序,当按键按下时,能够在数码管显示器与按键的键值对应的数字。 设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。

10

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务