44 键盘矩阵控制条形LED显示.docx

上传人:b****6 文档编号:8230174 上传时间:2023-01-30 格式:DOCX 页数:9 大小:78.82KB
下载 相关 举报
44 键盘矩阵控制条形LED显示.docx_第1页
第1页 / 共9页
44 键盘矩阵控制条形LED显示.docx_第2页
第2页 / 共9页
44 键盘矩阵控制条形LED显示.docx_第3页
第3页 / 共9页
44 键盘矩阵控制条形LED显示.docx_第4页
第4页 / 共9页
44 键盘矩阵控制条形LED显示.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

44 键盘矩阵控制条形LED显示.docx

《44 键盘矩阵控制条形LED显示.docx》由会员分享,可在线阅读,更多相关《44 键盘矩阵控制条形LED显示.docx(9页珍藏版)》请在冰豆网上搜索。

44 键盘矩阵控制条形LED显示.docx

44键盘矩阵控制条形LED显示

1课程设计概述

1.1设计目的

1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。

2、通过4×4键盘矩阵控制条形LED显示系统的设计,掌握数码管的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力[1]。

1.2设计内容和要求

内容:

设计一个4×4键盘矩阵控制条形LED显示。

要求:

利用单片机的矩阵键盘,条形LED显示,第几个的按键对应的几个led灯亮。

1.3设计思路

1.先熟悉实验原理,设计8×8LED点阵屏显示数字的工作过程,以及所需要的组件。

2.通过单片机的各个引脚的输出控制8×8LED点阵屏显示数字

1.4系统设计

通过编写程序,实现用中断系统对8×8LED点阵屏的控制,使其每延时一段时间,LED点阵的显示数字就会进行状态转换。

采用单片机内部的I/O口上的P0和P3口可来控制LED点阵。

1.5功能要求

本设计能模拟基本的LED点阵显示系统,是用中断的方式定时控制LED点阵显示的内容变换。

定时/计数器工作方式寄存器,定时器采用T0定时器0工作于模式0位数:

13位计数范围:

0-8192,每累计250次定时器中断才执行一次换数。

 

2硬件开发平台

3软件开发平台

 

4硬件电路的设计

4.1硬件电路的基本构成

4×4键盘矩阵控制条形LED显示系统,可用单片机的矩阵键盘的输入直接控制发光二极管LED灯的。

据此,本设计系统以单片机为控制核心,连接成最小系统。

系统的总体框图如下所示。

 

 

图4.1硬件电路的总体框图[2]

4.2硬件电路元器件

为实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,4×4点阵指示模块等,所需要的元器件如下表所示:

表4-2元器件表

器件

个数

Button按钮

16

AT89C51单片机

1

CAP电容

2

CAP-ELEC电容

1

CRYSTAL晶振

1

LED-BARGRAPH-GRN条形LED灯

2

RES电阻

1

RESPACK-8排阻

2

4.3条形LED灯

根据本设计的特点,条形LED灯的显示不可少,LED灯的显示采用普通的发光二极管。

在硬件上连接图上也是对称分布的,如下图4.3所示。

图4.3条形LED灯的连接

在本设计中,条形LED灯总共有20个,但只应用了16个,每次将按键按下时都会控制着键盘周围和条形LED灯周围的电平由高电平到低电平的转换,使其能让LED灯进行亮灭

4.4硬件资源及其分配

主要用到的硬件:

P1口、P2口、P3口、4×4键盘、条形LED灯。

硬件分配:

(1)P1口:

做为输入口,与单片机和4×4键盘相连。

(2)P2、P3口:

作为输出口,与条形LED灯相连

本系统以单片机为核心,系统硬件电路由单片机,4×4键盘,条形LED灯等组成。

其具体的硬件电路总图如图4.4所示。

图4.4硬件设计连线图

5程序设计

5.1程序流程图:

图5.1程序流程图

5.2程序代码

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeKeyCodeTable[]=//定义键盘状态数组

{

0x11,0x12,0x14,0

x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88

};

voidDelay()//延时函数

{

uchari;

for(i=0;i<200;i++);

}

ucharKeys_Scan()//键盘查询子函数

{

ucharsCode,kCode,i,k;

P1=0xf0;//为p1口赋初值11111110

if((P1&0xf0)!

=0xf0)//判断是否有按键按下

{

Delay();//延时函数进行消抖

if((P1&0xf0)!

=0xf0)//判断是否有按键按下

{

sCode=0xfe;

for(k=0;k<4;k++)//行扫描

{

P1=sCode;

if((P1&0xf0)!

=0xf0)//判断是否有按键按下

{

kCode=~P1;

for(i=0;i<16;i++)

{

if(kCode==KeyCodeTable[i])//比较按键状态,判断哪个

按键号

returni;//返回按键号

}

}

else

sCode=_crol_(sCode,1);//比较不成功,循环到下一行

}

}

}

return-1;//没有按键按下返回-1

}

voidmain()

{

ucharKeyNO=-1;//键盘号

uchari,P2_LED,P3_LED;

while

(1)

{

KeyNO=Keys_Scan();//调用查询按键子函数

if(KeyNO!

=-1)//等于-1没有按键按下一般不等有按键按下

{

P2_LED=0xff;//赋初值使p2口灯全灭

P3_LED=0xff;//赋初值使p3口灯全灭

for(i=0;i<=KeyNO;i++)//按键号是几循环几次

{

if(i<8)//按键号小于8,P3_LED右移

P3_LED>>=1;

Else//大于8,P3_LED移动8次,P3_LED灯全亮

P2_LED>>=1;//P2_LED再继续右移

}

P3=P3_LED;

P2=P2_LED;

}

}

}

 

6运行结果

6.1运行结果描述

进入Proteus仿真设计平台,加载仿真电路,点击运行按钮,点击4×4键盘控制条形LED灯的亮灭,使其能够通过按下几号键盘就能控制亮几个条形LED灯的功能。

6.2仿真结果图:

图6.2实验仿真结果图

结论

4×4LED点阵屏显示数字系统对于单片机初学者有着非常重要的作用。

本文完成了基于单片机的定时器控制8×8LED点阵屏显示数字系统的设计与模拟。

包括显示方案的设计,系统的硬件开发、软件编程与仿真调试等。

在论文完成过程中,主要做的工作有:

(1)确定8×8LED点阵屏显示数字系统具体的通行方案以及要求其他多功能的实现。

(2)以ATMEL公司的AT89C51单片机为核心进行系统硬件设计,输入量包括:

输出LED点阵亮灭状态及时间显示。

通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。

使之不断地战胜别人,超越前人。

同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。

设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

 

参考文献

【1】谢维成.单片微型计算机原理及应用.清华大学出版社,2009.

【2】余锡存曹国华.单片机原理及接口技术.西安电子科技大学出版社,2011.

【3】张凯.LED介绍完全手册.北京航空航天大学出版社,2000

【4】雷丽文等.微机原理与接口技术.电子工业出版社,1997.

【5】吴黎明,王桂棠,洪添胜,等.单片机原理及应用技术.科学出版社,2005.

【6】韩克,柳秀山,等.电子技能与EDA技术.暨南大学出版社,2004.

【7】张毅坤.单片微型计算机原理及应用.西安电子科技大学出版社,1998

【8】任涛等.闪速存储器数据及应用简明速查手册.电子工业出版社,1997

【9】何立民.单片机应用技术选编.北京航空航天大学出版社,2000

【10】张毅刚等.MCS-51单片机应用设计.哈尔滨工业电子出版社,1996

【11】邬宽明.单片机外围器件实用手册.北京航空航天大学出版社,1998

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1