好文档 - 专业文书写作范文服务资料分享网站

嵌入式系统设计实验六

天下 分享 时间: 加入收藏 我要投稿 点赞

实验六 8字数码管和点阵数码管实验 ....................... 错误!未定义书签。

实验目的 ............................................. 错误!未定义书签。 实验内容 ............................................. 错误!未定义书签。 预备知识 ............................................. 错误!未定义书签。 实验设备及工具 ....................................... 错误!未定义书签。 实验原理 ............................................. 错误!未定义书签。 、程序分析 ........................................... 错误!未定义书签。 实验步骤 ............................................. 错误!未定义书签。 八、思考题 ........................................... 错误!未定义书签。

实验六 8字数码管和点阵数码管实验

实验目的

学习LED的相关知识

掌握74HC273芯片的工作原理 了解SPI接口的相关知识

实验内容

学习LED相关知识,了解74HC273芯片对LED点亮的工作机制,熟练阅读74HC273芯片资料,掌握对它的使用。

预备知识

有C语言基础

掌握在Linux下常用编辑器的使用 掌握Makefile 的编写和使用

掌握Linux下的程序编译与交叉编译过程

需要部分数字电路的知识

实验设备及工具

硬件:UP-TECH S2410/P270 DVP嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。 软件:PC机操作系统REDHAT LINUX +MINICOM+ARM-LINUX开发环境

实验原理

6.5.1、LED知识

1.什么是LED

在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会 把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反 向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制 作的二极管叫发光二极管,通称LED。 LED的发光颜色和发光效率与制作LED的材料和工艺有关,目前广泛使用 的有红、绿、蓝三种。由于LED工作电压低(仅),能主动发光且有 一定亮度,亮度又能用电压(或电流)调节,本身又耐冲击、抗振动、寿命 长(10万小时),所以在大型的显示设备中,目前尚无其他的显示方式与 LED显示方式匹敌。 把红色和绿色的LED放在一起作为一个像素制作的显示屏叫双基色屏或 伪彩色屏;把红、绿、蓝三种LED管放在一起作为一个像素的显示屏叫三基 色屏或全彩屏。制作室内LED屏的像素尺寸一般是2-10毫米,常常采用把几 种能产生不同基色的LED管芯封装成一体,室外LED屏的像素尺寸多为12-26 毫米,每个像素由若干个各种单色LED组成,常见的成品称像素筒或像素模 块。 LED显示屏如果想要显示图象,则需要构成像素的每个LED的发光亮度都 必须能调节,其调节的精细程度就是显示屏的灰度等级。灰度等级越高,显 示的图像就越细腻,色彩也越丰富,相应的显示控制系统也越复杂。在当前 的技术水平下,256级灰度的图像,颜色过渡已十分柔和,图像还原效果比 较令人满意。 资料显示,LED光源比白炽灯节电87%、比荧光灯节电50%,而寿命比白 炽灯长20~30倍、比荧光灯长10倍。LED光源因具有节能、环保、长寿命、安 全、响应快、体积小、色彩丰富、可控等系列独特优点,被认为是节电降能 耗的最佳实现途径。

6.5.2、LED数码管电路图

其中各个引脚的功能在下面都有描述。

6.5.3、74HC273在开发板上的连接

74HC273在8字数码管中开发板中的连接如图2.5.1所示:

开发板设置2 个数码管,由74HC273 控制。74HC273是同步串行转并行的锁存器,在此通过SPI 总线和CPU 连接,锁存数据后驱动数码管发光。

上面一副图的最左边接的是下面图的最右边。

、程序分析

重要代码片断分析如下:

unsigned char LEDCODE[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};间那一横为g,如果要显示为0的话,由于在开发板中的连接是共阳极(请参考我们的电路图),所以只需要满足a,b,c,d,e,f为0即可,而g为1,因为两个数码管的中间是个点号,我们用h表示,并且总是让它置为1。因为我们在开发板的连接上可以看到a对应d0,b对应d1,..........h对应d7,所以当想显示为0的时候,那么应该是。转化成为16进制的数据,也就成了0Xc0.对应我们在LEDCODE【10】数组中的第一位。其他的每一位值,大家可以根据上面的方法依次类推。 在for循环中我们写了如下语句。 LEDWORD=(LEDCODE[i]<<8)|LEDCODE[9-i]; 那是因为LEDWORD是一个16位的数。我们是需要将两个8字数码管同时显示,所以将LEDCODE[i]左移8位,然后再加上个位使得十位和个位同时显示。 至于显示点阵数码管还是显示8字数码管,主要是通过IOCTL函数中的命令来实现的,也就是在代码中出现的 ioctl(fd,0x12,LEDWORD); ioctl(fd,0x11,LEDWORD); 下面分析这个IOCTL函数的原型 static int s3c2410_led_ioctl (struct inode *inode, struct file *filp, unsigned int cmd, unsigned int arg) { 3c3c3c3c3c4l -Wall -O -D__KERNEL__ -DMODULE -I/home/kernel/linux-2.4.18-2410cl/include 3c -o 3c armv4l-unknown-linux-gcc -I.. -Wall -O -D__KERNEL__ -DMODULE -I/home/kernel/linux-2.4.18-2410cl/include -c -o [root@BC 2410-Classics LED]# ls Makefile readme 3c 3c test_led 3、下载调试

切换到minicom终端窗口,使用NFS mount开发主机的/root/share到/host目录,然后进入/host/exp/basic/10_led目录,用insmod 3c命令插入led驱动,并用 lsmod命令查看是否已经插入。

[/mnt/yaffs]mount -t nfs /host [/host/exp/basic]cd 10_led/ [/host/exp/10_led]ls Makefile readme 3c 3c test_led [/host/exp/10_led]insmod 3c Using 3c 0-numeric tube : Dprintk device open s3c2410-hc273 initializedUsing [/host/exp/10_led]lsmod Module Size Used by Tainted: P s3c2410-led 2048 0 (unused) [/host/exp/10_led]./test_led 即可以看到8字数码管和点阵数码管工作。 4、修改程序,使两个8字型的数码管成为秒表;点阵型的数码管成为图形或汉字。

自己修改程序,完成秒表和图形汉字的设计。具体要求如下:

秒表:从00、01、02、03、04、05、06、07、08、09、10、11……58、59又跳回00. 图型:比如在8*8的点阵数码管上画出3点整的图形如图所示:

汉字:比如,出入平安、欢迎光临等字样,在实验课上能完成单个汉字显示已经很不错,请

思考多个汉字逐字显示和滚动显示怎样完成

八、思考题

1.LED是如何正常工作的。 2.HC273的特点及使用方法。

嵌入式系统设计实验六

实验六8字数码管和点阵数码管实验.......................错误!未定义书签。实验目的.............................................错误!未定义书签。实验内容.............................................错误!未定义书签。预备知识..........
推荐度:
点击下载文档文档为doc格式
2s3vc0odf99lpyv23wwc1symv1joq10079x
领取福利

微信扫码领取福利

微信扫码分享