微机实验报告(含思考题)实验6

合集下载

微机原理实验报告

微机原理实验报告

微机原理实验报告概述:微机原理是计算机科学与技术专业中的一门重要课程,通过实验学习,可以加深对计算机内部运行原理的理解,提高软硬件的开发和调试能力。

本实验报告将介绍我对微机原理实验的学习和思考。

实验一:二进制转换实验在这个实验中,我首先了解了二进制数的概念以及其和十进制数的转换方法。

通过实际操作,我加深了对计算机内部数据表示方式的理解。

这对于后续学习计算机系统结构和编程语言至关重要。

实验二:逻辑门电路实验逻辑门电路是计算机硬件的基础组成部分,通过实验,我学会了使用逻辑门芯片构建各种逻辑电路,并能够通过真值表分析和验证逻辑电路的正确性。

这对于理解计算机内部的数据处理和控制逻辑有着直接的帮助。

实验三:运算器设计实验在这个实验中,我通过学习和设计算术逻辑单元(ALU),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。

这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。

实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。

实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。

这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。

实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。

实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。

通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。

未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。

我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。

微机原理的实验报告

微机原理的实验报告

一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。

二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。

(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。

(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。

2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。

(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。

(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。

3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。

(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。

(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。

4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。

(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。

(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。

三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。

2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。

3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。

4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。

四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。

微机基础实验报告

微机基础实验报告

一、实验目的1. 熟悉微机的基本结构和工作原理。

2. 掌握微机基本操作,包括启动、关闭、使用键盘和鼠标等。

3. 学习微机操作系统的基础知识,包括文件管理、程序管理、系统设置等。

4. 培养动手能力和独立解决问题的能力。

二、实验环境1. 硬件环境:微机一台、显示器一台、键盘一个、鼠标一个。

2. 软件环境:Windows操作系统、常用办公软件等。

三、实验内容及步骤1. 微机基本结构和工作原理(1)观察微机外部结构,了解各部件的名称和功能。

(2)打开微机,观察启动过程,了解微机自检和启动顺序。

(3)学习微机内部结构,了解CPU、内存、硬盘、显卡等部件的功能。

(4)了解微机工作原理,包括指令执行过程、数据传输过程等。

2. 微机基本操作(1)学习启动和关闭微机的方法,了解安全关机的重要性。

(2)学习使用键盘和鼠标进行基本操作,如打开、关闭程序、切换窗口等。

(3)学习使用快捷键提高工作效率。

3. 微机操作系统基础知识(1)学习Windows操作系统的基本界面和功能。

(2)学习文件管理,包括创建、复制、移动、删除文件和文件夹等操作。

(3)学习程序管理,包括安装、卸载、运行程序等操作。

(4)学习系统设置,包括显示设置、声音设置、网络设置等。

4. 实验练习(1)练习使用Windows自带的画图软件,绘制简单的图形。

(2)练习使用Word文档编辑功能,制作一份简单的文档。

(3)练习使用Excel表格处理功能,制作一份简单的表格。

(4)练习使用PowerPoint演示文稿制作功能,制作一份简单的演示文稿。

四、实验结果与分析1. 实验结果通过本次实验,我们熟悉了微机的基本结构和工作原理,掌握了微机基本操作,学习了微机操作系统基础知识,并能够运用所学知识解决实际问题。

2. 实验分析(1)在实验过程中,我们发现微机的基本操作对于提高工作效率具有重要意义。

熟练掌握键盘和鼠标操作,能够使我们更加高效地完成工作。

(2)在文件管理方面,了解文件和文件夹的基本操作,有助于我们更好地管理计算机中的数据。

微机原理的实验报告

微机原理的实验报告

微机原理的实验报告一、实验目的本实验旨在深入理解微机原理的相关知识,并通过实践操作,掌握微机原理的实验方法与技巧。

二、实验内容1. 搭建微机实验系统:根据实验所需,搭建适当的微机实验系统,包括各种硬件设备的连接与设置。

2. 硬件接口的实验:通过连接不同的硬件接口,进行实验操作,学习硬件接口的使用方法和原理。

3. 程序设计与调试实验:使用相应的汇编语言或高级语言,编写程序并进行调试,观察程序的执行结果。

4. 中断实验:通过调用不同的中断服务例程,进行实验操作,学习中断的使用原理和应用场景。

三、实验步骤与结果1. 实验步骤:(1) 搭建微机实验系统:按照实验指导书的要求,连接各种硬件设备,确保能够正常工作。

(2) 硬件接口的实验:选择一个硬件接口,例如并行口,通过编写相应的程序,实现读取和输出数据的功能。

观察实验现象并记录。

(3) 程序设计与调试实验:根据实验要求,选择适当的编程语言,编写相应的程序,并进行调试。

观察程序的执行结果,并记录相关数据。

(4) 中断实验:选择一个中断服务例程,例如键盘中断,通过编写相应的程序,实现对键盘输入的响应。

观察实验现象并记录相关数据。

2. 实验结果:(1) 硬件接口的实验结果:通过编写程序并连接硬件接口,成功读取和输出数据,实现了相应的功能。

(2) 程序设计与调试实验结果:编写的程序能够正确执行,并得到了预期的结果。

(3) 中断实验结果:编写的程序能够响应相应的中断信号,并实现了对键盘输入的处理。

四、实验分析与讨论1. 实验分析:通过本次实验,我们深入了解了微机原理的相关知识,并通过实践操作,掌握了微机原理的实验方法和技巧。

2. 实验讨论:在实验过程中,我们遇到了一些困难和问题,例如硬件接口的连接和调试,程序的编写和调试等。

但通过彼此的合作与讨论,我们最终解决了这些问题,并成功完成了实验。

五、实验总结通过本次实验,我们对微机原理有了更深入的理解,并通过实践操作,掌握了微机原理的实验方法和技巧。

微机系统实验报告

微机系统实验报告

微机系统实验报告一、实验目的本次微机系统实验的主要目的是通过实际操作和研究,深入了解微机系统的组成、工作原理以及相关的硬件和软件技术,提高我们对计算机系统的理解和应用能力。

二、实验设备与环境本次实验所使用的设备包括一台配备有英特尔酷睿 i5 处理器、8GB 内存、512GB 固态硬盘的微机,以及相关的实验仪器和软件,如逻辑分析仪、示波器、编译软件等。

实验环境为 Windows 10 操作系统。

三、实验内容与步骤(一)微机系统硬件组成的认识首先,我们对微机系统的硬件组成进行了详细的观察和学习。

打开计算机主机箱,我们可以看到主板、CPU、内存、硬盘、显卡、声卡等主要硬件组件。

通过观察它们的外观、接口和标识,了解了它们的功能和作用。

(二)CPU 性能测试使用专门的 CPU 性能测试软件,对微机的 CPU 进行了性能测试。

在测试过程中,我们记录了 CPU 的主频、核心数、线程数等参数,并观察了其在不同负载下的性能表现,如处理单线程任务和多线程任务时的速度和效率。

(三)内存性能测试通过内存测试软件,对微机的内存进行了读写速度、延迟等性能指标的测试。

同时,还研究了不同内存容量和频率对系统性能的影响。

(四)硬盘性能测试利用硬盘性能测试工具,对微机的固态硬盘进行了顺序读写、随机读写等性能测试。

分析了硬盘的读写速度、访问时间等参数,评估了其对系统整体性能的贡献。

(五)显卡性能测试使用显卡性能测试软件,对微机的显卡进行了图形处理能力的测试。

包括 3D 渲染、游戏性能等方面的测试,了解了显卡在不同应用场景下的表现。

(六)系统稳定性测试为了确保微机系统在长时间运行中的稳定性,我们进行了长时间的压力测试。

通过运行大型软件、多任务处理等方式,观察系统是否出现死机、蓝屏等故障。

四、实验结果与分析(一)CPU 性能测试结果经过测试,我们发现微机所配备的英特尔酷睿 i5 处理器在处理单线程任务时表现出色,其主频较高,能够快速完成单个任务。

微机实验报告(DOC)

微机实验报告(DOC)

微机实验报告学生姓名专业班学号指导老师年月日注:红色为程序修改部分实验一1、用命令A 汇编下列指令,判断指令正误并说明原因。

(1)ROR AX,8(2)LEA DI,[AX](3)MOV DS,2010(4)PUSH AL(5)OUT 900,AL(6)MOV [BX],0答:(1)ROR 为右移指令,每次移位只能移一个位。

(2)不能对累加器去偏移地址。

(3)立即数不能直接发送给段寄存器。

此程序正确应该改为:MOV AX,2010MOV DS,AX(4)字压入堆栈指令,它允许将 16 位的源操作数压入堆栈。

(5)OUT 指令是把累加 AL/AX 中的内容输出到指定的端口。

(6)错在不知道 0 是以字节型数据存储到[BX]还是以字型数据存储到[BX]。

2、说明可读写内存 RAM 和只读内存 ROM 的区别。

答:ROM 和 RAM 是计算机内存储器的两种型号,ROM 表示的是只读存储器,即:它只能读出信息,不能写入信息,计算机关闭电源后其内的信息仍旧保存,一般用它存储固定的系统软件和字库等。

RAM 表示的是读写存储器,可其中的任一存储单元进行读或写操作,计算机关闭电源后其内的信息将不在保存,再次开机需要重新装入,通常用来存放操作系统,各种正在运行的软件、输入和输出数据、中间结果及与外存交换信息等,我们常说的内存主要是指 RAM。

3、说明命令 T 和 P 的差别。

答:两个都是单步执行指令。

区别在于遇到调转程序 call 指令时,T 指令会跳到 call 指令中去一步一步的执行;而 p 指令遇到 call 指令时,它一下子全部执行后就跳出来,而不会一步一步的去执行。

指出任务 6 中程序段的出错原因,给出修改后的程序段。

4、利用T,P,G 命令,执行下列指令段,注意它们的不同之处。

(1) MOV DI,300MOV SI,400MOV CX,3CLDREP MOVSBINT 3--T 指令---G 指令---P 指令(2) MOV AH,2MOV DL,41INT 21INT 3---P 指令---G 指令实验总结:指令异同T一步一步执行G执行一段代码执行指令操作P在执行的过程中跳过循环(7)先在CS:200 处汇编一条RET 指令,再在CS:100 处汇编。

最新微机实验报告六

最新微机实验报告六

最新微机实验报告六实验目的:1. 熟悉微机系统的基本组成和工作原理。

2. 掌握微处理器的指令集及其使用方法。

3. 学习如何编写和调试汇编语言程序。

4. 理解中断处理机制及其在微机系统中的应用。

实验内容:1. 实验一:微机系统组成与工作原理- 研究微机的基本硬件组成,包括中央处理器(CPU)、内存、输入输出设备等。

- 通过实验设备,观察并理解微机的启动过程和操作系统的加载过程。

2. 实验二:微处理器指令集学习- 学习x86架构的微处理器指令集,包括数据传输、算术运算、逻辑运算和控制转移指令。

- 编写简单的汇编程序,实现指定的算法或功能。

3. 实验三:汇编语言程序设计与调试- 使用汇编语言编写程序,实现数据的输入输出操作。

- 利用调试工具进行程序调试,理解程序执行过程中的寄存器状态、内存变化等。

4. 实验四:中断处理机制- 学习中断的基本概念,包括中断源、中断向量、中断服务程序等。

- 编写中断服务程序,实现对外部设备的响应和处理。

实验环境:- 实验设备:个人计算机,装配有最新的操作系统和汇编语言开发环境。

- 软件工具:汇编器、调试器、编程IDE等。

实验步骤:1. 按照实验指导书的说明,搭建实验环境。

2. 完成每个实验的预习,理解实验的理论基础。

3. 按照实验步骤,逐步进行实验操作。

4. 记录实验数据和结果,撰写实验报告。

实验结果:- 成功搭建了微机实验环境,并完成了系统的启动和操作系统加载的观察。

- 掌握了x86架构微处理器的基本指令集,并能够编写简单的汇编程序。

- 通过调试工具,成功定位并修正了程序中的错误。

- 编写了中断服务程序,并成功实现了对模拟中断信号的处理。

实验结论:通过本次实验,加深了对微机系统工作原理的理解,熟悉了微处理器的指令集和汇编语言程序的编写。

同时,通过中断处理机制的学习,理解了其在微机系统中的重要性和应用方式。

实验过程中遇到的问题和解决方法也为今后的学习和研究打下了良好的基础。

微机硬件实验报告

微机硬件实验报告

微机硬件实验报告
《微机硬件实验报告》
实验目的:通过对微机硬件的实验,掌握微机硬件的基本原理和操作方法,提高对计算机硬件的理解和实际操作能力。

实验内容:本次实验主要涉及微机硬件的组装与拆卸、硬盘安装与分区、内存条的安装与更换、CPU的安装与更换等内容。

实验过程:首先,我们对微机硬件进行了组装与拆卸实验,通过拆卸和重新组装计算机主机的过程,了解了各个硬件组件的位置和连接方式。

接着,我们进行了硬盘的安装与分区实验,掌握了硬盘的安装方法和分区操作。

然后,我们进行了内存条的安装与更换实验,学会了如何正确安装和更换内存条。

最后,我们进行了CPU的安装与更换实验,了解了CPU的安装步骤和注意事项。

实验结果:通过本次实验,我们对微机硬件有了更深入的了解,掌握了微机硬件的基本原理和操作方法。

我们能够熟练地进行微机硬件的组装与拆卸、硬盘的安装与分区、内存条的安装与更换、CPU的安装与更换等操作。

实验结论:微机硬件实验是非常重要的,通过实际操作,我们能够更好地理解和掌握微机硬件的知识,提高我们对计算机硬件的理解和实际操作能力。

希望通过这次实验,我们能够更加熟练地掌握微机硬件的操作方法,为今后的学习和工作打下坚实的基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六基于ARM的键盘及数码管驱动实验1.掌握键盘及数码管驱动原理。

2.掌握ZLG7290芯片的使用方法。

3.掌握I2C总线的协议标准。

4.掌握Linux下键盘驱动的实现方法。

编写测试程序控制键盘和数码管。

1.了解ARM9处理器结构2.了解i2c协议硬件:ARM嵌入式开发平台,PC 机Pentium100 以上。

软件:PC机Linux操作系统+MINICOM +AMRLINUX开发环境1、ZLG7290寄存器介绍ZLG7290内部有16个8bits寄存器,访问这些寄存器需要通过I2C 总线接口来实现.访问内部寄存器要通过“I2C总线地址+子地址”的方式来实现。

ZLG7290B 的I2C 总线器件地址是70H(写操作)和71H(读操作)。

? 键值寄存器Key(地址:01H)如果某个普通键(K1~K56)被按下,则微控制器可以从键值寄存器Key中读取相应的键值1~56。

如果微控制器发现ZLG7290 的INT 引脚产生了中断请求,而从Key 中读到的键值是0,则表示按下的可能是功能键。

键值寄存器Key 的值在被读走后自动变成0。

? 显示缓冲区DpRam0~DpRam7(地址:10H~17H)DpRam0~DpRam7 这8 个寄存器的取值直接对应8个数码管的显示内容。

每个寄存器的8 个位分别对应数码管的a,b,c,d,e,f,dp 段,MSB 对应a,LSB 对应dp。

例如大写字母H 的字型数据为6EH(不带小数点)或6FH(带小数点)。

? 命令缓冲区CmdBuf0 和CmdBuf1(地址:07H 和08H)通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据、控制闪烁等功能。

2、ZLG7290控制命令介绍寄存器CmdBuf0(地址:07H)和CmdBuf1(地址:08H)共同组成命令缓冲区。

通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据、控制闪烁等功能。

?下载数据并译码(Download)在指令格式中,高4 位的0110 是命令字段;A3A2A1A0 是数码管显示数据的位地址(其中A3 留作以后扩展之用,实际使用时取0 即可),位地址编号依次为0,1,2,3,4,5,6,7,代表8个数码管,dp 控制小数点是否点亮,0-点亮,1-熄灭;flash 表示是否要闪烁,0-正常显示,1-闪烁;d4d3d2d1d0 是要显示的数据,包括10 种数字和21 种字母。

? 闪烁控制(Flash)在命令格式中,高4 位的0111 是命令字段;xxxx 表示无关位,通常取值0000;第2 字节的Fn(n=0~7)控制数码管相应位的闪烁属性,0-正常显示,1-闪烁。

复位后,所有位都不闪烁。

3、Linux下i2c驱动接口函数介绍Linux为我们提供了一系列的接口函数,通过调用这些函数可以很方便的访问到我们的I2C设备,达到对它的操作和控制。

在本实验中,就是通过调用这些函数,完成对zlg7290 内部寄存器的配置,从而驱动键盘和数码管按照我们需要的方式工作? 打开设备:在linux下编程实现对具体设备的操作,首先要做的就是打开要操作的设备文件,zlg7290 设备的设备文件是“/dev/zlg7290/0”。

具体实现函数是:fd=open(“/dev/zlg7290/0”,O_RDWR)? 向设备写数据:具体实现过程是先写入要配置的寄存器的地址,然后写入要配置的值,具体实现函数是:unsigned char temp[2]; //定义一个数组用于存放要发送的数据,包括寄存器地址和要写入该寄存器内的值temp[0]=address; //将要配置的寄存器的地址address写入temp[0]中。

temp[1]=data; //将要写入该寄存器中的值data写入//temp[1]中。

write(fd,temp,2); //用write函数向设备写入数据temp,首先写入地址address,然后写入值data。

配置一般的寄存器都是这个步骤,但是唯一例外的是配置命令寄存器cmdbuf0和cmdbuf1,因为写入命令寄存器中的命令码均为16bit,因此需要通过两步完成对命令码的发送,具体实现代码如下:unsigned char temp[3];temp[0]=address;temp[1]=cmd1; //要写入的命令码的高八位temp[2]=cmd2; //要写入的命令码的低八位write(fd,temp,3);? 关闭设备:close(fd);1. 在数码管上显示数据有两种方法,一种方法是直接向8个数据缓冲区DpRam0~DpRam7写入数据分别控制每个数码管的8个独立led的亮灭,使其显示不同的数据。

2. 在数码管上显示数据的另一种方法是直接向命令寄存器cmdbuf0或cmdbuf1写入“下载数据并译码”命令,直接控制数码管的显示内容,具体译码规则如表一所示。

3. 当某个按键被按下时,可以通过读取“键值寄存器Key(地址:01H)”的值来得到键值,将所按键的键值显示在数码管上。

4. zlg7290提供数码管的闪烁功能,通过向命令寄存器发送闪烁控制命令可以控制某个数码管闪烁。

通过按键控制数码管的闪烁,具体功能是当按下键盘1-4时,控制数码管1-4闪烁。

5.打开一个终端1,将四个源文件交叉编译成arm下的可执行文件example1-example4 (具体参见实验五一些步骤)6.重新打开一个终端2,输入命令minicom进入ARM开发板的命令行界面,检查硬件是否连接好后,上电开发板,进入ARM-linux操作系统的命令行。

7.在终端2的ARM-linux操作系统的命令行下依次运行example1-example4可执行程序,观察结果。

步骤1程序:#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <sys/ioctl.h>//#include "i2c.h"#define ZLG7290_ADDR_DpRam0 0x10int fd;void zlg7290_disp(unsigned char *buf, unsigned char num);int main(){int ret,i;unsigned char buf[8];fd = open("/dev/zlg7290/0", O_RDWR);if(fd == -1){printf("Can't open I2C device!\n");exit(-1);}buf[7] = 0xe0;buf[6] = 0xbe;buf[5] = 0xb6;buf[4] = 0x66;buf[3] = 0xf2;buf[2] = 0xda;buf[1] = 0x60;buf[0] = 0xfc;zlg7290_disp(buf, 8);close(fd);return 0;}/****************************************************************************** ***************************** Function name: zlg7290_disp** Descriptions: control zlg7290 to driver led**** Input: unsigned char *buf: display bufferunsigned char num: display number** Output: NULL******************************************************************************* *************************/void zlg7290_disp(unsigned char *buf, unsigned char num){unsigned char i;unsigned char temp[2];for(i=0;i<num;i++){temp[0] = ZLG7290_ADDR_DpRam0+i;temp[1] = *buf;write(fd, temp, 2);buf++;usleep(5000);}}/**************************************************************************** End Of File**************************************************************************/步骤2程序:#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <sys/ioctl.h>//#include "i2c.h"#define ZLG7290_ADDR_cmdbuf0 0x07int fd;void zlg7290_disp(unsigned char *buf, unsigned char num);int main(){int ret,i;unsigned char buf[8];fd = open("/dev/zlg7290/0", O_RDWR);if(fd == -1){printf("Can't open I2C device!\n");exit(-1);}buf[7] = 0x07;buf[6] = 0x06;buf[5] = 0x05;buf[4] = 0x04;buf[3] = 0x03;buf[2] = 0x02;buf[1] = 0x01;buf[0] = 0x00;zlg7290_disp(buf, 8);close(fd);return 0;}/****************************************************************************** ***************************** Function name: zlg7290_disp** Descriptions: control zlg7290 to driver led**** Input: unsigned char *buf: display bufferunsigned char num: display number** Output: NULL******************************************************************************* *************************/void zlg7290_disp(unsigned char *buf, unsigned char num){unsigned char i;unsigned char temp[2];for(i=0;i<num;i++){temp[0] = ZLG7290_ADDR_cmdbuf0;temp[1] = 0x60+i;temp[2] = *buf;buf++;write(fd, temp, 3);usleep(5000);}}/************************************************************************** ** End Of File**************************************************************************/ 步骤3程序:#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <sys/ioctl.h>//#include "i2c.h"int fd;int zlg7290_getkey(char *key);void zlg7290_disp(unsigned char *buf, unsigned char num);int main(){int ret,i;unsigned char buf[9];char key;fd = open("/dev/zlg7290/0", O_RDWR);if(fd == -1){printf("Can't open I2C device!\n");exit(-1);}zlg7290_disp(buf, 8);for (;;){if (zlg7290_getkey(&key) != 0){printf("Read key value fail\n");exit(-1);}buf[0]=key%10;buf[1]=key/10;zlg7290_disp(buf, 2);usleep(1000000);}close(fd);return 0;}/****************************************************************************** ***************************** Function name: zlg7290_getkey** Descriptions: get the key value from zlg7290**** Input: unsigned short *key: the gotten key value** Output: 0 : OK -1: fail******************************************************************************* *************************/int zlg7290_getkey(char *key){unsigned char temp[2];temp[0] = 1;temp[1] = 0;if (write(fd, temp, 1) != 1)return -1;if (read(fd, temp, 2) != 2)return -1;*key = temp[0] + (temp[1] * 256);return 0;}/****************************************************************************** ***************************** Function name: zlg7290_disp** Descriptions: control zlg7290 to driver led** 鎺у埗zlg7290椹卞姩led** Input: unsigned char *buf: display bufferunsigned char num: display number** Output: NULL******************************************************************************* *************************/void zlg7290_disp(unsigned char *buf, unsigned char num){unsigned char i;unsigned char temp[3];for(i=0; i<num; i++){temp[0] = 0x07;temp[1] = 0x60+i;temp[2] = *buf;buf++;write(fd, temp, 3);usleep(5000);}}/**************************************************************************** End Of File**************************************************************************/1. I2C总线数据传输的基本格式?答:从左到右依次为:S:起始位(START);SA:从机地址(Slave Address),7 位从机地址;W:写标志位(Write),1 位写标志;R:读标志位(Read),1 位读标志;A:应答位(Acknowledge),1 位应答;?:非应答位(Not Acknowledge),1 位非应答;D:数据(Data),每个数据都必须是8 位;P:停止位(STOP);2. 要实现控制数码管闪烁的功能,除了向命令寄存器中写入“闪烁控制命令”以外,还有什么办法可以完成?答:向命令寄存器中写入Download指令,其具体值为0110xxxx x10xxxxx.3. 怎么修改数码管闪烁的快慢和时间?答:修改闪烁控制寄存器FlashOnOff(地址:0CH)的值,复位值为0111,0111B。

相关文档
最新文档