2022年嵌入式系统原理与设计实验报告.pdf
《2022年嵌入式系统原理与设计实验报告.pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式系统原理与设计实验报告.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统原理与设计实验报告嵌 入 式 系 统 实 验 报 告指导教师 : 学科专业 : 班级: 学号: 姓名: 2014年 6 月精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 21 页 - - - - - - - - - - 嵌入式系统原理与设计实验报告前言从 20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用 ,嵌入式系统已经有了近30 年的发展历史 ,并在全世界各行业得到广泛应用。嵌入式系统产品的研制与应用已经成为我国信息化带动工业化、工业化促进信息化发展的新
2、的国民经济增长点。经过几十年的发展,嵌入式系统已经在很大程度改变了人们的生活、工作与娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类 ,每类都具有自己独特的个性。例如,MP3、数码相机与打印机就有很大的不同。汽车中更就是具有多个嵌入式系统,使汽车更轻快、更干净、更容易驾驶 ,机顶盒、高清电视、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等,都就是典型的嵌入式系统。事实上,几乎所有带有一点 “ 智能” 的家电 (全自动洗衣机、电脑电饭煲 ) 都就是嵌入式系统。嵌入式系统广泛的适应能力与多样性,使得视听、工作场所甚至健身设备中到处都有嵌
3、入式系统。高端的嵌入式系统与工业软件的发展, 实际上与我们对该行业最先进的科学技术前沿的掌握有关 ,换言之 ,与我国该行业的科学技术水平有关。学习与研究嵌入式系统 ,具有重大意义。这学期的嵌入式系统的学习过程中我们在2410RP这一实验开发平台上进行了诸多嵌入式的基础实验。 在本报告中 ,将把其中两个具有代表性的实验的原理、内容、结果以及驱动与测试程序写出来。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 21 页 - - - - - - - - - - 嵌入式系统原理与设计实验报告目录实验一
4、数码管显示 . 1 1、1 实验目的 . 1 1、2 实验内容 . 1 1、3 实验原理 . 1 1、 3、1 LED 的发光原理 . 1 1、 3、2 八段 LED 显示器 . 1 1、 3、3 芯片 zlg7289A 的介绍 . 2 1、 3、4 数码管的连接电路. 3 1、4 实验步骤 . 3 1、5 实验源代码解释与说明. 3 1、6 总结 . 10 实验二LED 点阵驱动实验. 11 2、1 实验目的 . 11 2、2 实验内容 . 11 2、3 实验原理 . 11 2、 3、1 8X8 点阵数码管发光原理. 11 2、 3、2 数码管的连接电路. 11 2、 3、3 I/O 接口
5、. 12 2、4 实验步骤 . 12 2、5 实验源代码解释与说明. 13 2、6 实验结果 . 17 2、7 总结 . 17精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 21 页 - - - - - - - - - - 嵌入式系统原理与设计实验报告实验一数码管显示1、1 实验目的学习串并转换的相关知识 ,并编写驱动程序。1、2 实验内容1)了解数码管显示的工作原理; 2)掌握数码管驱动的编写及测试过程; 3)对 zlg7289A 的驱动程序进行编写 ; 4)驱动数码管并显示个人学号。1、3
6、 实验原理1、3、1 LED 的发光原理LED(Light Emitting Diode), 即发光二极管。就是一种半导体固体发光器件。它就是利用固体半导体置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用 ,所以 LED 的抗震性能好。发光二极管的核心部分就是由p 型半导体与 n 型半导体组成的晶片 ,如图所示,在 p 型半导体与 n 型半导体之间有一个过渡层,称为 p-n 结。在某些半导体材料的 PN 结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来 ,从而把电能直接转换为光能。 PN 结加反向电压 ,少数载流子难以注入 ,故不发光。这种利用注入
7、式电致发光原理制作的二极管叫发光二极管,通称 LED。当它处于正向工作状态时(即两端加上正向电压 ),电流从 LED 阳极流向阴极时 ,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。图 1-1 LED 发光原理图1、3、2 八段 LED 显示器八段 LED 显示器由 8 个发光二极管组成 ,如图 1-2、图 1-3 所示。基中 7 个长条形的发光管排列成“ 日” 字形,另一个贺点形的发光管在显示器的右下角作为精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 21 页 - - -
8、 - - - - - - - 嵌入式系统原理与设计实验报告显示小数点用 ,它能显示各种数字及部份英文字母。LED 显示器有两种不同的形式:一种就是 8 个发光二极管的阳极都连在一起的,称之为共阳极LED 显示器 ;另一种就是 8 个发光二极管的阴极都连在一起的,称之为共阴极 LED 显示器。共阴与共阳结构的LED 显示器各笔划段名与安排位置就是相同的。当二极管导通时 ,相应的笔划段发亮 ,由发亮的笔划段组合而显示的各种字符。8 个笔划段 hgfedcba 对应于一个字节 (8 位)的 D7 D6 D5 D4 D3 D2 D1 D0, 于就是用 8 位二进制码就可以表示欲显示字符的字形代码。例如
9、,对于共阴 LED 显示器 ,当共阴极接地(为零电平 ),而阳极 hgfedcba各段为 0111011时,显示器显示 P字符,即对于共阴极 LED 显示器 , “P”字符的字形码就是 73H。 如果就是共阳 LED 显示器 ,共阳极接高电平 ,显示“P”字符的字形代码应为10001100(8CH)。这里必须注意的就是 :很多产品为方便接线 ,常不按规则的方法去对应字段与位的关系,这时字形码就必须根据接线来自行设计了。图 1-2 LED 数码管组成图图 1-3 LED 数码管原理图1、3、3 芯片 zlg7289A 的介绍zlg7289A 就是一片具有串行接口的可同时驱动8 位共阴式数码管或
10、64 只独立 LED 的智能显示驱动芯片该芯片同时还可连接多达64 键的键盘矩阵单片即可完成 LED 显示键盘接口的全部功能。zlg7289A 内部含有译码器可直接接受BCD 码或 16进制码并同时具有 2 种译码方式参瞧后文此外还具有多种控制指令如消隐闪烁左移右移段寻址等zlg7289A 具有片选信号可方便地实现多于 8 位的显示或多于 64 键的键盘接口。芯片 zlg7289A 的典型应用 :仪器仪表、工业控制器、条形显示器、 控制面板。芯片 zlg7289A 的特点 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - -
11、 - - - -第 5 页,共 21 页 - - - - - - - - - - 嵌入式系统原理与设计实验报告1)串行接口无需外围元件可直接驱动LED; 2)各位独立控制译码 /不译码及消隐与闪烁属性 ; 3)循环左移 / 循环右移指令 ; 4)具有段寻址指令方便控制独立LED; 5)64 键键盘控制器内含去抖动电路。1、3、4 数码管的连接电路图1-4 数码管连接电路1、4 实验步骤1)连接号宿主 PC 机与一台 S3C2410-RP目标板; 2)编写数码管驱动程序spi_led、c 文件; 3)启动系统终端设置S3C2410-RP目标板的地址 ; 4)将宿主 PC 机的根目录挂载到S3C2
12、410-RP目标板的 mnt 目录下 ; 5)加载驱动程序 ; 6)执行并测试程序。1、5 实验源代码解释与说明A、 头文件 keypad、h 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 21 页 - - - - - - - - - - 嵌入式系统原理与设计实验报告#ifndef _KEYPAD_H_ #define _KEYPAD_H_ /Keypad 扫描码#define KEYPADNUMLK 0 x33 #define KEYPADDIV 0 x34 #define KEYPADM
13、UL 0 x35 #define KEYPADSUB 0 x3d #define KEYPADADD 0 x2e #define KEYPADENTER 0 x1e #define KEYPADDOT 0 x15 /DEL #define KEYPAD0 0 x14 /INS #define KEYPAD1 0 x1b /END #define KEYPAD2 0 x1c /DOWN #define KEYPAD3 0 x1d /PDN #define KEYPAD4 0 x23 /LEFT #define KEYPAD5 0 x24 #define KEYPAD6 0 x25 /RIGHT
14、#define KEYPAD7 0 x2b /HOME #define KEYPAD8 0 x2c /UP #define KEYPAD9 0 x2d /PUP #endif 头文件定义了嵌入式开发板上输入键盘各个按键的逻辑地址。B、 驱动程序源文件spi_led、c #include /config、h 内核配置头文件#include /kernel、h 定义了经常用到的函数原型及宏定义#include /module、h 定义了内核模块相关的函数、变量及宏#include /sched 、h 为调度程序头文件 ,定义了任务结构#include /interrupt、h 中包含了与操作系统中
15、断相关的大部分宏及 struct结构的定义#include #include /init、h 中定义了驱动的初始化与退出相关的函数#include #include #include /version、h 里定义了 Linux 内核的版本 ,用于版本检查#include /I/O 头文件 ,定义对 I/O 端口操作的函数#include #include /访问系统硬件的头文件/- #include 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 21 页 - - - - - - - - -
16、- 嵌入式系统原理与设计实验报告#include /自旋锁 ,防止多处理器并发#include #include #include #include #include #include #include #include /miscdevice 结构体成员变量设备#include #include #include #include #include #include #include #include /包含 copy_to_user、copy_from_user 等内核访问用户进程内存地址的函数定义#include /系统头文件 ,定义了设置或修改描述符 /中断门等的嵌入式汇编宏/- #d
17、efine HR_DEBUG 1 /- #define IRQ_spi_led_INT IRQ_EINT4 #define GPIO_SimpleINT_EINT4 (GPIO_MODE_ALT0 | GPIO_PULLUP_EN | GPIO_F4) #define ONEBIT 0 x1 #define KEYPADCSDIS (GPGDAT |=(ONEBIT 3) #define KEYPADCSEN (GPGDAT &=(ONEBIT 3) #define KEYPADDIRMO (GPBDAT &=(ONEBIT 0) #define KEYPADDIRMI (GPBDAT |=(
18、ONEBIT 0) #define spi_led_MAJOR 104 /定义 led_ary_MAJOR 设备的主设备号devfs_handle_t spi_led_handle; /系统支持 devfs的数据结构int spi_led_temp_count=0; /定义的系统全局变量 ,防止文件被多重打开static int DELAY_TIME=100; /时间延迟为 100 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 21 页 - - - - - - - - - - 嵌入式系统原理
19、与设计实验报告int putcToKBCTL(u8 c) u32 i; KEYPADCSEN; KEYPADDIRMO; udelay(60); while(SPSTA1 & ONEBIT)=0); / wait while busy SPTDAT1 = c; / write left justified data while(SPSTA1 & ONEBIT)=0); / wait while busy KEYPADCSDIS; i = SPRDAT1; return(i); /功能概要 :将所给数据写入指定的寄存器中int spi_ledInit() int t; char dummy =
20、(char)0 xff; printk(GPGCON=%xn,GPGCON); GPGCON &= (0 x36)|(0 x310)|(0 x312)|(0 x314); GPGCON |= (0 x16)|(0 x310)|(0 x312)|(0 x37289 GPBCON &= (0 x3 0); / 清除 GPB0 端口数据GPBCON |= (ONEBIT 0); /设置端口 GPB0用于_PWR_OK 信号输出/ rGPDDAT &=(ONEBIT 0); / 将 _PWR_OK t 置 0 KEYPADDIRMO; /设置 SPI(串行外设接口 )寄存器/ 中断模式 ,可用分频 ,
21、主模式 ,高电平时钟 ,形式 B,正常模式/rSPCON1=(ONEBIT5)|(ONEBIT4)|(ONEBIT3)|(0 x02)|(ONEBIT1); / 查询模式 ,可用分频 ,主模式 ,高电平时钟 ,形式 A,正常模式SPCON1 = (05)|(ONEBIT4)|(ONEBIT3)|(0 x02)|(01); /* 开发者必须根据 PCLK 时钟的变化正确地调节分频器的值*/ SPPRE1 = 255; /* 99、121K = 203M/4/2/(255+1) PCLK=50 、75Mhz FCLK=203Mhz SPICLK=99 、121Khz*/ 精品资料 - - - 欢迎
22、下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 21 页 - - - - - - - - - - 嵌入式系统原理与设计实验报告putcToKBCTL(0 xbf); /传送初始化指令printk(Key Pad Init complete:n); /显示键盘初始化成功putcToKBCTL(0 xc8); /第一个数码管的地址为0 xc8 putcToKBCTL(0 x01); /设置第一个数码管显示的数值为1 KEYPADCSDIS; putcToKBCTL(0 xc9); /第二个数码管的地址为0 xc9 putc
23、ToKBCTL(0 x02); /设置第二个数码管显示的数值为2 KEYPADCSDIS; putcToKBCTL(0 xca); /第三个数码管的地址为0 xca putcToKBCTL(0 x09); /设置第三个数码管显示的数值为9 KEYPADCSDIS; putcToKBCTL(0 xcb); /第三个数码管的地址为0 xcb putcToKBCTL(0 x00); /设置第三个数码管显示的数值为0 KEYPADCSDIS; return(1); / 函数实现 LED 数码管的初始化 ,返回值为 1时,则完成系统初始化u8 readKBValue(void) unsigned cha
24、r i; KEYPADCSEN; KEYPADDIRMO; udelay(60); while(SPSTA1 & ONEBIT)=0); / wait while busy SPTDAT1 = 0 x15; / 传送读取键值的命令while(SPSTA1 & ONEBIT)=0); / wait while busy udelay(30);/delay 30us KEYPADDIRMI; SPTDAT1 = 0 xff; / 传送读取键值的命令while(SPSTA1 & ONEBIT)=0); / wait while busy i = SPRDAT1; / printk(%xn,i); K
25、EYPADCSDIS; KEYPADDIRMO; return(i); /函数实现的主要功能为读取键盘输入的值。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 21 页 - - - - - - - - - - 嵌入式系统原理与设计实验报告ssize_t spi_led_read (struct file * * buf, size_t count, loff_t * f_ops) return count; /函数返回 :读取数据的长度 count。/功能概要 :对字符性设备进行读操作/*=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 嵌入式 系统 原理 设计 实验 报告
限制150内