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

下载本文档

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

文档简介

1、会计学1UESTC微机微机(wi j)原理第四次实验原理第四次实验第一页,共21页。22一、实验目的一、实验目的1.1.掌握掌握(zhngw)(zhngw)键盘及数码管驱动原理。键盘及数码管驱动原理。2.2.掌握掌握(zhngw)ZLG7290(zhngw)ZLG7290芯片的使用方法。芯片的使用方法。3.3.掌握掌握(zhngw)I2C(zhngw)I2C总线的协议标准。总线的协议标准。4.4.掌握掌握(zhngw)Linux(zhngw)Linux下键盘驱动的实现方法。下键盘驱动的实现方法。二、实验内容二、实验内容编写测试程序控制键盘和数码管。编写测试程序控制键盘和数码管。第1页/共20页

2、第二页,共21页。33三、预备知识三、预备知识1.1.了解了解ARM9ARM9处理器结构处理器结构2.2.了解了解i2ci2c协议协议四、四、 实验设备与工具实验设备与工具硬件:硬件:ARMARM嵌入式开发平台,嵌入式开发平台,PC PC 机机Pentium100 Pentium100 以上。以上。软件软件(run jin)(run jin):PCPC机机LinuxLinux操作系统操作系统MINICOM MINICOM AMRLINUX AMRLINUX开发环境开发环境第2页/共20页第三页,共21页。44五、五、 实验原理与说明实验原理与说明1 1、ZLG7290ZLG7290寄存器介绍寄

