嵌入式系统概论综合设计报告书_第1页
嵌入式系统概论综合设计报告书_第2页
嵌入式系统概论综合设计报告书_第3页
嵌入式系统概论综合设计报告书_第4页
嵌入式系统概论综合设计报告书_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式系统概论综合设计报告书设计题目:键盘控制LED灯点阵显示图形学院:信息工程学院班级:09自动化姓名:刘巧巧 张巧玲 赵显峰指导老师:赵悦 中央民族大学二零一一年十二月二十九日一、 设计目的(1) 学会编译键盘控制LED灯程序;(2) 学会用虚拟机运行程序;(3) 学会在虚拟机Linux的开发环境下连接PXA270EP 嵌入式实验箱进行实验操作。二、 设计内容自己编译键盘控制LED灯程序,在安装 Redhat 的宿主 PC机,并且配置好 ARM Linux 的开发环境下连接到PXA270EP 嵌入式实验箱,用实验箱上的键盘控制LED灯使得实验箱上的8*8点阵数码管随着键盘所输入的不同数字而

2、显示不同的图形。三、 设计方案(1) 对PXA270EP 嵌入式实验箱进行zImage烧写。(2) 测试宿主PC机中安装的Redhat下得键盘驱动和LED灯驱动程序能否顺利,若顺利,则进行,下一步操作;否则,先修改驱动程序,使其能够顺利运行。(3) 编译键盘控制LED灯的程序,用U盘挂载到虚拟机上或者直接在虚拟机上编译。(4) 在虚拟机上运行程序,并且加载键盘驱动和LED灯驱动对程序进行测试,检测是否能显示自己设计的图形。实验原理:1、8X8 点阵数码管发光原理: 从图中可以看出,8X8 点阵共需要 64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置 1 电

