爱玩科技网
您的当前位置:首页嵌入式系统原理与设计实验报告

嵌入式系统原理与设计实验报告

来源:爱玩科技网


嵌 入 式 系 统 实 验 报 告

指导教师: 学科专业: 班 级: 学 号: 姓 名:

2014年6月

前 言

从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史,并在全世界各行业得到广泛应用。嵌入式系统产品的研制和应用已经成为我国信息化带动工业化、工业化促进信息化发展的新的国民经济增长点。经过几十年的发展,嵌入式系统已经在很大程度改变了人们的生活、工作和娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类,每类都具有自己独特的个性。例如,MP3、数码相机与打印机就有很大的不同。汽车中更是具有多个嵌入式系统,使汽车更轻快、更干净、更容易驾驶,机顶盒、高清电视、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等,都是典型的嵌入式系统。事实上,几乎所有带有一点“智能”的家电(全自动洗衣机、电脑电饭煲…)都是嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听、工作场所甚至健身设备中到处都有嵌入式系统。

高端的嵌入式系统和工业软件的发展, 实际上与我们对该行业最先进的科学技术前沿的掌握有关,换言之,与我国该行业的科学技术水平有关。学习和研究嵌入式系统,具有重大意义。

这学期的嵌入式系统的学习过程中我们在2410RP这一实验开发平台上进行了诸多嵌入式的基础实验。在本报告中,将把其中两个具有代表性的实验的原理、

内容、结果以及驱动和测试程序写出来。

目 录

实验一 数码管显示 ........................................................... 1

实验目的 ................................................................ 1 实验内容 ................................................................ 1 实验原理 ................................................................ 1

LED的发光原理 ..................................................... 1 八段LED显示器 ...................................................... 2 芯片zlg72A的介绍 ................................................. 3 数码管的连接电路 .................................................... 3 实验步骤 ................................................................ 4 实验源代码解释与说明 .................................................... 4 总结.................................................................... 5 实验二 LED点阵驱动实验 ..................................................... 5

实验目的 ................................................................ 5 实验内容 ................................................................ 5 实验原理 ................................................................ 5

8X8点阵数码管发光原理 ............................................. 5 数码管的连接电路 .................................................... 6 I/O接口 ........................................................... 6 实验步骤 ................................................................ 6 实验源代码解释与说明 .................................................... 6 实验结果 ................................................................ 9 总结.................................................................... 9

实验一 数码管显示

实验目的

学习串并转换的相关知识,并编写驱动程序。

实验内容

1)了解数码管显示的工作原理; 2)掌握数码管驱动的编写及测试过程; 3)对zlg72A的驱动程序进行编写; 4)驱动数码管并显示个人学号。

实验原理

LED的发光原理

LED(Light Emitting Diode),即发光二极管。是一种半导体固体发光器件。它是利用固体半导体置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。

发光二极管的核心部分是由p型半导体和n 型半导体组成的晶片,如图所示,在p型半导体和n型半导体之间有一个过渡层,称为p-n结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。

图1-1 LED发光原理图

八段LED显示器

八段LED显示器由8个发光二极管组成,如图1-2、图1-3所示。基中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED 显示器。

共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba 对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,显示器显示\"P\"字符,即对于共阴极LED 显示器,“P”字符的字形码是73H。如果是共阳LED显示器,共阳极接高电平,显示“P”字符的字形代码应为(8CH)。这里必须注意的是:很多产品为方便接线,常不按规则的方法去对应字段与位的关系,这时字形码就必须根据接线来自行设计了。

图1-2 LED数码管组成图

图1-3 LED数码管原理图

芯片zlg72A的介绍

zlg72A是一片具有串行接口的可同时驱动8位共阴式数码管或只LED的智能显示驱动芯片该芯片同时还可连接多达 键的键盘矩阵单片即可完成LED显示﹑键盘接口的全部功能。zlg72A内部含有译码器可直接接受BCD码或16进制码并同时具有2 种译码方式参看后文此外还具有多种控制指令如消隐﹑闪烁﹑左移﹑右移﹑段寻址等zlg72A具有片选信号可方便地实现多于8位的显示或多于键的键盘接口。

