UESTC微机原理第四次实验_第1页
UESTC微机原理第四次实验_第2页
UESTC微机原理第四次实验_第3页
UESTC微机原理第四次实验_第4页
UESTC微机原理第四次实验_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 1实验六 基于arm的键盘及数码管驱动实验 2 2一、实验目的一、实验目的1.掌握键盘及数码管驱动原理。2.掌握zlg7290芯片的使用方法。3.掌握i2c总线的协议标准。4.掌握linux下键盘驱动的实现方法。二、实验内容二、实验内容编写测试程序控制键盘和数码管。3 3三、预备知识三、预备知识1.了解arm9处理器结构2.了解i2c协议四、四、 实验设备与工具实验设备与工具硬件:arm嵌入式开发平台,pc 机pentium100 以上。软件:pc机linux操作系统minicom amrlinux开发环境4 4五、五、 实验原理与说明实验原理与说明1 1、zlg7290zlg7290寄存

2、器介绍寄存器介绍 zlg7290内部有16个8bits寄存器,访问这些寄存器需要通过i2c 总线接口来实现.访问内部寄存器要通过“i2c总线地址+子地址”的方式来实现。zlg7290b 的i2c 总线器件地址是70h(写操作)和71h(读操作)。5 5l键值寄存器键值寄存器key(地址:(地址:01h) 如果某个普通键(k1k56)被按下,则微控制器可以从键值寄存器key中读取相应的键值156。如果微控制器发现zlg7290 的int 引脚产生了中断请求,而从key 中读到的键值是0,则表示按下的可能是功能键。键值寄存器key 的值在被读走后自动变成0。6 6l 显示缓冲区显示缓冲区dpram

3、0dpram0dpram7dpram7(地址:(地址:10h10h17h17h) dpram0dpram7 这8 个寄存器的取值直接对应8个数码管的显示内容。每个寄存器的8 个位 分 别 对 应 数 码 管 的a,b,c,d,e,f,dp 段,msb 对应a,lsb 对应dp。例如大写字母h 的字型数据为6eh(不带小数点)或6fh(带小数点)。7 7l 命令缓冲区命令缓冲区cmdbuf0 cmdbuf0 和和cmdbuf1cmdbuf1(地址:(地址:07h 07h 和和08h08h) 通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据、控制闪烁等功能。8 82 2、zlg729

4、0zlg7290控制命令介绍控制命令介绍 寄存器cmdbuf0(地址:07h)和cmdbuf1(地址:08h)共同组成命令缓冲区。通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据、控制闪烁等功能。9 9l 下载数据并译码(下载数据并译码(downloaddownload) 在指令格式中,高4 位的0110 是命令字段;a3a2a1a0 是数码管显示数据的位地址(其中a3 留作以后扩展之用, 实 际 使 用 时 取 0 即 可 ) , 位 地 址 编 号 依 次 为0,1,2,3,4,5,6,7,代表8个数码管,dp 控制小数点是否点亮,0点亮,1熄灭;flash 表示是否要闪烁,

5、0正常显示,1闪烁;d4d3d2d1d0 是要显示的数据,包括10 种数字和21 种字母。显示数据按照表一中的规则进行译码:1010表一表一 下载数据并译码命令规下载数据并译码命令规则则1111l闪烁控制(闪烁控制(flashflash) 在命令格式中,高4 位的0111 是命令字段;xxxx 表示无关位,通常取值0000;第2 字节的fn(n07)控制数码管相应位的闪烁属性,0正常显示,1闪烁。复位后,所有位都不闪烁。12123 3、 linuxlinux下下i2ci2c驱动接口函数介绍驱动接口函数介绍 linux为我们提供了一系列的接口函数,通过调用这些函数可以很方便的访问到我们的i2c设

6、备,达到对它的操作和控制。在本实验中,就是通过调用这些函数,完成对zlg7290内部寄存器的配置,从而驱动键盘和数码管按照我们需要的方式工作。下面对接口函数进行介绍:13133 3、 linuxlinux下下i2ci2c驱动接口函数介绍驱动接口函数介绍l 打开设备:打开设备: 在linux下编程实现对具体设备的操作,首先要做的就是打开要操作的设备文件,zlg7290设备的设备文件是“/dev/zlg7290/0”。 具体实现函数是: fd=open(“/dev/zlg7290/0”,o_rdwr)1414l 向设备写数据(向设备写数据(1/21/2):): 具体实现过程是先写入要配置的寄存器的

7、地址,然后写入要配置的值,具体实现函数是: unsigned char temp2; /定义一个数组用于存放要发送的数据,包括寄存器地址和要写入该寄存器内的值 temp0=address; /将要配置的寄存器的地址address写入temp0中。 temp1=data; /将要写入该寄存器中 的值data写入/temp1中。 write(fd,temp,2); /用write函数向设备写入数据temp,首先写入地址address,然后写入值data。1515l 向设备写数据(向设备写数据(2/22/2):): 配置一般的寄存器都是这个步骤,但是唯一例外的是配置命令寄存器cmdbuf0和cmdb

8、uf1,因为写入命令寄存器中的命令码均为16bit,因此需要通过两步完成对命令码的发送,具体实现代码如下: unsigned char temp3; temp0=address; temp1=cmd1; /要写入的命令码的高八位 temp2=cmd2; /要写入的命令码的低八位 write(fd,temp,3); 1616l 关闭设备:关闭设备: close(fd);1717l数码管位码键盘键值、布局图数码管位码键盘键值、布局图1818六、实验步骤六、实验步骤 (详见实验指导书)(详见实验指导书)1.在数码管上显示数据有两种方法,一种方法是直接向8个数据缓冲区dpram0dpram7写入数据分

9、别控制每个数码管的8个独立led的亮灭,使其显示不同的数据。2.在数码管上显示数据的另一种方法是直接向命令寄存器cmdbuf0或cmdbuf1写入“下载数据并译码”命令,直接控制数码管的显示内容,具体译码规则如表一所示。3.当某个按键被按下时,可以通过读取“键值寄存器key(地址:01h)”的值来得到键值,将所按键的键值显示在数码管上。4.zlg7290提供数码管的闪烁功能,通过向命令寄存器发送闪烁控制命令可以控制某个数码管闪烁。通过按键控制数码管的闪烁,具体功能是当按下键盘1-4时,控制数码管1-4闪烁。19195、打开一个终端1,将四个源文件交叉编译成arm下的可执行文件example1-example4(具体参见实验五一些步骤)6、重新打开一个终端2,输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论