资源描述:
《4×4 键盘矩阵控制条形LED显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、沈阳理工大学课程设计目录1课程设计概述11.1设计目的11.2设计内容和要求11.3设计思路11.4系统设计11.5功能要求12硬件开发平台23软件开发平台34硬件电路的设计44.1硬件电路的基本构成44.2硬件电路元器件44.3条形LED灯54.4硬件资源及其分配55程序设计75.1程序流程图:75.2程序代码86.1运行结果描述106.2仿真结果图:10结论11参考文献1212沈阳理工大学课程设计1课程设计概述1.1设计目的1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。2、通过4×4键盘矩阵控制条形LED显示系统的设计,
2、掌握数码管的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力[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功能要求本设计能
3、模拟基本的LED点阵显示系统,是用中断的方式定时控制LED点阵显示的内容变换。定时/计数器工作方式寄存器,定时器采用T0定时器0工作于模式0位数:13位计数范围:0-8192,每累计250次定时器中断才执行一次换数。12沈阳理工大学课程设计2硬件开发平台12沈阳理工大学课程设计3软件开发平台12沈阳理工大学课程设计4硬件电路的设计4.1硬件电路的基本构成4×4键盘矩阵控制条形LED显示系统,可用单片机的矩阵键盘的输入直接控制发光二极管LED灯的。据此,本设计系统以单片机为控制核心,连接成最小系统。系统的总体框图如下所示。P1时钟输入AT89C51矩阵键盘的输入LED灯显示P2P
4、3复位信号图4.1硬件电路的总体框图[2]4.2硬件电路元器件为实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,4×4点阵指示模块等,所需要的元器件如下表所示:表4-2元器件表器件个数Button按钮16AT89C51单片机1CAP电容2CAP-ELEC电容112沈阳理工大学课程设计CRYSTAL晶振1LED-BARGRAPH-GRN条形LED灯2RES电阻1RESPACK-8排阻24.3条形LED灯根据本设计的特点,条形LED灯的显示不可少,LED灯的显示采用普通的发光二极管。在硬件上连接图上也是对称分布的,如下图4.3所示。图4.3条形LE
5、D灯的连接在本设计中,条形LED灯总共有20个,但只应用了16个,每次将按键按下时都会控制着键盘周围和条形LED灯周围的电平由高电平到低电平的转换,使其能让LED灯进行亮灭4.4硬件资源及其分配主要用到的硬件:P1口、P2口、P3口、4×4键盘、条形LED灯。硬件分配:(1)P1口:做为输入口,与单片机和4×4键盘相连。(2)P2、P3口:作为输出口,与条形LED灯相连12沈阳理工大学课程设计本系统以单片机为核心,系统硬件电路由单片机,4×4键盘,条形LED灯等组成。其具体的硬件电路总图如图4.4所示。图4.4硬件设计连线图12沈阳理工大学课程设计5程序设计5.1程序流程图:开
6、始KeyNO赋初值1调用子函数P2、P3口初始全灭判断是否有按键按下按键号<8YP3_LED右移一位P2_LED右移一位N结束Y图5.1程序流程图12沈阳理工大学课程设计5.2程序代码#include#include#defineucharunsignedchar#defineuintunsignedintucharcodeKeyCodeTable[]=//定义键盘状态数组{0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88};vo
7、idDelay()//延时函数{uchari;for(i=0;i<200;i++);}ucharKeys_Scan()//键盘查询子函数{ucharsCode,kCode,i,k;P1=0xf0;//为p1口赋初值11111110if((P1&0xf0)!=0xf0)//判断是否有按键按下{Delay();//延时函数进行消抖if((P1&0xf0)!=0xf0)//判断是否有按键按下{sCode=0xfe;for(k=0;k<4;k++)//行扫描{P1=sCode;if((P1&0xf0