微机原理第四次实验

上传人:博****1 文档编号:567953112 上传时间:2024-07-22 格式:PPT 页数:20 大小:437.50KB
返回 下载 相关 举报
微机原理第四次实验_第1页
第1页 / 共20页
微机原理第四次实验_第2页
第2页 / 共20页
微机原理第四次实验_第3页
第3页 / 共20页
微机原理第四次实验_第4页
第4页 / 共20页
微机原理第四次实验_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《微机原理第四次实验》由会员分享,可在线阅读,更多相关《微机原理第四次实验(20页珍藏版)》请在金锄头文库上搜索。

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 5键值寄存器键值寄存器Key(地址:(地址:01H) 如果某个普通键(K1K56)被按下,则微控制器可以从键值寄存器Key中读取相应的键值156。如果微控制器发现ZLG7290 的INT 引脚产生了中断请求,而从Key 中读到的键值是0,则表示按下的可能是功能键。键值寄存器Key 的值在被读走后自动变成0。6 6显示缓冲区显示缓冲区DpRam0Dp

3、Ram0DpRam7DpRam7(地址:(地址:10H10H17H17H) DpRam0DpRam7 这8 个寄存器的取值直接对应8个数码管的显示内容。每个寄存器的8 个位 分 别 对 应 数 码 管 的a,b,c,d,e,f,dp 段,MSB 对应a,LSB 对应dp。例如大写字母H 的字型数据为6EH(不带小数点)或6FH(带小数点)。7 7命令缓冲区命令缓冲区CmdBuf0 CmdBuf0 和和CmdBuf1CmdBuf1(地址:(地址:07H 07H 和和08H08H) 通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据、控制闪烁等功能。8 82 2、ZLG7290ZLG7

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

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

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

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

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

9、亮灭,使其显示不同的数据。2.在数码管上显示数据的另一种方法是直接向命令寄存器cmdbuf0或cmdbuf1写入“下载数据并译码”命令,直接控制数码管的显示内容,具体译码规则如表一所示。3.当某个按键被按下时,可以通过读取“键值寄存器Key(地址:01H)”的值来得到键值,将所按键的键值显示在数码管上。4.zlg7290提供数码管的闪烁功能,通过向命令寄存器发送闪烁控制命令可以控制某个数码管闪烁。通过按键控制数码管的闪烁,具体功能是当按下键盘1-4时,控制数码管1-4闪烁。19195、打开一个终端1,将四个源文件交叉编译成arm下的可执行文件example1-example4(具体参见实验五一些步骤)6、重新打开一个终端2,输入命令minicom进入ARM开发板的命令行界面,检查硬件是否连接好后,上电开发板,进入ARM-linux操作系统的命令行。7、在终端2的ARM-linux操作系统的命令行下依次运行example1-example4可执行程序,观察结果。2020 实验报告注意事项实验报告注意事项n实验报告占总成绩的10%(10分)n实验报告手写,封面采用电子科大标准实验报告纸(打印无成绩)n实验报告请于12月18号之前交到KB357

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号