3、存器介绍 ZLG7290 ZLG7290内部有内部有1616个个8bits8bits寄存器,访问这些寄存器需要寄存器,访问这些寄存器需要(xyo)(xyo)通过通过I2C I2C 总线接口来实现总线接口来实现. .访问内部寄存器要通过访问内部寄存器要通过“I2C“I2C总线地址总线地址+ +子地址子地址”的方式来实现。的方式来实现。ZLG7290B ZLG7290B 的的I2C I2C 总线器件地址是总线器件地址是70H70H(写操作)和(写操作)和71H71H(读操作)。(读操作)。第3页/共20页第四页,共21页。55l键值寄存器键值寄存器Key(地址:(地址:01H)l l 如果某个如果

4、某个(mu )普通键(普通键(K1K56)被按下,则微控制器可以从键值寄存器)被按下,则微控制器可以从键值寄存器Key中读取相应的键值中读取相应的键值156。如果微控制器发现。如果微控制器发现ZLG7290 的的INT 引脚产生了中断请求,而从引脚产生了中断请求,而从Key 中读到的键值是中读到的键值是0,则表示按下的可能是功能键。键值寄存器,则表示按下的可能是功能键。键值寄存器Key 的值在被读走后自动变成的值在被读走后自动变成0。第4页/共20页第五页,共21页。66l显示显示(xinsh)(xinsh)缓冲区缓冲区DpRam0DpRam0DpRam7DpRam7(地址:(地址:10H10

5、H17H17H) DpRam0DpRam7 这8 个寄存器的取值直接对应8个数码管的显示内容(nirng)。每个寄存器的8 个位分别对应数码管的a,b,c,d,e,f,dp 段,MSB 对应a,LSB 对应dp。例如大写字母H 的字型数据为6EH(不带小数点)或6FH(带小数点)。第5页/共20页第六页,共21页。7 7l命令缓冲区命令缓冲区CmdBuf0 CmdBuf0 和和CmdBuf1CmdBuf1(地址:(地址:07H 07H 和和08H08H)l l 通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据(shj)

6、(shj)、控制闪烁等功能。、控制闪烁等功能。第6页/共20页第七页,共21页。882 2、ZLG7290ZLG7290控制命令介绍控制命令介绍 寄存器寄存器CmdBuf0CmdBuf0(地址:(地址:07H07H)和)和CmdBuf1CmdBuf1(地址:(地址:08H08H)共同组成命令缓冲区。通过向命令缓冲区写入相关的控制命令可以实现)共同组成命令缓冲区。通过向命令缓冲区写入相关的控制命令可以实现(shxin)(shxin)段寻址、下载显示数据、控制闪烁等功能。段寻址、下载显示数据、控制闪烁等功能。第7页/共20页第八页,共21页。99l下载数据并译码(下载数据并译码(DownloadD

7、ownload)l l l 在指令格式中,高在指令格式中,高4 4 位的位的0110 0110 是命令字段;是命令字段;A3A2A1A0 A3A2A1A0 是数码管显示数据的位地址(其中是数码管显示数据的位地址(其中A3 A3 留作以后扩展之用,实际使用时取留作以后扩展之用,实际使用时取0 0 即可),位地址编号依次为即可),位地址编号依次为0,1,2,3,4,5,6,70,1,2,3,4,5,6,7,代表,代表8 8个数码管,个数码管,dp dp 控制小数点是否控制小数点是否(sh fu)(sh fu)点亮,点亮,0 0点亮,点亮,1 1熄灭;熄灭;flash flash 表示是否表示是否(

8、sh fu)(sh fu)要闪烁,要闪烁,0 0正常显示,正常显示,1 1闪烁;闪烁;d4d3d2d1d0 d4d3d2d1d0 是要显示的数据,包括是要显示的数据,包括10 10 种数字和种数字和21 21 种字母。显示数据按照表一中的规则进行译码:种字母。显示数据按照表一中的规则进行译码:第8页/共20页第九页,共21页。1010表一表一 下载数据下载数据(shj)(shj)并译码命令规则并译码命令规则第9页/共20页第十页,共21页。1111l闪烁控制(闪烁控制(FlashFlash)l l l 在命令格式中,高在命令格式中,高4 4 位的位的0111 0111 是命令字段;是命令字段;

9、xxxx xxxx 表示无关位,通常取值表示无关位,通常取值00000000;第;第2 2 字节的字节的FnFn(n n0 07 7)控制数码管相应)控制数码管相应(xingyng)(xingyng)位的闪烁属性,位的闪烁属性,0 0正常显示,正常显示,1 1闪烁。复位后,所有位都不闪烁。闪烁。复位后,所有位都不闪烁。第10页/共20页第十一页,共21页。12123 3、 Linux Linux下下i2ci2c驱动接口函数介绍驱动接口函数介绍 Linux Linux为我们提供为我们提供(tgng)(tgng)了一系列的接口函数,通过调用这些函数可以很方便的访问到我们的了一系列的接口函数,通过调

10、用这些函数可以很方便的访问到我们的I2CI2C设备,达到对它的操作和控制。在本实验中,就是通过调用这些函数,完成对设备,达到对它的操作和控制。在本实验中,就是通过调用这些函数,完成对zlg7290zlg7290内部寄存器的配置,从而驱动键盘和数码管按照我们需要的方式工作。下面对接口函数进行介绍:内部寄存器的配置,从而驱动键盘和数码管按照我们需要的方式工作。下面对接口函数进行介绍:第11页/共20页第十二页,共21页。13133 3、 Linux Linux下下i2ci2c驱动接口函数介绍驱动接口函数介绍(jisho)(jisho)打开设备:打开设备: 在在linuxlinux下编程实现对具体设

11、备的操作,首先要做的就是打开要操作的设备文件,下编程实现对具体设备的操作,首先要做的就是打开要操作的设备文件,zlg7290zlg7290设备的设备文件是设备的设备文件是“/dev/zlg7290/0”“/dev/zlg7290/0”。 具体实现函数是:具体实现函数是: fd=open(“/dev/zlg7290/0”,O_RDWR) fd=open(“/dev/zlg7290/0”,O_RDWR)第12页/共20页第十三页,共21页。1414l向设备写数据(向设备写数据(1/21/2):):l 具体实现过程是先写入要配置的寄存器的地址,然后写入要配置的值,具体实现函数是:具体实现过程是先写入

12、要配置的寄存器的地址,然后写入要配置的值,具体实现函数是:l unsigned char temp2; / unsigned char temp2; /定义一个定义一个(y )(y )数组用于存放要发送的数据,包括寄存器地址和要写入该寄存器内的值数组用于存放要发送的数据,包括寄存器地址和要写入该寄存器内的值l temp0=address; / temp0=address; /将要配置的寄存器的地址将要配置的寄存器的地址addressaddress写入写入temp0temp0中。中。l temp1=data; / temp1=data; /将要写入该寄存器中将要写入该寄存器中 的值的值datad

13、ata写入写入/temp1/temp1中。中。l write(fd,temp,2); / write(fd,temp,2); /用用writewrite函数向设备写入数据函数向设备写入数据temptemp,首先写入地址,首先写入地址addressaddress,然后写入值,然后写入值datadata。第13页/共20页第十四页,共21页。1515l向设备写数据(向设备写数据(2/22/2):):l 配置一般的寄存器都是这个步骤,但是唯一例外的是配置命令寄存器配置一般的寄存器都是这个步骤,但是唯一例外的是配置命令寄存器cmdbuf0cmdbuf0和和cmdbuf1cmdbuf1,因为,因为(yn

14、 wi)(yn wi)写入命令寄存器中的命令码均为写入命令寄存器中的命令码均为16bit16bit,因此需要通过两步完成对命令码的发送,具体实现代码如下:,因此需要通过两步完成对命令码的发送,具体实现代码如下:l unsigned char temp3; unsigned char temp3; l temp0=address; temp0=address;l temp1=cmd1; / temp1=cmd1; /要写入的命令码的高八位要写入的命令码的高八位l temp2=cmd2; / temp2=cmd2; /要写入的命令码的低八位要写入的命令码的低八位l write(fd,temp,3)

15、; write(fd,temp,3); 第14页/共20页第十五页,共21页。1616l关闭关闭(gunb)(gunb)设备:设备:l l close(fd); close(fd);第15页/共20页第十六页,共21页。1717l数码管位码键盘数码管位码键盘(jinpn)(jinpn)键值、布局图键值、布局图第16页/共20页第十七页,共21页。1818六、实验步骤六、实验步骤 (详见实验指导书)(详见实验指导书)在数码管上显示数据有两种方法,一种方法是直接向在数码管上显示数据有两种方法,一种方法是直接向8 8个数据缓冲区个数据缓冲区DpRam0DpRam0DpRam7DpRam7写入数据分别

16、控制每个数码管的写入数据分别控制每个数码管的8 8个独立个独立ledled的亮灭,使其显示不同的数据。的亮灭,使其显示不同的数据。在数码管上显示数据的另一种方法是直接向命令寄存器在数码管上显示数据的另一种方法是直接向命令寄存器cmdbuf0cmdbuf0或或cmdbuf1cmdbuf1写入写入“下载数据并译码下载数据并译码”命令,直接控制数码管的显示内容命令,直接控制数码管的显示内容(nirng)(nirng),具体译码规则如表一所示。,具体译码规则如表一所示。当某个按键被按下时,可以通过读取当某个按键被按下时,可以通过读取“键值寄存器键值寄存器KeyKey(地址:(地址:01H01H)”的值

17、来得到键值,将所按键的键值显示在数码管上。的值来得到键值,将所按键的键值显示在数码管上。zlg7290zlg7290提供数码管的闪烁功能,通过向命令寄存器发送闪烁控制命令可以控制某个数码管闪烁。通过按键控制数码管的闪烁,具体功能是当按下键盘提供数码管的闪烁功能,通过向命令寄存器发送闪烁控制命令可以控制某个数码管闪烁。通过按键控制数码管的闪烁,具体功能是当按下键盘1-41-4时,控制数码管时,控制数码管1-41-4闪烁。闪烁。第17页/共20页第十八页,共21页。19195、打开一个终端1,将四个源文件交叉编译成arm下的可执行文件example1-example4(具体参见实验五一些步骤)6、重新打开一个终端2,输入命令minicom进入ARM开发板的命令行界面,检查硬件是否连接好后,上电开发板,进入ARM-linux操作系统的命令行。7、在终端2的ARM-linux操作系统的命令行下依次(yc)运行example1-example4

温馨提示

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

评论

0/150

提交评论