针对某一集体中的人名(30人)设计一哈希表,使得平均查找长度不超过2,完成相应的建表和查表程序。要求用除留余数法构造哈希函数,用补偿性线性探测法处理冲突(算法简单容易理解)
标签:
上传时间: 2016-02-27
上传用户:181992417
[问题描述] 针对某个集体中人名设计一个哈希表,使得平均查找长度不超过R,并完成相应的建表和查表程序。 [基本要求] 假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用线性探测再散列法或链地址法处理冲突。
标签:
上传时间: 2016-08-16
上传用户:wangchong
针对某个集体(比如你所在的班级)中的“人名”设计 一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。 假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突。
标签:
上传时间: 2016-08-19
上传用户:shanml
H.264/AVC是国际电信联盟与国际标准化组织/国际电工委员会联合推出的活动图像编码标准,简称H.264。作为最新的国际视频编码标准,H.264/AVC与MPEG-4、H.263等视频编码标准相比,性能有了很大的提高,并已在流媒体、数字电视、电话会议、视频存储等诸多领域得到广泛的应用。 本论文的研究课题是基于H.264/AVC视频编码标准的CAVLC(Context-based Adaptive Variable Length Coding,基于上下文的自适应可变长编码)编码算法研究及FPGA实现。对于变换后的熵编码,H.264/AVC支持两种编码模式:基于上下文的可变长编码(CAVLC)和基于上下文的自适应算术编码(CABAC,Context-based Adaptive BinaryArithmetic Coding)。在H.264/AVC中,尽管CAVLC算法也是采用了VLC编码,但是同以往标准不同,它所有的编码都是基于上下文进行。这种方法比传统的查单一表的方法提高了编码效率,但也增加了设计上的困难。 作者在全面学习H.264/AVC协议和深入研究CAVLC编码算法的基础上,确定了并行编码的CAVLC编码器结构框图,并总结出了影响CAVLC编码器实现的瓶颈。针对这些瓶颈,对CAVLC编码器中的各个功能模块进行了优化设计,这些优化设计包括多参考块的表格预测法、快速查找表法、算术消除法等。最后,用Verilog硬件描述语言对所设计的CAVLC编码器进行了描述,用EDA软件对其主要功能模块进行了仿真,并在Cyclone II系列EP2C20F484的FPGA上验证了它们的功能。结果表明,该CAVLC编码器各编码单元的编码速度得到了显著提高且均能满足实时通信要求,为整个CAVLC编码器的实时通信提供了良好的基础。
上传时间: 2013-06-22
上传用户:diamondsGQ
H.264/AVC是国际电信联盟与国际标准化组织/国际电工委员会联合推出的活动图像编码标准,简称H.264。作为最新的国际视频编码标准,H.264/AVC与MPEG-4、H.263等视频编码标准相比,性能有了很大的提高,并已在流媒体、数字电视、电话会议、视频存储等诸多领域得到广泛的应用。 本论文的研究课题是基于H.264/AVC视频编码标准的CAVLC(Context-based Adaptive Variable Length Coding,基于上下文的自适应可变长编码)编码算法研究及FPGA实现。对于变换后的熵编码,H.264/AVC支持两种编码模式:基于上下文的可变长编码(CAVLC)和基于上下文的自适应算术编码(CABAC,Context-based Adaptive BinaryArithmetic Coding)。在H.264/AVC中,尽管CAVLC算法也是采用了VLC编码,但是同以往标准不同,它所有的编码都是基于上下文进行。这种方法比传统的查单一表的方法提高了编码效率,但也增加了设计上的困难。 作者在全面学习H.264/AVC协议和深入研究CAVLC编码算法的基础上,确定了并行编码的CAVLC编码器结构框图,并总结出了影响CAVLC编码器实现的瓶颈。针对这些瓶颈,对CAVLC编码器中的各个功能模块进行了优化设计,这些优化设计包括多参考块的表格预测法、快速查找表法、算术消除法等。最后,用Verilog硬件描述语言对所设计的CAVLC编码器进行了描述,用EDA软件对其主要功能模块进行了仿真,并在Cyclone II系列EP2C20F484的FPGA上验证了它们的功能。结果表明,该CAVLC编码器各编码单元的编码速度得到了显著提高且均能满足实时通信要求,为整个CAVLC编码器的实时通信提供了良好的基础。
上传时间: 2013-06-04
上传用户:libenshu01
本书从应用的角度,详细地介绍了MCS-51单片机的硬件结构、指令系统、各种硬件接口设计、各种常用的数据运算和处理程序及接口驱动程序的设计以及MCS-51单片机应用系统的设计,并对MCS-51单片机应用系统设计中的抗干扰技术以及各种新器件也作了详细的介绍。本书突出了选取内容的实用性、典型性。书中的应用实例,大多来自科研工作及教学实践,且经过检验,内容丰富、翔实。 本书可作为工科院校的本科生、研究生、专科生学习MCS-51单片机课程的教材,也可供从事自动控制、智能仪器仪表、测试、机电一体化以及各类从事MCS-51单片机应用的工程技术人员参考。 第一章 单片微型计等机概述 1.1 单片机的历史及发展概况 1.2 单片机的发展趋势 1.3 单片机的应用 1.3.1 单片机的特点 1.3.2 单片机的应用范围 1.4 8位单片机的主要生产厂家和机型 1.5 MCS-51系列单片机 第二章 MCS-51单片机的硬件结构 2.1 MCS-51单片机的硬件结构 2.2 MCS-51的引脚 2.2.1 电源及时钟引脚 2.2.2 控制引脚 2.2.3 I/O口引脚 2.3 MCS-51单片机的中央处理器(CPU) 2.3.1 运算部件 2.3.2 控制部件 2.4 MCS-51存储器的结构 2.4.1 程序存储器 2.4.2 内部数据存储器 2.4.3 特殊功能寄存器(SFR) 2.4.4 位地址空间 2.4.5 外部数据存储器 2.5 I/O端口 2.5.1 I/O口的内部结构 2.5.2 I/O口的读操作 2.5.3 I/O口的写操作及负载能力 2.6 复位电路 2.6.1 复位时各寄存器的状态 2.6.2 复位电路 2.7 时钟电路 2.7.1 内部时钟方式 2.7.2 外部时钟方式 2.7.3 时钟信号的输出 第三章 MCS-51的指令系统 3.1 MCS-51指令系统的寻址方式 3.1.1 寄存器寻址 3.1.2 直接寻址 3.1.3 寄存器间接寻址 3.1.4 立即寻址 3.1.5 基址寄存器加变址寄存器间址寻址 3.2 MCS-51指令系统及一般说明 3.2.1 数据传送类指令 3.2.2 算术操作类指令 3.2.3 逻辑运算指令 3.2.4 控制转移类指令 3.2.5 位操作类指令 第四章 MCS-51的定时器/计数器 4.1 定时器/计数器的结构 4.1.1 工作方式控制寄存器TMOD 4.1.2 定时器/计数器控制寄存器TCON 4.2 定时器/计数器的四种工作方式 4.2.1 方式0 4.2.2 方式1 4.2.3 方式2 4.2.4 方式3 4.3 定时器/计数器对输入信号的要求 4.4 定时器/计数器编程和应用 4.4.1 方式o应用(1ms定时) 4.4.2 方式1应用 4.4.3 方式2计数方式 4.4.4 方式3的应用 4.4.5 定时器溢出同步问题 4.4.6 运行中读定时器/计数器 4.4.7 门控制位GATE的功能和使用方法(以T1为例) 第五章 MCS-51的串行口 5.1 串行口的结构 5.1.1 串行口控制寄存器SCON 5.1.2 特殊功能寄存器PCON 5.2 串行口的工作方式 5.2.1 方式0 5.2.2 方式1 5.2.3 方式2 5.2.4 方式3 5.3 多机通讯 5.4 波特率的制定方法 5.4.1 波特率的定义 5.4.2 定时器T1产生波特率的计算 5.5 串行口的编程和应用 5.5.1 串行口方式1应用编程(双机通讯) 5.5.2 串行口方式2应用编程 5.5.3 串行口方式3应用编程(双机通讯) 第六章 MCS-51的中断系统 6.1 中断请求源 6.2 中断控制 6.2.1 中断屏蔽 6.2.2 中断优先级优 6.3 中断的响应过程 6.4 外部中断的响应时间 6.5 外部中断的方式选择 6.5.1 电平触发方式 6.5.2 边沿触发方式 6.6 多外部中断源系统设计 6.6.1 定时器作为外部中断源的使用方法 6.6.2 中断和查询结合的方法 6.6.3 用优先权编码器扩展外部中断源 第七章 MCS-51单片机扩展存储器的设计 7.1 概述 7.1.1 只读存储器 7.1.2 可读写存储器 7.1.3 不挥发性读写存储器 7.1.4 特殊存储器 7.2 存储器扩展的基本方法 7.2.1 MCS-51单片机对存储器的控制 7.2.2 外扩存储器时应注意的问题 7.3 程序存储器EPROM的扩展 7.3.1 程序存储器的操作时序 7.3.2 常用的EPROM芯片 7.3.3 外部地址锁存器和地址译码器 7.3.4 典型EPROM扩展电路 7.4 静态数据存储的器扩展 7.4.1 外扩数据存储器的操作时序 7.4.2 常用的SRAM芯片 7.4.3 64K字节以内SRAM的扩展 7.4.4 超过64K字节SRAM扩展 7.5 不挥发性读写存储器扩展 7.5.1 EPROM扩展 7.5.2 SRAM掉电保护电路 7.6 特殊存储器扩展 7.6.1 双口RAMIDT7132的扩展 7.6.2 快擦写存储器的扩展 7.6.3 先进先出双端口RAM的扩展 第八章 MCS-51扩展I/O接口的设计 8.1 扩展概述 8.2 MCS-51单片机与可编程并行I/O芯片8255A的接口 8.2.1 8255A芯片介绍 8.2.2 8031单片机同8255A的接口 8.2.3 接口应用举例 8.3 MCS-51与可编程RAM/IO芯片8155H的接口 8.3.1 8155H芯片介绍 8.3.2 8031单片机与8155H的接口及应用 8.4 用MCS-51的串行口扩展并行口 8.4.1 扩展并行输入口 8.4.2 扩展并行输出口 8.5 用74LSTTL电路扩展并行I/O口 8.5.1 用74LS377扩展一个8位并行输出口 8.5.2 用74LS373扩展一个8位并行输入口 8.5.3 MCS-51单片机与总线驱动器的接口 8.6 MCS-51与8253的接口 8.6.1 逻辑结构与操作编址 8.6.2 8253工作方式和控制字定义 8.6.3 8253的工作方式与操作时序 8.6.4 8253的接口和编程实例 第九章 MCS-51与键盘、打印机的接口 9.1 LED显示器接口原理 9.1.1 LED显示器结构 9.1.2 显示器工作原理 9.2 键盘接口原理 9.2.1 键盘工作原理 9.2.2 单片机对非编码键盘的控制方式 9.3 键盘/显示器接口实例 9.3.1 利用8155H芯片实现键盘/显示器接口 9.3.2 利用8031的串行口实现键盘/显示器接口 9.3.3 利用专用键盘/显示器接口芯片8279实现键盘/显示器接口 9.4 MCS-51与液晶显示器(LCD)的接口 9.4.1 LCD的基本结构及工作原理 9.4.2 点阵式液晶显示控制器HD61830介绍 9.5 MCS-51与微型打印机的接口 9.5.1 MCS-51与TPμp-40A/16A微型打印机的接口 9.5.2 MCS-51与GP16微型打印机的接口 9.5.3 MCS-51与PP40绘图打印机的接口 9.6 MCS-51单片机与BCD码拨盘的接口设计 9.6.1 BCD码拨盘 9.6.2 BCD码拨盘与单片机的接口 9.6.3 拨盘输出程序 9.7 MCS-51单片机与CRT的接口 9.7.1 SCIBCRT接口板的主要特点及技术参数 9.7.2 SCIB接口板的工作原理 9.7.3 SCIB与MCS-51单片机的接口 9.7.4 SCIB的CRT显示软件设计方法 第十章 MCS-51与D/A、A/D的接口 10.1 有关DAC及ADC的性能指标和选择要点 10.1.1 性能指标 10.1.2 选择ABC和DAC的要点 10.2 MCS-51与DAC的接口 10.2.1 MCS-51与DAC0832的接口 10.2.2 MCS-51同DAC1020及DAC1220的接口 10.2.3 MCS-51同串行输入的DAC芯片AD7543的接口 10.3 MCS-51与ADC的接口 10.3.1 MCS-51与5G14433(双积分型)的接口 10.3.2 MCS-51与ICL7135(双积分型)的接口 10.3.3 MCS-51与ICL7109(双积分型)的接口 10.3.4 MCS-51与ADC0809(逐次逼近型)的接口 10.3.5 8031AD574(逐次逼近型)的接口 10.4 V/F转换器接口技术 10.4.1 V/F转换器实现A/D转换的方法 10.4.2 常用V/F转换器LMX31简介 10.4.3 V/F转换器与MCS-51单片机接口 10.4.4 LM331应用举例 第十一章 标准串行接口及应用 11.1 概述 11.2 串行通讯的接口标准 11.2.1 RS-232C接口 11.2.2 RS-422A接口 11.2.3 RS-485接口 11.2.4 各种串行接口性能比较 11.3 双机串行通讯技术 11.3.1 单片机双机通讯技术 11.3.2 PC机与8031单片机双机通讯技术 11.4 多机串行通讯技术 11.4.1 单片机多机通讯技术 11.4.2 IBM-PC机与单片机多机通讯技术 11.5 串行通讯中的波特率设置技术 11.5.1 IBM-PC/XT系统中波特率的产生 11.5.2 MCS-51单片机串行通讯波特率的确定 11.5.3 波特率相对误差范围的确定方法 11.5.4 SMOD位对波特率的影响 第十二章 MCS-51的功率接口 12.1 常用功率器件 12.1.1 晶闸管 12.1.2 固态继电器 12.1.3 功率晶体管 12.1.4 功率场效应晶体管 12.2 开关型功率接口 12.2.1 光电耦合器驱动接口 12.2.2 继电器型驱动接口 12.2.3 晶闸管及脉冲变压器驱动接口 第十三章 MCS-51单片机与日历的接口设计 13.1 概述 13.2 MCS-51单片机与实时日历时钟芯片MSM5832的接口设计 13.2.1 MSM5832性能及引脚说明 13.2.2 MSM5832时序分析 13.2.3 8031单片机与MSM5832的接口设计 13.3 MCS-51单片机与实时日历时钟芯片MC146818的接口设计 13.3.1 MC146818性能及引脚说明 13.3.2 MC146818芯片地址分配及各单元的编程 13.3.3 MC146818的中断 13.3.4 8031单片机与MC146818的接口电路设计 13.3.5 8031单片机与MC146818的接口软件设计 第十四章 MCS-51程序设计及实用子程序 14.1 查表程序设计 14.2 散转程序设计 14.2.1 使用转移指令表的散转程序 14.2.2 使用地地址偏移量表的散转程序 14.2.3 使用转向地址表的散转程序 14.2.4 利用RET指令实现的散转程序 14.3 循环程序设计 14.3.1 单循环 14.3.2 多重循环 14.4 定点数运算程序设计 14.4.1 定点数的表示方法 14.4.2 定点数加减运算 14.4.3 定点数乘法运算 14.4.4 定点数除法 14.5 浮点数运算程序设计 14.5.1 浮点数的表示 14.5.2 浮点数的加减法运算 14.5.3 浮点数乘除法运算 14.5.4 定点数与浮点数的转换 14.6 码制转换 ……
上传时间: 2013-11-06
上传用户:xuanjie
PIC16F877 单片机的键盘和LED 数码显示接口 1 PIC16F877单片机与键盘和LED数码显示的硬件接口电路单片机的许多应用都需要进行人机对话,最简单的人机对话需要LED 数码管显示数字和少量字符;键盘是解决计算机输入的简单手段;借此可以向计算机输入程序、置数、送操作命令、控制程序的执行等等,所以使用非常广泛。图1 键盘、LED数码显示与PIC16F877 单片机的接口电路本例中采用8 个按键组成的小键盘,4 只共阴极的LED 数码管,采用4 片74LS373 驱动数码管,采用的驱动方法是静态方式。使用1 片74LS245 作为键盘的接口;这些外围器件与PIC16F877 单片机的接口电路如图1 所示,这种连接方法与51 系列的单片机连接方法一样,其他的连接方法还有好几种,PIC16F877 单片机的键盘输入接法还有其他特殊而十分方便好用的方式。8 键键盘通过74LS245 与单片机相连,键盘按键状态的数据输入由RC3 输出脚控制;当RC3=“0”时,键盘状态从74LS245 的A 端输出到单片机的PORTB口,此时读PORTB口的数据即为键盘状态。为了及时地响应键盘操作,需要经常对键盘进行扫描;扫描的方式有许多种,我们将键盘的扫描程序安排在主程序的循环执行过程中的方式,并采用20ms延迟来消除按键的抖动问题,此外,为了实现每按键一次只响应一次的功能,在执行相应的按键程序之前,必须确保按键已经松开;在本例中这一措施有效的防止了数据抖动过快的问题。LED 数码显示有动态扫描和静态显示两种方式(图1 采取的方式为静态方式),在动态扫描方式中,各数码显示是轮流点亮的,即控制数码显示的位选信号和相应的要显示的数码的字形代码同时逐一送出,反复不已,由于视觉的暂留现象,却好象全都点亮着,这种电路的接法以后再介绍。在静态方式中,只要将数据送出锁存以后,各数码显示的数据不需要刷新,只要数据不需改变,就可以不去管他,所以称为静态显示。在图1 电路中,输出显示的操作简化为对74LS373 的并口操作而已。由于静态方式的工作原理比较简单,编程也比较直观简单,程序间的相互关联很少。因此编程容易,但要增加硬件,成本较高;与之相比,动态扫描的编程虽然要复杂一些,但因其所用硬件少,成本低。由数码转化为字形代码可采用软件译码、硬件译码等两种方式。软件译码是将各数码的字形代码构成一个表格存储于内存之中,在显示数码时,通过执行查表程序而得到相应的字形代码,再将之送入数码显示输出电路进行显示,本例即采用这种方式,这种方式的编程与单片机有关,在程序中给出了PIC16F877 的编程例程,对需要熟悉PIC16F877 单片机的人员有一定的参考价值。硬件译码则采用CD4511、74LS46、74LS47、74LS48、74LS49等BCD 码—7段锁存、译码、驱动芯片直接译出字形代码,点亮LED。74LS373 由LE 端对要显示的数据进行锁存控制,实现LED 的静态显示。采用了PIC16F877 的端口输出操作,模拟74LS373 的数据锁存时序,即由软件实现数据锁存,这种方法可以十分容易的改变时序和延迟长短,使高速设备可以与低速设备联系配合好,设计简单方便,不好的地方是编程较长和稍微复杂一点。这种编程方法在下面的程序中有很好的体现。
上传时间: 2013-10-29
上传用户:cuiyashuo
单片机指令系统原理 51单片机的寻址方式 学习汇编程序设计,要先了解CPU的各种寻址法,才能有效的掌握各个命令的用途,寻址法是命令运算码找操作数的方法。在我们学习的8051单片机中,有6种寻址方法,下面我们将逐一进行分析。 立即寻址 在这种寻址方式中,指令多是双字节的,一般第一个字节是操作码,第二个字节是操作数。该操作数直接参与操作,所以又称立即数,有“#”号表示。立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。 例如:MOV A,#3AH这条指令的指令代码为74H、3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A中。MOV DPTR,#8200H在前面学单片机的专用寄存器时,我们已学过,DPTR是一个16位的寄存器,它由DPH及DPL两个8位的寄存器组成。这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。这里也特别说明一下:在80C51单片机的指令系统中,仅有一条指令的操作数是16位的立即数,其功能是向地址指针DPTR传送16位的地址,即把立即数的高8位送入DPH,低8位送入DPL。 直接寻址 直接寻址方式是指在指令中操作数直接以单元地址的形式给出,也就是在这种寻址方式中,操作数项给出的是参加运算的操作数的地址,而不是操作数。例如:MOV A,30H 这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。 在80C51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据存储器以及位地址空间,具体的说就是:1、内部数据存储器RAM低128单元。在指令中是以直接单元地址形式给出。我们知道低128单元的地址是00H-7FH。在指令中直接以单元地址形式给出这句话的意思就是这0-127共128位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。2、位寻址区。20H-2FH地址单元。3、特殊功能寄存器。专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。例如下面我们分析的一条指令 MOV IE,#85H 前面的学习我们已知道,中断允许寄存器IE的地址是80H,那么也就是这条指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 关于数据存储器RAM的内部情况,请查看我们课程的第十二课。 直接寻址是唯一能访问特殊功能寄存器的寻址方式! 大家来分析下面几条指令:MOV 65H,A ;将A的内容送入内部RAM的65H单元地址中MOV A,direct ;将直接地址单元的内容送入A中MOV direct,direct;将直接地址单元的内容送直接地址单元MOV IE,#85H ;将立即数85H送入中断允许寄存器IE 前面我们已学过,数据前面加了“#”的,表示后面的数是立即数(如#85H,就表示85H就是一个立即数),数据前面没有加“#”号的,就表示后面的是一个地址地址(如,MOV 65H,A这条指令的65H就是一个单元地址)。 寄存器寻址 寄存器寻址的寻址范围是:1、4个工作寄存器组共有32个通用寄存器,但在指令中只能使用当前寄存器组(工作寄存器组的选择在前面专用寄存器的学习中,我们已知道,是由程序状态字PSW中的RS1和RS0来确定的),因此在使用前常需要通过对PSW中的RS1、RS0位的状态设置,来进行对当前工作寄存器组的选择。2、部份专用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和进位位CY。 寄存器寻址方式是指操作数在寄存器中,因此指定了寄存器名称就能得到操作数。例如:MOV A,R0这条指令的意思是把寄存器R0的内容传送到累加器A中,操作数就在R0中。INC R3这条指令的意思是把寄存器R3中的内容加1 从前面的学习中我产应可以理解到,其实寄存器寻址方式就是对由PSW程序状态字确定的工作寄存器组的R0-R7进行读/写操作。 寄存器间接寻址 寄存间接寻址方式是指寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。 MCS-51单片机规定工作寄存器的R0、R1做为间接寻址寄存器。用于寻址内部或外部数据存储器的256个单元。为什么会是256个单元呢?我们知道,R0或者R1都是一个8位的寄存器,所以它的寻址空间就是2的八次方=256。例:MOV R0,#30H ;将值30H加载到R0中 MOV A,@R0 ;把内部RAM地址30H内的值放到累加器A中 MOVX A,@R0 ;把外部RAM地址30H内的值放到累加器A中 大家想想,如果用DPTR做为间址寄存器,那么它的寻址范围是多少呢?DPTR是一个16位的寄存器,所以它的寻址范围就是2的十六次方=65536=64K。因用DPTR做为间址寄存器的寻址空间是64K,所以访问片外数据存储器时,我们通常就用DPTR做为间址寄存器。例:MOV DPTR,#1234H ;将DPTR值设为1234H(16位) MOVX A,@DPTR ;将外部RAM或I/O地址1234H内的值放到累加器A中 在执行PUSH(压栈)和POP(出栈)指令时,采用堆栈指针SP作寄存器间接寻址。例:PUSH 30H ;把内部RAM地址30H内的值放到堆栈区中堆栈区是由SP寄存器指定的,如果执行上面这条命令前,SP为60H,命令执行后会把内部RAM地址30H内的值放到RAM的61H内。 那么做为寄存器间接寻址用的寄存器主要有哪些呢?我们前面提到的有四个,R0、R1、DPTR、SP 寄存器间接寻址范围总结:1、内部RAM低128单元。对内部RAM低128单元的间接寻址,应使用R0或R1作间址寄存器,其通用形式为@Ri(i=0或1)。 2、外部RAM 64KB。对外部RAM64KB的间接寻址,应使用@DPTR作间址寻址寄存器,其形式为:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的单元的内容送入累加器A中。外部RAM的低256单元是一个特殊的寻址区,除可以用DPTR作间址寄存器寻址外,还可以用R0或R1作间址寄存器寻址。例如MOVX A,@R0;这条指令的意思是,把R0指定的外部RAM单元的内容送入累加器A。 堆栈操作指令(PUSH和POP)也应算作是寄存器间接寻址,即以堆栈指针SP作间址寄存器的间接寻址方式。 寄存器间接寻址方式不可以访问特殊功能寄存器!! 寄存器间接寻址也须以寄存器符号的形式表示,为了区别寄存器寻址我寄存器间接寻址的区别,在寄存器间接寻址方式式中,寄存器的名称前面加前缀标志“@”。 基址寄存器加变址寄存器的变址寻址 这种寻址方式以程序计数器PC或DPTR为基址寄存器,累加器A为变址寄存器,变址寻址时,把两者的内容相加,所得到的结果作为操作数的地址。这种方式常用于访问程序存储器ROM中的数据表格,即查表操作。变址寻址只能读出程序内存入的值,而不能写入,也就是说变址寻址这种方式只能对程序存储器进行寻址,或者说它是专门针对程序存储器的寻址方式。例:MOVC A,@A+DPTR这条指令的功能是把DPTR和A的内容相加,再把所得到的程序存储器地址单元的内容送A假若指令执行前A=54H,DPTR=3F21H,则这条指令变址寻址形成的操作数地址就是54H+3F21H=3F75H。如果3F75H单元中的内容是7FH,则执行这条指令后,累加器A中的内容就是7FH。 变址寻址的指令只有三条,分别如下:JMP @A+DPTRMOVC A,@A+DPTRMOVC A,@A+PC 第一条指令JMP @A+DPTR这是一条无条件转移指令,这条指令的意思就是DPTR加上累加器A的内容做为一个16位的地址,执行JMP这条指令是,程序就转移到A+DPTR指定的地址去执行。 第二、三条指令MOVC A,@A+DPTR和MOVC A,@A+PC指令这两条指令的通常用于查表操作,功能完全一样,但使用起来却有一定的差别,现详细说明如下。我们知道,PC是程序指针,是十六位的。DPTR是一个16位的数据指针寄存器,按理,它们的寻址范围都应是64K。我们在学习特殊功能寄存器时已知道,程序计数器PC是始终跟踪着程序的执行的。也就是说,PC的值是随程序的执行情况自动改变的,我们不可以随便的给PC赋值。而DPTR是一个数据指针,我们就可以给空上数据指针DPTR进行赋值。我们再看指令MOVC A,@A+PC这条指令的意思是将PC的值与累加器A的值相加作为一个地址,而PC是固定的,累加器A是一个8位的寄存器,它的寻址范围是256个地址单元。讲到这里,大家应可明白,MOVC A,@A+PC这条指令的寻址范围其实就是只能在当前指令下256个地址单元。所在,这在我们实际应用中,可能就会有一个问题,如果我们需要查询的数据表在256个地址单元之内,则可以用MOVC A,@A+PC这条指令进行查表操作,如果超过了256个单元,则不能用这条指令进行查表操作。刚才我们已说到,DPTR是一个数据指针,这个数据指针我们可以给它赋值操作的。通过赋值操作。我们可以使MOVC A,@A+DPTR这条指令的寻址范围达到64K。这就是这两条指令在实际应用当中要注意的问题。 变址寻址方式是MCS-51单片机所独有的一种寻址方式。 位寻址 80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0。 位寻址的范围,也就是哪些部份可以进行位寻址: 1、我们在第十二课学习51单片机的存储器结构时,我们已知道在单片机的内部数据存储器RAM的低128单元中有一个区域叫位寻址区。它的单元地址是20H-2FH。共有16个单元,一个单元是8位,所以位寻址区共有128位。这128位都单独有一个位地址,其位地址的名字就是00H-7FH。这里就有一个比较麻烦的问题需要大家理解清楚了。我们在前面的学习中00H、01H。。。。7FH等等,所表示的都是一个字节(或者叫单元地址),而在这里,这些数据都变成了位地址。我们在指令中,或者在程序中如何来区分它是一个单元地址还是一个位地址呢?这个问题,也就是我们现在正在研究的位寻址的一个重要问题。其实,区分这些数据是位地址还是单元地址,我们都有相应的指令形式的。这个问题我们在后面的指令系统学习中再加以论述。 2、对专用寄存器位寻址。这里要说明一下,不是所有的专用寄存器都可以位寻址的。具体哪些专用寄存器可以哪些专用寄存器不可以,请大家回头去看看我们前面关于专用寄存器的相关文章。一般来说,地址单元可以被8整除的专用寄存器,通常都可以进行位寻址,当然并不是全部,大家在应用当中应引起注意。 专用寄存器的位寻址表示方法: 下面我们以程序状态字PSW来进行说明 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示为D5H MOV C,D5H 2、位名称表示:表示该位的名称,例如PSW的位5是F0,所以可以用F0表示 MOV C,F0 3、单元(字节)地址加位表示:D0H单元位5,表示为DOH.5 MOV C,D0H.5 4、专用寄存器符号加位表示:例如PSW.5 MOV C,PSW.5 这四种方法实现的功能都是相同的,只是表述的方式不同而已。 例题: 1. 说明下列指令中源操作数采用的寻址方式。 MOV R5,R7 答案:寄存器寻址方式 MOV A,55H 直接寻址方式 MOV A,#55H 立即寻址方式 JMP @A+DPTR 变址寻址方式 MOV 30H,C 位寻址方式 MOV A,@R0 间接寻址方式 MOVX A,@R0 间接寻址方式 改错题 请判断下列的MCS-51单片机指令的书写格式是否有错,若有,请说明错误原因。 MOV R0,@R3 答案:间址寄存器不能使用R2~R7。 MOVC A,@R0+DPTR 变址寻址方式中的间址寄存器不可使用R0,只可使用A。 ADD R0,R1 运算指令中目的操作数必须为累加器A,不可为R0。 MUL AR0 乘法指令中的乘数应在B寄存器中,即乘法指令只可使用AB寄存器组合。
上传时间: 2013-11-11
上传用户:caozhizhi
单片机入门基础知识大全免费下载 单片机第八课(寻址方式与指令系统) 通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051的指令部份。 一、概述 1、指令的格式 我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很“笨”,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码格式,也说是数字的形式。但这种形式实在是为难我们人了,太难记了,于是有另一种格式,助记符格式,如MOV P1,#0FFH,这样就好记了。 这两种格式之间的关系呢,我们不难理解,本质上它们完全等价,只是形式不一样而已。 2、汇编 我们写指令使用汇编格式,而计算机只懂机器码格式,所以要将我们写的汇编格式的指令转换为机器码格式,这种转换有两种方法:手工汇编和机器汇编。手工汇编实际上就是查表,因为这两种格式纯粹是格式不同,所以是一一对应的,查一张表格就行了。不过手工查表总是嫌麻烦,所以就有了计算机软件,用计算机软件来替代手工查表,这就是机器汇编。 二、寻址 让我们先来复习一下我们学过的一些指令:MOV P1,#0FFH,MOV R7,#0FFH这些指令都是将一些数据送到相应的位置中去,为什么要送数据呢?第一个因为送入的数可以让灯全灭掉,第二个是为了要实现延时,从这里我们可以看出来,在用单片机的编程语言编程时,经常要用到数据的传递,事实上数据传递是单片机编程时的一项重要工作,一共有28条指令(单片机共111条指令)。下面我们就从数据传递类指令开始吧。 分析一下MOV P1,#0FFH这条指令,我们不难得出结论,第一个词MOV是命令动词,也就是决定做什么事情的,MOV是MOVE少写了一个E,所以就是“传递”,这就是指令,规定做什么事情,后面还有一些参数,分析一下,数据传递必须要有一个“源”也就是你要送什么数,必须要有一个“目的”,也就是你这个数要送到什么地方去,显然在上面那条指令中,要送的数(源)就是0FFH,而要送达的地方(目的地)就是P1这个寄存器。在数据传递类指令中,均将目的地写在指令的后面,而将源写在最后。 这条指令中,送给P1是这个数本身,换言之,做完这条指令后,我们可以明确地知道,P1中的值是0FFH,但是并不是任何时候都可以直接给出数本身的。例如,在我们前面给出的延时程序例是这样写的: MAIN: SETB P1.0 ;(1) LCALL DELAY ;(2) CLR P1.0 ;(3) LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,#250 ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表1 MAIN: SETB P1.0 ;(1) MOV 30H,#255 LCALL DELAY ; CLR P1.0 ;(3) MOV 30H,#200 LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,30H ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表2 这样一来,我每次调用延时程序延时的时间都是相同的(大致都是0.13S),如果我提出这样的要求:灯亮后延时时间为0.13S灯灭,灯灭后延时0.1秒灯亮,如此循环,这样的程序还能满足要求吗?不能,怎么办?我们可以把延时程序改成这样(见表2):调用则见表2中的主程,也就是先把一个数送入30H,在子程序中R7中的值并不固定,而是根据30H单元中传过来的数确定。这样就可以满足要求。 从这里我们可以得出结论,在数据传递中要找到被传递的数,很多时候,这个数并不能直接给出,需要变化,这就引出了一个概念:如何寻找操作数,我们把寻找操作数所在单元的地址称之为寻址。在这里我们直接使用数所在单元的地址找到了操作数,所以称这种方法为直接寻址。除了这种方法之外,还有一种,如果我们把数放在工作寄存器中,从工作寄存器中寻找数据,则称之为寄存器寻址。例:MOV A,R0就是将R0工作寄存器中的数据送到累加器A中去。提一个问题:我们知道,工作寄存器就是内存单元的一部份,如果我们选择工作寄存器组0,则R0就是RAM的00H单元,那么这样一来,MOV A,00H,和MOV A,R0不就没什么区别了吗?为什么要加以区分呢?的确,这两条指令执行的结果是完全相同的,都是将00H单元中的内容送到A中去,但是执行的过程不同,执行第一条指令需要2个周期,而第二条则只需要1个周期,第一条指令变成最终的目标码要两个字节(E5H 00H),而第二条则只要一个字节(E8h)就可以了。 这么斤斤计较!不就差了一个周期吗,如果是12M的晶振的话,也就1个微秒时间了,一个字节又能有多少? 不对,如果这条指令只执行一次,也许无所谓,但一条指令如果执行上1000次,就是1毫秒,如果要执行1000000万次,就是1S的误差,这就很可观了,单片机做的是实时控制的事,所以必须如此“斤斤计较”。字节数同样如此。 再来提一个问题,现在我们已知,寻找操作数可以通过直接给的方式(立即寻址)和直接给出数所在单元地址的方式(直接寻址),这就够了吗? 看这个问题,要求从30H单元开始,取20个数,分别送入A累加器。 就我们目前掌握的办法而言,要从30H单元取数,就用MOV A,30H,那么下一个数呢?是31H单元的,怎么取呢?还是只能用MOV A,31H,那么20个数,不是得20条指令才能写完吗?这里只有20个数,如果要送200个或2000个数,那岂不要写上200条或2000条命令?这未免太笨了吧。为什么会出现这样的状况?是因为我们只会把地址写在指令中,所以就没办法了,如果我们不是把地址直接写在指令中,而是把地址放在另外一个寄存器单元中,根据这个寄存器单元中的数值决定该到哪个单元中取数据,比如,当前这个寄存器中的值是30H,那么就到30H单元中去取,如果是31H就到31H单元中去取,就可以解决这个问题了。怎么个解决法呢?既然是看的寄存器中的值,那么我们就可以通过一定的方法让这里面的值发生变化,比如取完一个数后,将这个寄存器单元中的值加1,还是执行同一条指令,可是取数的对象却不一样了,不是吗。通过例子来说明吧。 MOV R7,#20 MOV R0,#30H LOOP:MOV A,@R0 INC R0 DJNZ R7,LOOP 这个例子中大部份指令我们是能看懂的,第一句,是将立即数20送到R7中,执行完后R7中的值应当是20。第二句是将立即数30H送入R0工作寄存器中,所以执行完后,R0单元中的值是30H,第三句,这是看一下R0单元中是什么值,把这个值作为地址,取这个地址单元的内容送入A中,此时,执行这条指令的结果就相当于MOV A,30H。第四句,没学过,就是把R0中的值加1,因此执行完后,R0中的值就是31H,第五句,学过,将R7中的值减1,看是否等于0,不等于0,则转到标号LOOP处继续执行,因此,执行完这句后,将转去执行MOV A,@R0这句话,此时相当于执行了MOV A,31H(因为此时的R0中的值已是31H了),如此,直到R7中的值逐次相减等于0,也就是循环20次为止,就实现了我们的要求:从30H单元开始将20个数据送入A中。 这也是一种寻找数据的方法,由于数据是间接地被找到的,所以就称之为间址寻址。注意,在间址寻址中,只能用R0或R1存放等寻找的数据。 二、指令 数据传递类指令 1) 以累加器为目的操作数的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。 下面我们通过一些例子加以说明: MOV A,R1 ;将工作寄存器R1中的值送入A,R1中的值保持不变。 MOV A,30H ;将内存30H单元中的值送入A,30H单元中的值保持不变。 MOV A,@R1 ;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入A中。如执行命令前R1中的值为20H,则是将20H单元中的值送入A中。 MOV A,#34H ;将立即数34H送入A中,执行完本条指令后,A中的值是34H。 2)以寄存器Rn为目的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 这组指令功能是把源地址单元中的内容送入工作寄存器,源操作数不变。
上传时间: 2013-10-13
上传用户:3294322651
单片机应用技术选编(1) 第一章 单片机系统综合应用技术 11.1 且使用 8098单片机的几点体会 2 1.2 单片机的冷启动与热启动 31.3 大容量动态存储器在单片机系统中的应用111.4 MCS-51单片机系统中动态 RAM的刷新技巧141.5 MCS-51单片机系统中外RAM空间超64KB的扩展方法161.6 8031单片机P0口和P2口的应用开发 181.7 74LS164在 8031单片机中的两种用法261.8 用于 8031单片机的快速I/O接口281.9 MCS-51定时器定时常数初值的精确设定法301.10 8253的翻转问题及 MC6840的替代方法321.11 MCS-51单片机外部中断源的扩展设计351.12 MCS-51单片机多外中断扩展方法401.13 用优先权编码器74LS348扩展51系列单片机的外中断源421.14 用优先权编码器74LS148扩展51系列单片机的外中断源471.15 8031单片机与 BG5119A汉字库的接口方法521.16 可背插 SRAM的日历时钟 DS1216及其应用551.17 实时日历时钟集成电路MSM5832及其时序601.18 实时日历时钟集成电路MSM5832的接口技术631.19 实时时钟/日历芯片MC146818及其应用671.20 与 SICE仿真器通讯的IBM-PC机通讯程序的改进741.21 代码形式参数汇编子程序的应用821.22 单片机应用系统中的查表程序设计861.23 用状态综合法设计键盘监控程序901.24 单片机系统程序的加密技术961.25 MCS-96单片机程序保密的几种方法1001.26 GAL输出宏单元原理及使用105 1.27 通用阵列逻辑 GAL应用于步进电机控制实例110 第二章 传感器与前向通道接口技术1172.1 集成温度传感器 LM134及其应用1182.2 AD590集成温度一电流传感器原理及应用1242.3 集成温度传感器 AD590的应用1292.4 GS-800和 GS-130可燃气体传感器1332.5 集成化霍尔开关传感器1352.6 一种新颖实用的氧气/频率转换电路1392.7 MCS-51单片机与数字式温度传感器的接口设计1422.8 数字式温度传感器 SWC与 8031的接口及应用1452.9 低成本高精度压力传感器微机接口设计1472.10 峰值检测电路原理及应用1512.11 用 LF398制作的实用峰值和谷值保持电路1532.12 AD637集成真有效值转换器1562.13 传感器信号调理模块 ZB311622.14 2B31模块在称重智能仪表中的应用1662.15 传感器信号调理模块 2B30/2B31及其应用1692.16 高精度光纤位移测量系统的电路设计1752.17 集成电压一电流转换器 XTR100的工作原理及应用1792.18 传感器信号变送器 F693及其应用1852.19 一种用两片 VFC32构成的隔离放大器电路1912.20 实用线性隔离放大器1922.21 电桥放大电路中 7650的一些应用问题1942.22 A/D转换器 ICL7109的应用研究1962.23 5G14433模数转换器的启停控制2002.24 ADC1130模数转换器及其使用2042.25 16位 A/D转换器 ADC1143及其与 80C31单片机的接口2082.26 串行 I/O D/A A/D转换器与单片机的接口2132.27 单片机应用系统中的数字化传感器接口技术2162.28 ADVFC32 A/D转换接口技术2202.29 V/F和 F/V转换器 TD650原理与应用2242.30 AD650与 MC-51单片机的接口技术2302.31 利用VCO电路与单片机接口实现A/D转换2352.32 LM2907/2917系列F/V变换器在汽车检测中的应用2382.33 单信号多通道输入法改善 A/D转换器性能2412.34 用多片 A们转换芯片提高 A/D转换速度2452.35 实时数控增益调整与浮点 ADC电路2492.36 电荷耦合器件的单片机驱动2532.37 电荷耦合器件的结构原理与单片机的软件定时驱动2582.38 利用模数转换器提高转换信号的线性度2622.39 利用微型机解决转换中的非线性问题2682.40 利用非线性曲线存储实现线性化的方法2702.41 输出无非线性误差的可变电压源单臂电桥274 第三章 控制系统与后向通道接口技术2793.1 DAC1231与单片机 8031的接口技术2803.2 单路及多路 D八的光电隔离接口技术2843.3 光电隔离高压驱动器2903.4 TRAIC型光耦在 8031后向通道接口的应用分析2913.5 GD-L型光控晶闸管输出光耦合器2963.6 用于晶闸管过零触发的几种方式3003.7 固态继电器3043.8 固态继电器在交流电子开关中的应用3083.9 JCG型参数固态继电器3123.10 JCG型参数固态继电器的应用315 3.11 介绍几种适用于印刷电路板的超小型电磁继电器3193.12 用TWH8751集成电路构成微机控制的三步进电机驱动电源3223.13 3-4相步进电机控制器 5G87133253.14 5G0602报警电路及应用3283.15 两种新型温控光控兀的应用330 第四章 人机对话通道接口技术3334.1 单片机键盘接口设计3344.2 由电话机集成电路构成的单片机键盘接口电路3364.3 用 GAL设计的一种编码键盘接口3384.4 用 CMOS电路构成的非编码触摸键盘3424.5 设计薄膜开关应注意的一些问题3454.6 触摸式电子开关集成电路 5G673及其应用3504.7 8279用于拨码盘及显示器的接口设计3544.8 LED数码管的构造与特点3584.9 LED数码管的集成驱动器及配套器件3624.10 8279芯片的显示接口分析及32位数码管显示驱动电路设计366 4.11 用三端可调稳压块代替LED显示器的限流电阻3704.12 液晶显示器件的构造与特点3714.13 LCD七段显示器与单片机的接口3744.14 液晶显示器与单片机的接口技术3764.15 可编程LCD控制驱动器PPD72253814.16 微机总线兼容的四位 LCD驱动电路 TSC7211AM3874.17 使用8255的双极性归零脉冲驱动液晶显示器接口3914.18 DMC16230型 LCD显示模块的接口技术3954.19 点阵式液晶显示器原理及应用4034.20 实用液晶显示电路4094.21 8031控制的 CRT显示控制接口4144.22 用 8031控制多台彩色显示器的实现方法4194.23 高级语言处理器--T6668的结构与典型电路4234.24 延长 T6668语言电路录放时间的方法4294.25 T6668高级语音开发站4324.26 语言处理器 T6668在电话报警系统中的应用4354.27 新型语音处理器YYH16439 第五章 网络、通讯控制与多机系统4415.1 IBM-PC/XT和单片机通讯系统的设计4425.2 IBM-PC/XT微机与单片机的两种通讯接口4485.3 MCS-51单片机与 IBMPC微机的串行通讯4525.4 中央控制端与 MCS-51单片机间的数据通讯4595.5 IBMPC机与 MCS-51单片机的快速数据通讯4665.6 8031单片机与 PC-1500计算机的通讯4735.7 多片 MCS-51系统的一种串行通讯方式4775.8 多单片机处理系统并行通讯的实现4815.9 半双工远距离电流环多机通讯接口电路4855.10 多微机系统共享 RAM电路4905.11 串行通讯中的波特率设置4925.12 在MCS-51单片机的串行通讯中实现波特率的自动整定4965.13 J274和 J275在微机分布式测控系统中的应用5005.14 单电缆传送双向数据5045.15 新颖的多路遥控兀编译码器5055.16 DTMF在单片机无线数据通讯中的应用5085.17 MCS-8031单片机在红外遥控装置中的应用5155.18 一种实用光纤数字遥测系统5185.19 智能仪表通讯系统中一种冗余通道的设计5245.20 EIARS-232-C接口使用中的几个问题528 第六章 电源、电源变换与电源监视5316.1 电源扩展电路5326.2 一种简单的直流三倍压电路533 6.3 直流电源变换集成电路5356.4 直流电压变换器ICL7660的应用5376.5 一种廉价高精密基准电压源5406.6 精密可调基准电压源及其应用5416.7 引脚可编程精密基准电压源AD584及其应用5496.8 几种新型恒流源集成电路5536.9 CW334三端可调恒流源及应用5576.10 电源电压监视用芯片TL7705CP简介5606.11 电源电压监视用芯片TL7700简介5646.12 WMS7705B电源监视用芯片简介5676.13 具有HMOS结构的MCS-51系列单片机提供后备电源的方法570 第七章 系统抗于扰技术5757.1 微型计算机系统的抗干扰措施5767.2 计算机应用系统抗干扰问题5797.3 微机在工业应用中的抗干扰措施5867.4 利用电源监视TL7705芯片的抗电源于扰新方法5917.5 利用电源监视芯片WMS7705的抗电源干扰新方法5947.6 具有浪涌抑制能力的 TVP 6017.7 瞬变电压抑制M极管TVP的特性及应用6047.8 单片机实时控制软件抗干扰编程方法的探讨6077.9 一种简单实用的微机死机自复位抗干扰技术6107.10 单片机程序的监视保护6127.11 软件 WATCHDOG系统615 7.12 一种实用的"看门狗"电路6187.13 高电压下测量系统的抗干扰措施619 第八章 应用实例6218.1 单片机在多功能函数发生器中的应用6228.2 单片机波形发生器6298.3 单片机控制的调幅波发生器6338.4 用 8031单片机解调时统信号6368.5 具有 114DB动态范围的浮点数据采集系统6418.6 电热恒温箱单片微机控制系统6468.7 智能 I一、C丑测试仪的原理及设计6528.8 采用 LMS算法的单片机数字交流电桥6568.9 单片微机的数字相位测试仪6598.10 单片机的气体流量测量6628.11 单片机的相关流量仪6688.12 723型可见分光光度计6758.13 多功能微电脑电子秤6798.14 智能路面回弹检测仪6838.15 使用 CCD的单片机动态布面检测系统6878.16 使用 CCD的单片机激光衍射测径系统6908.17 使用 CCD的单片机动态线径测量仪6958.18 使用CCD的单片机中型热轧圆钢直径检测仪7018.19 用 MCS-51单片微机实现织布机的监测7058.20 单片机在工频参量测试中的应用7098.21 单片机 8098在直线电机控制中的应用715?
上传时间: 2014-12-28
上传用户:liufei