嵌入式LED实验
石家庄铁道大学《嵌入式系统》实验报告--实验四 LED 驱动及控制实验实验者姓名:崔乐乐实验者学号:********同组人:孔维春实验者班级:信1201-2所在学院:信息科学与技术学院课程编号:L090211****:***报告完成日期:2015年4月 19 日1. 实验目的♦了解 ARM 设备外围电路结构与接口原理♦熟悉 Linux 系统下硬件驱动编程♦编程实现对嵌入式设备上 LED 灯的控制2. 实验内容♦阅读 UP-Magic6410 平台硬件文档,熟悉 ARM 处理硬件外围接口电路♦编程实现 UP-Magic6410 平台设备上 LED 驱动及应用测试程序3. 实验环境♦硬件:UP-Magic6410 型嵌入式实验平台,PC 机 Pentium 500 以上, 硬盘 40G 以上,内存大于 256M♦软件:Vmware Workstation +Fedora Core 8 + MiniCom/Xshell + ARM-LINUX 交叉编译开发环境4. 实验原理4.1 硬件接口原理♦ UP-Magic6410 魔法师实验套件 LED 硬件接口UP-Magic6410 魔法师实验套件上共有 5 个 LED 显示灯,分别接在 S3C6410X 处理器的 GPQ2、GPQ3、GPQ4、GPQ5、GPQ6 上。
5 个 LED 显示灯分别共阳极 3.3V 电压,因此相应 GPIO 低电平点亮,高电平熄灭。
如图 4.1.1 所示:♦ S3C6410 处理器 GPIO 寄存器S3C6410X 处理器的 GPIO 作为控制 I/O 要进行必要的设置才能对外设进行正确控制,此实验将相应 I/O 设置为输出模式,并向相应 I/O 数据寄存器进行写入数据便可控制 LED 的开关。
如下表 4.1.2 给出的 S3C6410X GPIO 寄存器配置:GPQ IO 寄存器列表:GPQ 配置寄存器:GPQ 数据寄存器:4.2 关键代码分析Linux 系统下,应用程序不可直接操作底层硬件寄存器,必须经过驱动层来完成对硬件的操作。
♦驱动程序分析:#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/miscdevice.h>#include <linux/delay.h>#include <asm/irq.h>#include <asm/arch/regs-gpio.h>#include <asm/hardware.h>MODULE_LICENSE("GPL");#define DEVICE_NAME "leds" //驱动名称#define DEVICE_MAJOR 231 //驱动主设备号#define DEVICE_MINOR 0 //驱动次设备号//声明字符设备类结构struct cdev *mycdev;struct class *myclass;dev_t devno;// LED GPIO 列表static unsigned long led_table [] = {S3C_GPQ2,S3C_GPQ3,S3C_GPQ4,S3C_GPQ5,S3C_GPQ6,};// LED GPIO 输出类型配置列表static unsigned int led_cfg_table [] = {S3C_GPQ2_OUTP,S3C_GPQ3_OUTP,S3C_GPQ4_OUTP,S3C_GPQ5_OUTP,S3C_GPQ6_OUTP,};// LED IOCTRL 处理函数,主要完成从用户空间传递数据进行 GPIO 引脚设置功能static int uptech_leds_ioctl(struct inode *inode,struct file *file,unsigned intcmd,unsigned long arg){switch(cmd) {case 0:case 1:if (arg > 6) {return -EINVAL;}// LED GPIO 设置函数接口s3c_gpio_setpin(led_table[arg], !cmd);return 0;default:return -EINVAL;}}// 驱动层 file_operations 接口函数初始化static struct file_operations uptech_leds_fops = {.owner = THIS_MODULE,.ioctl = uptech_leds_ioctl,};//驱动程序入口初始化函数,设置 LED GPIO、向内核注册设备。
static int __init uptech_leds_init(void){int ret;int i;// 注册 LED 设备devno = MKDEV(DEVICE_MAJOR, DEVICE_MINOR);//获取设备号mycdev = cdev_alloc();cdev_init(mycdev, &uptech_leds_fops);//初始化字符设备err = cdev_add(mycdev, devno, 1);//向系统添加 LED 设备if (err != 0)printk("s3c leds device register failed!\n");myclass = class_create(THIS_MODULE, "leds");if(IS_ERR(myclass)) {printk("Err: failed in creating class.\n");return -1;}//建立 LED 设备节点class_device_create(myclass,NULL, MKDEV(DEVICE_MAJOR,DEVICE_MINOR), NULL,DEVICE_NAME,DEVICE_MINOR);// LED GPIO 配置初始化for (i = 0; i < 5; i++) {s3c_gpio_cfgpin(led_table[i], led_cfg_table[i]);s3c_gpio_setpin(led_table[i], 1);}printk(DEVICE_NAME " initialized\n");return 0;}// 驱动卸载函数static void __exit uptech_leds_exit(void){// 注销 LED 驱动设备unregister_chrdev(LED_MAJOR, DEVICE_NAME);}// 声明驱动程序入口函数module_init(uptech_leds_init);// 声明驱动程序出口函数module_exit(uptech_leds_exit);♦应用程序分析:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/ioctl.h>int main(int argc, char **argv){int i;int on;int led_number;int fd;/*根据命令行参数内容,进行控制。
将命令行参数 1 设置成 LED number,参数 2 设置成 LED 点亮熄灭状态 on*/if (argc != 3 || sscanf(argv[1], "%d", &led_number) != 1 || sscanf(argv[2],"%d",&on) != 1 ||on < 0 || on > 1 || led_number < 0 || led_number > 5) {fprintf(stderr, "Usage:\n");fprintf(stderr, "\t ./led led_number on|off\n");fprintf(stderr, "Options:\n");fprintf(stderr, "\t led_number from 0 to 4\n");fprintf(stderr, "\t on: 1 off: 0\n");exit(1);}//打开 LED 设备节点fd = open("/dev/leds", 0);if (fd < 0) {perror("open device /dev/leds");exit(1);}//调用驱动层 ioctrl 接口,实现对 LED 控制ioctl(fd, on, led_number);for(i=0;i<100;i++)usleep(1000);//关闭 LED 设备接口close(fd);return 0;}5. 实验步骤♦实验目录:/UP-Magic6410/SRC/kernel/linux-2.6.21//UP-Magic6410/SRC/exp/diver/02_leds/♦在内核中添加 LED 设备模块驱动1、进入宿主机中 UP-UP6410-II 型光盘内核目录:[root@localhost ~]# cd /UP-Magic6410/SRC/kernel/linux-2.6.21/2、运行 make menuconfig 命令配置内核对 LED 模块的相关支持选择Device Drivers --->选项,如图进入 Character devices ---> 菜单选择<M> S3C LEDs Driver 模块方式编译 LED 驱动,如图:退出保存配置:3、重新编译内核,运行 make 命令[***********************.21]#makescripts/kconfig/conf -s arch/arm/KconfigCHK include/linux/version.hSYMLINK include/asm-arm/arch -> include/asm-arm/arch-s3c make[1]: `include/asm-arm/mach-types.h' is up to date. CHK include/linux/utsrelease.hCHK include/linux/compile.h…………最终在内核源码目录的 drivers/char/目录下生成 LED 驱动程序 s3c-leds.ko [***********************.21]#ls drivers/char/s3c-leds.kodrivers/char/s3c-leds.ko[***********************.21]#备注:以上在内核中添加对 LED 设备的支持的步骤,在 UP-Magic6410 设备出厂自带内核中已经默认添加进入了,用户可以省略以上步骤。
lcd显示实验报告嵌入式
lcd显示实验报告嵌入式LCD 显示实验报告嵌入式一、实验目的1、了解 LCD 显示屏的工作原理和基本结构。
2、掌握嵌入式系统中驱动 LCD 显示屏的方法和流程。
3、通过实验,能够实现简单的字符和图形在 LCD 屏上的显示。
二、实验原理1、 LCD 显示屏的工作原理LCD(Liquid Crystal Display)即液晶显示器,其工作原理是利用液晶分子在电场作用下的偏转来控制光的通过与否。
液晶分子在不加电场时,排列有序,光线可以通过;加电场时,液晶分子排列混乱,光线无法通过。
通过控制电场的有无和强弱,可以实现图像的显示。
2、嵌入式系统中驱动 LCD 显示屏的方式在嵌入式系统中,通常使用微控制器(如单片机)来驱动 LCD 显示屏。
驱动方式主要有两种:直接控制方式和间接控制方式。
直接控制方式是通过微控制器的GPIO 口直接与LCD 显示屏的控制引脚相连,通过编程控制引脚的电平来实现显示。
间接控制方式则是使用专门的液晶显示控制器芯片,微控制器通过与控制器芯片进行通信来实现对LCD 显示屏的控制。
三、实验设备1、嵌入式开发板(如 STM32 开发板)2、 LCD 显示屏(如 1602 液晶显示屏或 TFT 液晶显示屏)3、杜邦线若干4、电脑一台5、开发工具(如 Keil 软件)四、实验步骤1、硬件连接(1)将 LCD 显示屏的引脚与嵌入式开发板的相应 GPIO 口通过杜邦线连接。
连接时需要注意引脚的对应关系,通常可以参考开发板和显示屏的手册。
(2)确保连接牢固,避免接触不良导致实验失败。
2、软件编程(1)在开发工具中创建新的工程,选择相应的微控制器型号。
(2)编写驱动程序,包括初始化 LCD 显示屏、设置显示模式、写入显示数据等函数。
(3)在主函数中调用这些函数,实现具体的显示内容。
3、编译下载(1)对编写的程序进行编译,检查是否有语法错误。
(2)如果编译成功,将程序下载到嵌入式开发板中。
4、观察显示效果(1)给开发板上电,观察 LCD 显示屏上是否显示出预期的内容。
华南理工大学 -- 嵌入式实验报告
简单地说,就是在一个平台上生成另一个平台上的可执行代码。通过交叉编译工具, 我们就可以在 CPU 能力很强、存储空间足够的主机平台上(比如 PC 上)编译出针对其 他平台的可执行程序。
六、主要代码注释
1、动态加载的内核模块的编程实现 Code:
/* helloModule.c */ #include <linux/init.h>//包含了宏_init,_exit 的定义,_init 告诉编译程序相关的函数和变量仅 用于初始化 #include <linux/module.h>//该文件包含了对模块的结构定义以及版本控制,任何模块程序都 应该包含此头文件 #include <linux/kernel.h>//包含常用的内核函数 MODULE_LICENSE("Dual BSD/GPL");//将模块的许可协议设置为 BSD 和 GPL 双许可. static int __init hello_init(void)//内核模块初始化函数 {
clean: rm -rf hello *.o
开发板 Makห้องสมุดไป่ตู้file 文件:
# test for makefile
#CC = arm-linux-gcc #CFLAGS =
all : hello
hello: hello.o arm-linux-gcc hello.o -o hello
hello.o: hello.c arm-linux-gcc -c hello.c -o hello.o
嵌入式LED彩色异步显示屏控制系统的设计
和异步屏 的工作 方式。随后针 对现有 单 片机控 制 的 L D异步显 示屏 节 目简单 , E 附加 功能 少的缺点 , 出了基于 提
A M7 P D架构的嵌入 式 L D彩 色异步显示屏控 制 系统的设计 方案 。采用该方案控 制 的异步显 示屏节 目丰 R +C L E 富多彩 , 附加功 能强大, 性能稳 定可靠。文末对 A M9在 L D显示屏 控制 器领 域的应用进行 了展 望。 R E 关键词 : 嵌入 式系统 ; 异步显示屏 ; E L D显示屏控制 系统 ; 嵌入 式实3卷 第 5期
西 安 邮 电 学 院 学 报 J UR ALO IA NI RST O O TA E E OMMUNI A ON O N F X ’ N U VE I Y F P S ND T L C C TI S
Sp 20 e. 08 V 11 o 5 o.3N .
嵌 入 式 L D彩 色异 步 显 示 屏 控 制 系统 的设 计 E
陈 东
( 西安 邮电学院 电子 与信 息工程 系,陕 西 西安 702) 1 1 1
摘要 : 文章首先介绍 了嵌入式 系统和 A M 的相关知识 , R 然后介 绍了 L D显示屏的发展 状况 , E 并简要分析 了同步屏
一
类应用场合 , 主频最高可达 10 P , 3 MIS 支持大 多数 嵌入式操作系统 , R A M9和 A M9 R E在高性能和低 功耗特性方 面提供最佳 的性 能, R E还提供 了 A M9 增强的 D P运算功 能, S 适用于 中高端应用场合 , 其 主频最 高可 达 30 P 。删 1E除 了具 有 删 oMIS 0 系列 所共 有 的低 功 耗 、 性 能 的 特 点 外 , 性 能 比 高 其 A RM9系列 提高 了 近百 分 之 五 十 , 主频 最 高 可 达 其 40 P , 0MIS 主要 在一 些高端 产 品 中应 用 。 早期的 L D产品是单个的发光灯 , E 随着数字化 设 备 的 出现 ,E L D数 码管 和字 符 管 得 到 了广 泛 的应 用 ,E L D显示屏的出现 , 适应 了信息化社会发 展的 需要 , 成为大众传媒的重要工具【 。 2 J
基于嵌入式太阳能LED照明驱动系统设计与实现
2 系统 软硬 件设 计
系统的软硬件设计包括最大功率点跟踪 、 电流
电压检 测 、 温度 检测 、 光 线 检测 、 蓄 电池 和 L E D照 明
系统工作原理是 : 在有太阳光的时问段 , 太阳能 电池组将采集到的太 阳能转化为 电能 , 在嵌入式控 制 芯片 的控 制下 , 利 用 升 压 降压 双 模 式 拓 扑 电路 结 构, 采用 M P F F 方式 在智能充 电管理芯 片的协 助下 将 电能储存到蓄 电池组 中. 在L E D照明系统需要电 能供 电时, 采用 P WM控制驱动方式 , 向L E D光源提
第3 3 卷 l 期 2 0 1 4 年 第 3 月
J o u r n a l o f C h e n g d u U n i v e r s i t y( N a t u r a l S c i e n c e E d i t i o n )
成 都 大 学 学 报( 自然 科 学 版)
( 成都大学 电子信息工程 学院,四川 成都
摘
要: 从 高效利 用绿 色能源的 角度 出发 , 设计 了一款新型的基 于嵌入 式技 术的太 阳能 L E D照明驱 动 系统 . 系
统采 用 太 阳 能 电 池 发 电并 对 其 进 行 实时检 测 , 利用 P WM 对 升 降 压 I ) C / D C转 换 器 进 行 控 制 以 实 现 最 大 功 率 点
跟踪 充电控制和蓄 电池 的 智能 管理 , 利用L E D照 明 以提 高 能 源利 用率 . 系统 工作 可 靠性 , 具 有 实 用性 及 环
保性 .
关键 词 :太阳能; 最大功 率点跟踪 ; 嵌入式 ; L E D照明 ; 智能控 制
中图分类号 : T M 9 1 4 . 4 文献 标 志 码 : A
基于嵌入式系统点阵式LED显示屏数据输出速度优化分析
基于嵌入式系统点阵式LED显示屏数据输出速度优化分析摘要:在研究现有LED显示屏控制电路的基础上,本文以嵌入式系统为平台,针对输出函数优化与硬件电路改造方向,提出了提高数据输出速度的实现方法。
文中给了该方法的原理与实现过程,并探讨了在使用同一个高速信号源的前提下,读数据信号与屏幕显示等控制信号衔接配合的工作过程。
此方法如果与FPGA/CPLD改造、使用更高频率单片机的方式相结合,将会进一会提高显示屏控制电路的性能。
实验得出,改造电路可以高至单片机主频的1/4频率送出显示数据。
关键词:嵌入式LED显示屏高速输出软、硬件优化在点阵式LED显示屏显示系统中,由于显示面积的不断增大,显示色彩的日益丰富,使得提高数据的输出速度成为显示屏显示系统中要解决的瓶颈问题。
目前,要提高显示系统数据的输出速度,除了输出电路比较复杂的采用FPGA/CPLD芯片进行替代外,主要采用的是提高显示系统控制板单片机主频的方法。
本文以LED显示屏控制卡为例,给出了在软件优化及硬件电路改造方向上提高显示数据输出速度的实现办法,该方法适用于以嵌入式系统为核心的各种LED显示屏控制卡。
1 输出函数优化在编写输出函数时,为了提高数据的输出速度,应尽量减少循环体的使用。
特别是从存储器中读数据的代码段部分,应尽量把循环结构改成平铺顺序结构。
这样做虽然使输出函数的代码增加不少,但对于目前的微处理器内嵌的Flash存储器来说,增加的代码段占用空间的比例是比较小的,但程序却大大减小了每字节数据输出所耗费的机器周期,经过测算,数据输出速度提高了30%。
需要注意的是,如果用C语言编写代码,一定要查看确认所产生的汇编代码与所设计代码的一致性,否则容易产出冗余代码,增大程序运行耗时。
2 基于信号复用的电路优化在数据输出到LED显示屏的过程中,需要同时产生不少输出控制信号。
如锁存器,收发器及显示屏显示需要的控制信号(LED单元板中HC595的SCK移位、RCK锁存、E使能信号,LED显示屏的显示原理见参考[1],本文不再论述)。
LED点阵实验报告.doc
LED点阵实验报告.doc
一、实验原理
LED点阵是一种由LED灯组成的自发光点阵,将多个灯组合排列在一起,可以显示多
种字符、数字、图形等。
每个LED灯有两个引脚,一个接正极,一个接负极,灯的亮度和
颜色与流过它的电流有关。
因此,通过控制不同位置的电流大小,就可以实现点阵任意数
字或字符的显示。
二、实验器材
1、STM32F103C8T6单片机板
2、2个16pin DIP 74HC595N移位寄存器
3、1个常规电子元件组
4、300x3mm LED 点阵共阴(10x10)
三、实验过程
2. 然后按下当前电路连接 LED 点阵、74HC595 移位寄存器和 STM32 单片机板的方
法进行连接。
3. 编写程序,把字符的二进制代码转换成数字,然后发送到移位寄存器,以控制
LED 点阵显示字符。
4. 烧录程序到 STM32 单片机板上。
5. 连接电源以运行程序,控制LED点阵实现数字或字符的显示。
四、实验结果
LED 点阵成功实现了数字、大写和小写字母的显示。
在实验过程中,遇到了一些问题,例如通过微调电压来控制LED亮度的问题,以及在程序中输入字符的编码的问题。
但是,
通过多次尝试和修改,最终成功地解决了这些问题,得到了令人满意的结果。
LED点阵实验不仅可以增强学生对电子元件的了解,同时也可以提高学生的编程能力,使学生更好地理解并掌握单片机的相关知识。
在实验过程中,建议多做实验练习,不断探
索和尝试,更好地理解和掌握相关知识。
基于嵌入式跟踪太阳LED交通灯的设计
1跟踪 方案
该 跟踪 器采用 地 平 坐 标 系跟 踪 方 式 , 要 由水 主 平 回转转 台 、 直 回转转 台 、 垂 2台步 进 电机 以及太 阳
能电池组成。太阳能 电池固定在 台架平 面上 , 水平 转台相当于太阳能电池的方位轴 , 1 由 台步进 电机 驱动 , 绕垂直于当地水平面的轴旋转 , 用以跟踪太阳 的方位角, 其控制流程为 : 步进 电机一谐 波减速器 ( 降速增矩 、 角度细分) 一水平 回转转台。减速器的 传动比为 110 电机转动 10时水平转台相应转 :2 , 2。 动 1, 。以步进电机 03 。 .6的步距角计算, 当水平转台
本 系统 采用 t / -I 为操 作 系统 , / - t OSI作 C C OS I属于抢先式剥夺 型实时内核 , I 永远保证优先级最 高的就绪任务的运行。u / SI可 以完成各 任务 CO - I
之间的调度和同步 , 协调硬件资源。各个任务 之间 通过信号量 、 邮箱 、 消息队列等通信机制进行数据共 享及任务通信。基于 u / S I C O 4 嵌入式操作系统平 台编程的关键在于任务 的划分 以及优先级 的确定。 负责任务 的调度和任务 间通信 。本系统一共设有 5 个任务 : 跟踪任务 、 界面交互任务 、 交通指示任务 、 充 电保护任务和网络服务任务 。跟踪任务在就绪状态 下被实时时钟 中断唤醒 , 任务实现如 图 2 。同时该 任务还可以和网络服务任务和界面交互任务通信, 接受用户的参数更改。界面任务选择在串口终端或 L D上显示用 户信息, C 并接受键盘输入 , 根据输入 对系统 工 作参 数 、 示方 式等 做 出相应 调整 , 显 或将 指 令传递给跟踪任务 。网络任务实现远程监控通信。 5 个任务 的优先级安排从高到低 为: 电保护 充 任务——界面任务——跟踪任务——网络服务—— 交通 指示 任务 。
嵌入式技术在异步LED显示屏控制系统中的应用
中图分 类号 : N 1 +8 T 32 . g p ia i n i y c r n u n r l e d d Te h o o y S Ap l t As n h o o s Co to c o n Sy t m f ED s ly se o L Dipa
Ma . 00 总第 12 y2 1, 1 期
收稿 日期 :O O 0 — 3 2 l一 4 2
徐永福等 : 嵌入式技术在异步 L D显示屏控制系统 中的应用 E
台式机 的操作 系统 完 全不 同。 目前 国 内 的异 步 L D显 示屏 控 制 系 统 多 采 用 E 传 统 的 8位 或 1 单 片 机 +板 载 F s 6位 l h的 系 统 架 a 构 。 由于单 片机 数据 处理 能力 差 , 外围 接 口简单 , 很
摘
要: 文章主要介 绍嵌 入式技 术在异 步 L D 显 示屏 控 制 系统 中的应 用。首先 阐释 了嵌入式技 E
术和异 步 L D 显 示屏 控制 系统 的发展 现状 , E 然后 具体 介 绍嵌入 式异 步 L D 显 示屏控 制 系统 的 E
实现 方 式 和 特 点 。 关 键 词 :E 显 示屏 ; 制 系统 ; 入 式 技 术 LD 控 嵌
XU n - u W ANG a - h o Yo g f , Xio c a
( NG ON E N OGY C .Ld, i nSha x 7 0 5 C ia Xl QI S G T CH OL AN o, t.X a n i 1 6 , hn ) a 0
Ab t c: T i a e m a e E b d e e h oo y o p l a in n s n h o o s E sr t hs a p p r k s m e d d t c n lg f a pi t i a y c r n u L D c o ds ly c n r l y t m . Frt ito u e E b d e e h oo y a d s n h o o s E ipa o to s s e i , n r d c s m e d d t c n lg n a y c r n u L D s ds lyc n r y t m fd v lp e t t r s n . e , e ald ito u e m b d e ED ipa o tol se o e eo m n e e t Th n d t i r d c s E s a p e n e d dL ds lyc n r l y t m fsr c u ea d tat ipa o to s e o tu t r n r i s . Ke wors E ds ly c n r l y t m ; m b d e e h oo y y d :L D ipa ; o to se s e e d dt c n lg
嵌入式实习报告三篇
嵌入式实习报告 篇2
此次设计我们采用以LM3S2100为微控制器,并通过硬件和软件两方面设计,结合6位LED数码管,放大整形电路,来实现频率计在嵌入式系统中的开发与应用。
在易嵌短暂的两个月,我们从linux基础入手,强化了c语言编程,学习了linux系统编程和网络编程。时间虽短,但成长很快,无论是理论知识还是实践能力都得到了大幅度的提高。在这里将理论和实践相结合,相互促进,相互补充,使得学习更加透彻。通过用不同方法实现同一个项目,不断深入,层层推进,学以致用!
在易嵌的这个暑假,我过得充实而快乐。在这里有着同学间的探讨、师生间的互动和魔鬼般的训练!在我丰富多彩的人生路上留下了永远亮丽与难忘的记忆!
VF/VHF/UHF频段的频率,也十分方便和准确。PTS2600使用一个12位数字的LCD液晶显示屏来显示所测得的频率、闸口时间(分辨率相关)、菜单功能以及频率表的测量结果。所有这些数值都是同时显示在一个屏幕上的。PTS2600的机箱采用高标准的铝质材料制成,各模块安装在下方有钢板支承的母板上。模块相对独立,维修方便,主要通过更换模块进行。 我国利用相检宽带测频技术设计的高精度频率计也非常具有突破性和实用性。该项新技术及仪器是针对已有测频技术的特点及存在问题,推出完全新颖的检测精度高、便于实施且设备构成又比较经济的一种新技术及仪器。
被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被测信号的频率相同。当1s信号来到时,被测脉冲信号进入芯片相关的,计数器开始计数,直到1s信号结束时,停止计数。若在1s时间内计数器计得的脉冲数为N,则被测信号频率fX?Nhz。
嵌入式大屏幕LED显示屏的设计与实现
嵌入式大屏幕LED显示屏的设计与实现时间:2007-12-20浏览3046次【字体:大中小】1 引言/">LED显示屏的应用已经比较普遍,而且随着应用的普及,更多新式的LED显示屏会应用在更多的场合,所以研究嵌入式大屏幕点阵LED的显示很有实际意义。
但是现在市场上的多种LED显示屏在显示性能上良莠不齐,并且大多需要上位机对显示过程进行实时控制。
本文提出一种优化的高性能高可靠性的嵌入式大屏幕LED显示系统,只需要用1片FPGA和2片SRAM就可以实现大屏幕LED显示的驱动和内容更换,可以说其性能已经大有改善。
本设计可以应对多种大屏幕显示的场合。
2 系统硬件设计与实现硬件连接的方式多种并且灵活,其连接方式直接影响到显示的性能。
下面给出的硬件连接方式是最优的方式,能够达到高性能的显示,并且使软件编写变得简单。
每个8×8的LED点阵块称为最小模块。
每16个8×8的LED点阵块为一个基模块,一个基模块横向有8个,纵向有2个最小模块,如图1所示。
图中每个小方格代表一个最小模块。
每个最小模块控制信号为8个行信号H1~H8和8个数据信号R1~R8。
行信号接一个38译码器74HC138的输出,他的输入为HangQ[2..0];而列信号给具体这一行的数据信号接的是一个74HC595的输出,如图2所示。
74HC595是移位锁存芯片,他内部有一个移位寄存器,还有一个数据移入引脚(DS)、一个数据移出引脚(Q8)、8个数据输出引脚(Q1~Q8),另外还有脉冲信号(CLK)和数据锁存信号(ST)。
他的工作原理是当脉冲信号作用时将移入引脚的数据移入芯片内部的移位寄存器,当移满8位数据以后,第8位的数据就会出现在数据移出引脚上,再给一个脉冲信号,这一位数据就会被移出同时也有新的数据移入。
当数据锁存信号有效时,芯片内部的的移位寄存器就将8位数据就锁存到8个数据输出引脚上,从而实现数据输出。
对于一个最小模块,当数据信号R有效后,时钟信号TSCK就将该数据移入74HC595的内部寄存器,内部寄存器的8位全部移满数据后,锁存信号TLOCK有效,就能将移满的数据全部送到8个数据信号R1~R8上。
