嵌入式概论综合应用课程设计_矩阵键盘控制LED点阵电子屏概要_第1页
嵌入式概论综合应用课程设计_矩阵键盘控制LED点阵电子屏概要_第2页
嵌入式概论综合应用课程设计_矩阵键盘控制LED点阵电子屏概要_第3页
嵌入式概论综合应用课程设计_矩阵键盘控制LED点阵电子屏概要_第4页
嵌入式概论综合应用课程设计_矩阵键盘控制LED点阵电子屏概要_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、院院 系:信息工程学院系:信息工程学院专专 业业:指导指导老师老师:作者姓名作者姓名:嵌入式系统嵌入式系统概概论综合设计论综合设计键盘控制键盘控制LED点阵的点阵的电子屏电子屏实验实验二零二零一三一三年十二月二十四日年十二月二十四日总览总览Company Logo设计说设计说明明1设计结设计结果果4程序代程序代码码3设计设计方案方案2心得体心得体会会5一、设计说明一、设计说明Company Logo 1、了解LED点阵和矩阵键盘的工作原理。 2、作出简单的应用程序设计,实现矩阵键盘控制LED点阵。 编写应用程序实现矩阵键盘控制LED点阵,产生需要的图形(Z),并实现图形的上下左右滚动控制。 1

2、、一套 PXA270EP 嵌入式实验箱。 2、安装 Redhat9 的宿主 PC 机,并且配置好 ARM Linux 的开发环境。二、设计方案二、设计方案Company Logo2 2、主程序设计主程序设计 本设计要求实现键盘控制LED点阵图形显示,就必须要编写键盘和LED点阵的程序。先通过扫描矩阵键盘,得到键盘值,然后再调用点阵显示子函数,根据扫描的键盘值,在LED点阵上显示Z图形和图形各个方向的滚动控制。1 1、设计思路设计思路 主程序要实现的功能是矩阵键盘扫描,得到键盘值,然后把值传给LED显示函数。程序流程图如右图:3 3、LEDLED点阵显示函数设计点阵显示函数设计Company L

3、ogo 本函数要实现的功能是根据键盘的值,在LED点阵上显示Z图形并控制滚动。如果键盘的输入值为5则显示相应的图形Z,输入2、8、4和6分别控制下上左右滚动。本程序采用二维数组存放要显示的图形的字模,然后再通过扫描LED点阵,把要显示的图形分8次显示,一次显示一行,利用人眼的视觉暂留效应,看到的是一个图形一次显示出来,程序流程图如图:二、设计方案二、设计方案4 4、点阵图形设计点阵图形设计Company Logo 根据8X8 LED点阵的原理,8X8 点阵共需要64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1 电平,某一行置0 电平,则相应的二极管就亮;

4、根据图形中点亮的LED灯的位置,得到相应图形的16进制数,分别存放在一维数组bufc8和bufr8中。所以要显示的图形Z的字模如下:int bufc8=0 xff,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 xff;/z列1int bufr8=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe;/行0或int bufc18=0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x01;/1int bufr18=0 xff,0 xbd,0 xb9,0 xb5,0 xad,0 x9d,0

5、xbd,0 xff;/0二、设计方案二、设计方案Company Logo三、程序源代码三、程序源代码 /-#include#include#include#include#include#include#define DEVICE_NAME1 /dev/keypad#define DEVICE_NAME2 /dev/led_ary_ctl/-main- int main(void)int fd_key;int fd_led;int ret;int m,n,k,l,r,u;unsigned char bufl2;unsigned char bufk2;double x;char scan = 0

6、 xff;int bufc8=0 xff,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 xff;/z列1int bufr8=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe;/行0int bufc18=0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x01;/1 int bufr18=0 xff,0 xbd,0 xb9,0 xb5,0 xad,0 x9d,0 xbd,0 xff;/0fd_key = open(DEVICE_NAME1,O_RDWR);fd_led = open(

7、DEVICE_NAME2,O_RDWR);三、程序源代码三、程序源代码if (fd_key = -1 & fd_led = -1)printf(Open drivers errorn);elsebufk0=0 x22;while(1)read(fd_key,bufk,1);if(bufk0!=0 xff)scan=bufk0;switch(scan)case 0 x05:for(m=0;m=7;m+)bufl0=bufcm;bufl1=bufrm;write(fd_led,bufl,2);break;三、程序源代码三、程序源代码case 0 x02:for(k=0;k=7;k+)for

8、(n=0;n=0;l-)for(r=0;r=7;r+)bufl0=bufc(r+l)%8;bufl1=bufrr;write(fd_led,bufl,2);break;case 0 x04:for(k=0;k=7;k+)for(n=0;n=0;k-)for(n=0;n=7;n+)bufl0=bufc1n;bufl1=bufr1(n+k)%8;write(fd_led,bufl,2);break;三、程序源代码三、程序源代码ret = close(fd_led); ret = close(fd_key); printf (close key_led driver testn);return 0;

9、/-end main-三、程序源代码三、程序源代码四、设计结果四、设计结果五、心得体会五、心得体会u 通过本次实验,我们对通过本次实验,我们对linuxlinux下的实验更加熟悉了,对下的实验更加熟悉了,对LEDLED点阵显点阵显示和矩阵键盘的原理有了深入的了解,掌握了点阵图形的设计方法和键示和矩阵键盘的原理有了深入的了解,掌握了点阵图形的设计方法和键盘的输入的读取,并把二者结合起来,实现了键盘控制点阵图形现实。盘的输入的读取,并把二者结合起来,实现了键盘控制点阵图形现实。u 在实验过程中,我们也出现了问题,最开始时,由于不清楚点阵在实验过程中,我们也出现了问题,最开始时,由于不清楚点阵的的C

10、 C,R R的高低位的对应情况,经过试验,才确定。然后就是点阵的显示的高低位的对应情况,经过试验,才确定。然后就是点阵的显示是一闪即过的,然后我们通过循环控制了点阵的显示时间是一闪即过的,然后我们通过循环控制了点阵的显示时间。这次的实验这次的实验真的是花了很长的时间,但是也是收获很多。对于键盘和点阵的测试程真的是花了很长的时间,但是也是收获很多。对于键盘和点阵的测试程序我们已经很熟悉了,要将他们结合起来还是比较容易的。对于做出图序我们已经很熟悉了,要将他们结合起来还是比较容易的。对于做出图形,一开始我们就可以实现按键盘出现不同的图形。但是我们不是很满形,一开始我们就可以实现按键盘出现不同的图形。但是我们不是很满意,我们期望做出的是一组可动态的图形。然而这这个过程中我们遇到意,我们期望做出的是一组可动态的图形。然而这这个过程中我们遇到了点困难,不断的编写,不断的改进,总是不成功。这期间与到了个中了点困难,不断的编写,不断的改进,总是不成功。这期间与到了个中问题,不停的尝试,有得可以明白有的则不知所以。终于最后还是做好问题,不停的尝试,有得可以明白有的则不知所以。终于最后还是做好了,可以实现动态运动。当然和有些组比起来我们的确实不是很炫,但了,可以实现动态运动。当然和有些组比起来我们的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论