3、平,某一行置 0 电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 2、系统电路如上图 所示。显示部分用的是一个 88 发光二极管点阵,我们常见的用于发布消息、显示汉字的点阵式 LED显示屏通常由若干块 LED点阵显示模块组成,显示点阵模块,每块有 64 个独立的发光二极管,为了减少引脚且便于封装,各种 LED 显示点阵模块都采用阵列形式排布,即在行列线的交点处接有显示 LED。(因此,LED 点阵显示模块的显示驱动只能采用动态驱动方式,每次最多只能点亮一行 LED(共阳形式 LED显示点阵模块)或一列

4、 LED(共阴形式 LED 显示点阵模块) 。如上图所示的显示驱动原理图中,点阵为共阴,由总线锁存芯片74573为点阵显示模块提供列驱动电流, 8个行信号则由集电极开路门驱动器7407控制,行线和列线都挂在总线上,微处理器可以通过总线操作来完成对每一个 LED点阵显示模块内每个 LED 显示点的亮、暗控制。 3、I/O接口 在本开发板上,整个 LED 显示模块是作为一个 I/O 进行控制的。如电路原理图所示,DATA0.7, DATA8.15分别对应系统数据线的低 16 位, LED_LOCK 信号是由系统总线的写信号和地址信号经简单的逻辑组合而得,在板载的 CPLD 内完成,控制该显示模块的

5、 I/O 地址为0x08000000。 4、键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。 线性键盘由若干个独立的按键组成,每个按键的一端与微机的一个 I/O 口相连。有多少个键就要有多少根连线与微机的 I/O口相连,因此,只适用于按键少的场合。 矩阵键盘的按键按 N 行 M 列排列,每个按键占据行列的一个交点,需要的 I/O 口数目是N+M,容许的最大按键数是 NM。显然,矩阵键盘可以减少与微机接口的连线数,简化结构,是一般微机常用的键盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。 非编码键盘: 非编码键

6、盘主要用软件的方法识键和译键。根据扫描方法的不同,可以分为行扫描法、列扫描法和反转法三种。 编码键盘: 编码键盘主要用硬件来实现键的扫描和识别,通常使用 8279 专用接口芯片,在硬件上要求较高。 PXA270EP采用的是 46 的矩阵键盘。其原理图如图:键盘扫描程序的流程图如图:程序是先扫描第 0 列,依次第 1列,第 2 列,第3 列。在扫描第 0 列的过程中,再先后扫描第 0 行,第 1 行,第 2 行,第 3 行,第 4 行,第 5 行。若在扫描完第 0 列后,没有扫描到任何键按下。 则再扫描第 1 列,在这过程中,再先后扫描第 0 行,第 1 行,第 2 行,第 3 行,第 4 行,

7、第 5 行。若在扫描完第 1 列后,没有扫描到任何键按下。 则再扫描第 2 列,在这过程中,再先后扫描第 0 行,第 1 行,第 2 行,第 3 行,第 4 行,第 5 行。若在扫描完第 2 列后,没有扫描到任何键按下。 则再扫描第 3 列,在这过程中,再先后扫描第 0 行,第 1 行,第 2 行,第 3 行,第 4 行,第 5 行。在扫描过程中,只要在符合某种条件下,则会停止后续列的扫描操作,而退出程序。 四、 设计结果键盘控制LED灯点阵显示图形程序:/*#include #include #include #include / open() close()#include / read(

8、) write()#include #define DEVICE_NAME /dev/led_ary_ctl#define DEVICE_NAME1 /dev/keypadvoid Key(unsigned char b);/- main -int main(void) int fd; int ret; unsigned char buf2 ; double x; char pre_scancode = 0xff; printf(n start keypad_driver test nn); fd = open(DEVICE_NAME1, O_RDWR); printf(fd = %dn,fd

9、); if (fd = -1) printf(open device %s errorn,DEVICE_NAME1); else buf0=0x22; while (1) read (fd,buf,1); if(buf0!= pre_scancode) if(buf0!=0xff) printf(key =%xn,buf0); Key(buf); pre_scancode = buf0; usleep(50000); / close ret = close(fd); printf (ret=%dn,ret); printf (close keypad_driver testn); return

10、 0;/ end main/*/-void Key(unsigned char b)int fd; int ret; int i,j,k; unsigned char buf2 ; unsigned char buf28=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char buf1118=0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00, /一_1 0x00,0x00,0x3c,0x00,0x00,0x7e,0x00,0x00, /二_2 0x00,0x3c,0x00,0x3c,0x00,0x7e,0x00,

11、0x00, /三_3 0x00,0x38,0x10,0x10,0x10,0x10,0x38,0x00, /I_4 0x00,0x20,0x20,0x20,0x20,0x20,0x3c,0x00, /L_5 0x00,0x36,0x49,0x22,0x14,0x08,0x00,0x00, /E_6 0x42,0x24,0x18,0xee,0x18,0x24,0x42,0x00, /心_7 0x00,0x08,0x08,0x49,0x49,0x7e,0x00,0x00, /太阳_8 0x00,0x08,0x08,0x49,0x49,0x7e,0x00,0x00, /山_9 0x3c,0x24,0x

12、24,0x24,0x24,0x24,0x3c,0x00, /0_0 0x00,0xef,0x44,0x47,0x41,0x41,0xe7,0x00, /巧_(其他键) ; / begin of led ary buf0= 1; buf1= 0; if(b0=9) i=b0;else i=10; fd = open(DEVICE_NAME, O_RDWR); printf(fd = %dn,fd); if (fd = -1) printf(open device %s errorn,DEVICE_NAME); else for(j=0;j=5;j+)for(k=0;k8;k+)buf0=buf1

13、ik;buf1=buf2k;write(fd,buf,2);usleep(1); / close ret = close(fd); printf (ret=%dn,ret); printf (close led_driver testn);/-LED灯点阵显示的不同图形:(1) 键盘输入1,点阵显示一 , 键盘输入2,点阵显示二: (2) 键盘输入3,点阵显示三, 键盘输入4,点阵显示I: (3) 键盘输入5,点阵显示L,键盘输入6,点阵显示E: 五、 设计心得本次课程设计我们小组做了很多次,也进行了很久,整个实验过程中出现了很多意外的失误和不该犯的错误。实验过程中,由于上次烧写成功的PXA-270实验箱找不到了,一直未能找到好的实验箱,无法烧写,在这上面浪费了很多功夫。后来借用其他实验做成功的小组的实验箱进行实验,解决了实验箱的问题,可是对于实验本身还是遇到了很多困难,比如虚拟机常常会因电脑中毒而无法运行

温馨提示

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

评论

0/150

提交评论