基于LINUX嵌入式LED显示设计课程设计.doc
《基于LINUX嵌入式LED显示设计课程设计.doc》由会员分享,可在线阅读,更多相关《基于LINUX嵌入式LED显示设计课程设计.doc(26页珍藏版)》请在三一办公上搜索。
1、摘要本课程设计要求利用实验室提供的ARM2410实验箱进行相应的设计,主要包括理解LED原理,掌握在Linux下常用编辑器的使用,掌握MAKEFILE的编写和使用,掌握LINUX下的程序编译与交叉编译过程,有一定的数字电路的知识,能够设计出新颖的显示图样,最后通过上下位机实现结果的显示。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用程序4个部分组成。Linux操作系统是-个开放源代码的免费操作系统,它不仅安全、稳定、成本低,而且很少发现有病毒传播,越来越的服务器、工作站和个人电脑开始使用Linux软件,基于Linux具有稳定、可靠和强大的网络功能这些优点。关键字:嵌入式
2、;LINUX;ARM2410;LED目录一、引言1二、实验内容22、1 实验目的22、2 实验设备及工具22、3 实验基础22、4 实验平台22、4、1 嵌入式系统简介22、4、2 建立开发环境32、4、3 给下位机烧写软件系统3三、基本原理43、1 LED显示控制原理43、1、1 7段(8段)LED原理43、1、2 点阵式LED原理53、2 74HC273基本原理63、3 74HC273在开发板上的连接73、3、1 7段(8段)LED的连接73、3、2 点阵式LED的连接73、4 LED 编程93、4、1 7段LED的段码表93、4、2 点阵式LED的显示缓冲区93、4、3 C语言编程9四、
3、实验环境连接10五、程序分析14六、 实验步骤15七、结果分析17八、总结18九、参考文献19附录20一、引言 LED电子显示是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它是集成微电子技术、光电子技术、计算机技术、信息处理技术于一体的显示系统,是目前国际上极为先进的显示媒体。由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富、工作性能稳定以及对室内室外环境适应能力强等优点而日渐成为显示媒体中的佼佼者。在我国改革开放之后,特别是进入90年代国民经济高速增长,对公共场合发布信息的需求日益增强,LED显示屏的出现正好适应了这一市场形势,因而在LED显示的设计制造技术与应用水平上都得到了
4、迅速的提高,生产也得到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。LED显示经历了从单色、双色图文显示屏的发展过程。随着信息产业的高速发展,LED显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志。近年LED显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如银行、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策,各类市场行情信息的发布和宣传等。目前,对于那些需要显示的信息的信息量不是很大,分辨率不是很高,有需要制造成本相对比较低的场合,使用小屏幕LED点阵显示器是比较经济使用的。LED之所以受到广泛重视而得到迅速发展,是与它本身所具有
5、的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全面化方向发展。 二、实验内容2、1 实验目的(1) 学习LED的相关知识(2) 掌握74HC273芯片的工作原理(3) 了解SPI接口的相关知识2、2 实验设备及工具硬件:UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机 Pentium 500 以上, 硬盘 10G 以上。软件:PC 机操作系统 REDHAT LINUX 9.0MINICOMARM-LINUX 开发环境 2
6、、3 实验基础 目的是为后续实验搭建好软、硬件环境,配置好相关的协议、服务,并通过编写最简单的HelloWorld程序进行测试。由于实验都要依靠前面的配置,本段只着重叙述实验的具体实现。2、4 实验平台 2、4、1 嵌入式系统简介 嵌入式系统是基于单片机的一种升级版,它是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。我们可从几方面来理解嵌入式系统: 1、嵌入式系统是面向用户、面向产品、面向应用的,嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。嵌入式系统和具体应用有机地结合在一起
7、,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 2、嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 3、嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。 4、嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能
8、进行开发。实际上,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫嵌入式系统。现在人们讲嵌入式系统时,某种程度上指近些年比较热的具有操作系统的嵌入式系统。 2、4、2 建立开发环境 1在下位机断电的情况下,利用实验箱中自带的串口线将上位机的com1口与下位机的RS232-0口进行连接。 2利用实验箱中自带的直连网线将上位机与下位机进行连接。 3根据下位机中安装的核心模块,选择相应的嵌入式系统开发软件光盘。 4将选择好的嵌入式系统开发软件光盘放入上位机的光驱中,在终端命令窗口中挂载该光盘。mount o iocharset=gb2312 /dev/cdrom /mnt 5进入光盘的Linu
9、x工具软件目录。执行该目录下的shell文件“install.sh”,Linux工具软件会自动安装完成。对于S2410,会将程序安装在目录“arm2410cl”下,交叉编译器安装在目录“/opt/host”下。用户可以通过使用命令“armv41-unknown-linux-gcc”运行交叉编译器。 6启动minicom超级终端程序,选择“Serial port setup”进入串口配置界面进行串口配置。然后可以打开下位机的电源,通过minicom对下位机进行操作。 7使用命令ifconfig分别查看上位机和下位机的IP地址,判断上位机与下位机是否处于同一个网段。若它们不在同一网段,使用命令if
10、config或者KDE桌面的工具,将它们配置在同一网段。使用命令ping查看上位机与下位机的网络连接是否正常,如不正常,请检查网线的连接、IP地址的配置、IP地址是否冲突等。 8将上位机配置为NFS服务器,设置共享目录为“/arm2410cl”。 9在上位机中启动NFS服务,下位机使用命令mount挂载上位机的共享目录。 mount t nfs 192.168.0.252:arm2410cl /mnt/nfs 2、4、3 给下位机烧写软件系统下位机的软件系统由Bootloader、系统内核、根文件系统和应用程序四部分组成。Bootloader相当于PC机上的BIOS,在下位机加电时自动运行,执
11、行硬件初始化和调用系统内核的功能。Bootloader分为U-boot、Vivi、Blob、ARMBoot、RedBoot等多种,本实验使用实验箱自带光盘中的vivi。系统内核就是运行在下位机上的操作系统内核,本实验使用实验箱自带光盘中的zImage,是ARM-Linux的内核,版本号为2.6。根文件系统是Linux系统必不可少的一部分,用来管理下位机中的文件。本实验使用实验箱自带光盘中的root.cramfs。Cramfs是专门针对Flash设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3,经常作为下位机的根文件系统。应用程序是需要烧写到
12、下位机,在下位机中运行的程序,在上位机中以压缩文件包的形式保存,本实验使用实验箱自带光盘中的yaffs.tar.bz2。应用程序所的文件系统为Yaffs(Yet Another Flash File System),Yaffs是一种专门为Flash设计的嵌入式文件系统,运行速度快、占用内存小,提供写均衡、垃圾收集等底层功能。给下位机烧写软件系统的步骤:1烧写Vivi到下位机;2在上位机的Windows XP中配置超级终端,连接下位机;3烧写系统内核到下位机;4烧写根文件系统到下位机;5烧写应用程序到下位机。三、基本原理3、1 LED显示控制原理LED是发光二极管英文Light Emitting
13、 Diode的缩写格式,LED器件种类繁多,早期的LED产品是单个发光管,随着数字化设备的出现,适应了信息化社会发展的需要,成为了大众传媒的重要工具。 LED发光灯按类型可以分为单色发光灯、双色发光灯,三色发光灯、面发光灯、闪烁发光灯、电压型发光灯等;按发光强度可以分为普通亮度发光灯、高亮度发光灯、超高亮度发光灯等。 3、1、1 7段(8段)LED原理 LED的7个字段分别称为a、b、c、d、e、f、g,有时还有一个小数点段h,图1(a)所示。通过7个(或8个)发光段的不同组合,显示09和AF共16个字母数字,从而实现十六进制的显示。为使7段显示器显示数字或字符,就需点亮相应的段,每个段分别由
14、数据线进行控制,通常数据线D0D7顺序控制ah段,如图11-34(b)所示,所需的控制信号称为段码。由于数字与段码之间没有规律性,因此必须进行数字与段码之间的转换以便显示数字。常用的转换方法是将要显示字形的段码列成一个表,称为段码表。显示时,根据字符查段码表,取出其对应的段码送到数据线上来控制显示。 图3.1 8段LED 显示器外形及各段对应的数据线LED有两种不同的形式: 一种是8个发光二极管的阳极都连在一起,称为共阳极,如图3.2(a)所示;另一种是8个发光二极管的阴极都连在一起,称为共阴极,如图3.2(b)所示。图3.2 8段LED 显示器原理图 3、1、2 点阵式LED原理点阵式LED
15、的显示单元一般由8行8列LED组成,其外形及内部连接如图3所示,可以再由这8行8列的LED拼成更大的LED阵列。点阵式LED显示器能显示各种字符、汉字及图形、图像,并具有色彩。点阵式LED中,每个LED表示一个像素,通过每个LED的亮与灭来构造出所需的图形,各种字符及汉字也是通过图形方式来显示的。对于单色点阵式LED,每个像素需要1位二进制数表示,1表示亮,0表示灭。对于彩色点阵式LED,则每个像素需要更多的二进制位表示,通常需要一个字节。点阵式LED显示器的显示控制采用扫描方式,在数据存储器中开辟若干个存储单元作为显示缓冲区,缓冲区中存有所需显示图形的控制信息。显示时依次通过列信号驱动器输出
16、一行所需所有列的信号,然后再驱动对应的行信号,控制该行显示。只要扫描速度适当,显示的图形就不会出现闪烁。图3.3 点阵式LED的外形和内部连接3、2 74HC273基本原理 74HC273是一款高速CMOS器件,74HC273引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC273具有八路边沿触发,D 型触发器,带独立的D输入和Q输出。74HC273的公共时钟(CP)和主复位(MR)端可同时读取和复位(清零)所有触发器。每个D输入的状态将在时钟脉冲上升沿之前的一段就绪时间内被传输到触发器对应的输出(Qn)上。一旦MR输入电平为低,则所有输出将被强制置为低,而不依赖于时钟或者数据输入。74H
17、C273适用于要求原码输出或者所有存储元件共用时钟和主复位的应用。74HC273的芯片形状以及引脚分布如图3.4所示: 图3.4 74HC273的芯片形状以及引脚分布图各个引脚的作用如下(参照图3.4说明):表1 74HC273芯片的引脚作用引脚符号引脚编号说明-MR1主复位输入(低复位)Qn2,5,6,9,12,15,16,19触发器输出nDn3,4,7,8,13,14,17,18数据输入nGND10地CP11时钟输入(上升沿触发)Vcc20电源电压3、3 74HC273在开发板上的连接 3、3、1 7段(8段)LED的连接 开发板上设置了2个数码管,由74HC273控制,如图4所示。74H
18、C273是同步串行转并行的锁存器,在此通过SPI总线和CPU连接,锁存数据后驱动数码管发光。图3.5 开发板上7段LED的连接 3、3、2 点阵式LED的连接点阵式LED在开发板上的连接如图5所示。点阵式LED 驱动器逻辑中设置了8 个字节的缓冲区,每个字节按位对应点阵式LED 模块上的一列8个点。驱动器中的扫描电路会将缓冲区的内容不断输出到LED模块,CPU 可以读写此缓冲区,从而可以更新现实内容。 上面一副图的最左边接的是下面图的最右边。图3.6 开发板上点阵式LED的连接点阵LED寄存器组共8个字节寄存器,地址A4A3A2A1=从0000 到0111,按地址递增顺序分别对应点阵LED模块
19、从左到右的8个列。每个字节寄存器对应一列,字节寄存器内8 个位对应该列的8 个LED,从Bit0 到Bit7 分别对应从上到下的LED,如图3.7所示。图3.7 点阵式LED寄存器组3、4 LED 编程本次实验中,利用 LED驱动程序“s3c2410-led.o”提供的函数控制LED显示。可在相同目录下找到其源程序“s3c2410-led.c”进行分析。 3、4、1 7段LED的段码表由于开发板上两个数码管的连接是共阳极,分别显示“十位”和“个位”数字,中间是一个点号,总是让它置“1”。所以当想要其中之一显示为“0”时,那么其对应的段码应为“11000000”,转化为十六进制即为0xc0。同理
20、可以给出“1”“9”的段码,从而形成如下段码表:unsigned char LEDCODE10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;注意:前10个表示字符“0”“9”的段码,最后一个表示各段全灭,不显示。用户程序使用ioctl函数用来控制2个数码管的显示: ioctl(fd,0x12,LEDWORD);由于两个8字数码管需要同时显示,故需要将“十位”的段码左移8位,拼接上“个位”的段码,形成一个16位的LEDWORD。3、4、2 点阵式LED的显示缓冲区点阵式LED 驱动器逻辑中设置了8 个字节的缓冲区,每个字节按位对应点阵式LE
21、D 模块上的一列8个点。如要显示字符或图形,需要先给出对应点阵数据存储在缓冲区才能显示。图7所示的是字符“0”和心形图的点阵,参照图6分别给出各自8个字节中的数据为: “0”: 0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00 心形图: 0x00,0x0c,0x12,0x22,0x44,0x22,0x12,0x0c通过调用write函数控制点阵式LED显示对应字符或图形。图3.8 字符“0”和心形图的点阵 3、4、3 C语言编程 利用嵌入式实验平台和LED的工作原理,进行C语言编程,在本设计中的C语言编程见附录。四、实验环境连接1 、建立工作目录 rootzxt
22、smile# mkdir hello rootzxt smile# cd hello2、编写程序源代码用下面的命令来编写 hello.c 的源代码,进入 hello 目录使用 vi 命令来编辑代码: rootzxt hello# vi hello.c按“i ” 或者“a ” 进入编辑模式,将上面的代码录入进去,完成后按 Esc 键进入命令状态,再用命令“:wq” 保存并退出。这样我们便在当前目录下建立了一个名为 hello.c 的文件。进入/arm2410cl/exp/basic/10_led 目录,使用 vi 编辑器或其他编辑器阅读理解源代码 3、编译应用程序运行 make 产生 test_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 LINUX 嵌入式 LED 显示 设计 课程设计
链接地址:https://www.31ppt.com/p-2392691.html