芯片zlg72A的典型应用:仪器仪表、工业控制器、条形显示器、控制面板。

芯片zlg72A的特点:

1)串行接口无需外围元件可直接驱动LED; 2)各位控制译码/不译码及消隐和闪烁属性; 3))循环左移/ 循环右移指令; 4)具有段寻址指令方便控制LED; 5)键键盘控制器内含去抖动电路。 数码管的连接电路

图1-4 数码管连接电路

实验步骤

1)连接号宿主PC机与一台S3C2410-RP目标板; 2)编写数码管驱动程序文件;

3)启动系统终端设置S3C2410-RP目标板的地址;

4)将宿主PC机的根目录挂载到S3C2410-RP目标板的mnt目录下; 5)加载驱动程序; 6)执行并测试程序。

实验源代码解释与说明

A. 头文件

#ifndef __KEYPAD_H__ #define __KEYPAD_H__ 驱动程序源文件

#include nit_module 返回0以表示初始化成功。返回负数表示失败。

void cleanup_module() {

devfs_unregister_chrdev( spi_led_MAJOR, \"spi_led\" ); devfs_unregister( spi_led_handle ); free_irq(IRQ_spi_led_INT, NULL);

}

7]、

DATA[8..15]分别对应系统数据线的低16位,LED_LOCK信号是由系统总线的写信号和地址信号经简单的逻辑组合而得,在板载的CPLD内完成,控制该显示模块的I/O地址为0x08000000。

实验步骤

1)连接号宿主PC机与一台S3C2410-RP目标板; 2)编写LED点阵驱动程序;

3)编写LED点阵显示测试程序,并编译;

4)启动Linux系统终端并设置S3C2410-RP目标板的地址; 5)将宿主PC机的根目录挂载到S3C2410-RP目标板的mnt目录下; 6)加载LED点阵驱动程序; 7)执行并测试程序。

实验源代码解释与说明

A.驱动程序源文件

#include nit_module返回0以表示初始化成功。返回负数表示失败。

void cleanup_module()

{devfs_unregister_chrdev( led_ary_MAJOR, \"led_ary\" );/*字符设备解除注册*/

devfs_unregister( dev_handle ); } LED点阵显示设置程序文件: include<> //标准I/O库 #include

#include<>//文件控制,用于文件及其描述符的操作控制常数符号的定义 #include<> //unix类系统定义符号常量的头文件 #include <> //该头文件定义了实用程序库函数 #include //基本系统数据类型头文件 #include //文件状态

int main() //主程序入口 {int fd ; 况

int i,ret; int buf;

fd=open(\"/dev/led_ary\获取LED点阵驱动程序加载情

if (fd<0)

{ //fd为0,则表示设备驱动正常开启

printf(\"Open device SimpleD error\\n\");}

else

{ //fd为1,则设备驱动已经开启

printf(\"Open device SimpleD success\\n\");}

for(;;)//向LED点阵进行赋值,控制发光二极管的亮灭,最终实现在点阵中显示出“王”字

{

buf=0Xfe3e; //向点阵第一行进行赋值(点阵中低位在前、高位在后)

write(fd,&buf,buf);

buf=0Xfd08; //向点阵第二行进行赋值 write(fd,&buf,buf); buf=0Xfb08;

write(fd,&buf,buf); buf=0Xf73e;

write(fd,&buf,buf); buf=0Xef08; write(fd,&buf,buf); buf=0Xdf08; write(fd,&buf,buf); buf=0Xbf7f;

write(fd,&buf,buf); buf=0X7f00;

write(fd,&buf,buf);

} }

return 0;

实验结果

总结

通过本次实验,我学习到了LED点阵的工作原理,了解到了LED点阵其各点逻辑地址的分布。同时,对嵌入式系统有了更明确的认识。通过实验中的实际操作,也了解了基于嵌入式开发的基本流程。在老师的指导下,完成了对LED点阵的显示控制,显示得到了自己的姓“王”。

因篇幅问题不能全部显示,请点此查看更多更全内容