为简化总线式RS485隔离器的设计,提出基于脉冲变压器的总线式RS485隔离器的技术方案。该方案具有简单实用、无需电源、无需考虑数据流向、在有限范围内波特率自适应、底层用户群体易于理解和掌控等特点。给出了基本实验电路和脉冲变压器的主要设计依据。基于脉冲变压器的总线式RS485隔离器,尤其适合工业环境下半双工的A、B两线制RS485通信网的升级改造,其基本思想也适用于全双工的W、X、Y、Z四线制RS485/RS422通信网。
上传时间: 2013-10-07
上传用户:lizx30340
在基本Sprott-B混沌系统数学模型的基础上,引入一个控制参数进行系统改造,构建出一个恒定Lyapunov指数谱鲁棒混沌系统。通过相轨图、Lyapunov指数谱和分岔图等动力学工具对系统进行了仿真分析。研究结果表明,系统对唯一的控制参数保持恒定的Lyapunov指数谱,从而工作于鲁棒混沌状态,理论分析则揭示出控制参数对于系统的混沌振荡具有线性或非线性调幅作用。此外,在以改进的Euler算法进行离散化后,采用微控制器MSP430F249进行了实验验证,证明了系统的可实现性。
上传时间: 2014-01-06
上传用户:Shaikh
本书分三部分介绍在美国广泛应用的、高功能的M68HC11系列单片机(8位机 ,Motorola公司)。内容包括M68HC11的结构与其基本原理、开发工具EVB(性能评估板)以及开发和应用技术。本书在介绍单片机硬、软件的基础上,进一步介绍了在美国实验室内,如何应用PC机及EVB来进行开发工作。通过本书的介绍,读者可了解这种单片机的原理并学会开发和应用方法。本书可作为大专院校单片机及其实验的教材(本科、短训班)。亦可供开发、应用单片机的各专业(计算机、机电、化工、纺织、冶金、自控、航空、航海……)有关技术人员参考。 第一部分 M68HC11 结构与原理Motorola单片机 1 Motorla单片机 1.1 概述 1.1.1 Motorola 单片机发展概况(3) 1.1.2 Motorola 单片机结构特点(4) 1.2 M68HC11系列单片机(5) 1.2.1 M68HC11产品系列(5) 1.2.2 MC68HC11E9特性(6) 1.2.3 MC68HC11E9单片机引脚说明(8) 1.3 Motorola 32位单片机(14) 1.3.1中央处理器(CPU32)(15) 1.3.2 定时处理器(TPU)(16) 1.3.3 串行队列模块(QSM)(16) 1.3.4 系统集成模块 (SIM)(16) 1.3.5 RAM(17) 2 系统配置与工作方式 2.1 系统配置(19) 2.1.1 配置寄存器CONFIG(19) 2.1.2 CONFIG寄存器的编程与擦除(20) 2?2 工作方式选择(21) 2.3 M68HC11的工作方式(23) 2.3.1 普通单片工作方式(23) 2.3.2 普通扩展工作方式(23) 2.3.3 特殊自举方式(27) 2.3.4 特殊测试方式(28) 3 中央处理器(CPU)与片上存储器 3.1 CPU寄存器(31) 3?1?1 累加器A、B和双累加器D(32) 3.1.2 变址寄存器X、Y(32) 3.1.3 栈指针SP(32) 3.1.4 程序计数器PC(33) 3.1.5 条件码寄存器CCR(33) 3.2 片上存储器(34) 3.2.1 存储器分布(34) 3.2.2 RAM和INIT寄存器(35) 3.2.3 ROM(37) 3.2.4 EEPROM(37) 3.3 M68HC11 CPU的低功耗方式(39) 3.3.1 WAIT方式(39) 3.3.2 STOP方式(40) 4 复位和中断 4.1 复位(41) 4.1.1 M68HC11的系统初始化条件(41) 4.1.2 复位形式(43) 4.2 中断(48) 4.2.1 条件码寄存器CCR中的中断屏蔽位(48) 4.2.2 中断优先级与中断矢量(49) 4.2.3 非屏蔽中断(52) 4.2.4 实时中断(53) 4.2.5 中断处理过程(56) 5 M68HC11指令系统 5.1 M68HC11寻址方式(59) 5.1.1 立即寻址(IMM)(59) 5.1.2 扩展寻址(EXT)(60) 5.1.3 直接寻址(DIR)(60) 5.1.4 变址寻址(INDX、INDY)(61) 5.1.5 固有寻址(INH)(62) 5.1.6 相对寻址(REL)(62) 5.1.7 前置字节(63) 5.2 M68HC11指令系统(63) 5.2.1 累加器和存储器指令(63) 5.2.2 栈和变址寄存器指令(68) 5.2.3 条件码寄存器指令(69) 5.2.4 程序控制指令(70) 6 输入与输出 6.1 概述(73) 6.2 并行I/O口(74) 6.2.1 并行I/O寄存器(74) 6.2.2 应答I/O子系统(76) 6?3 串行通信接口SCI(82) 6.3.1 基本特性(83) 6.3.2 数据格式(83) 6.3.3 SCI硬件结构(84) 6.3.4 SCI寄存器(86) 6.4 串行外围接口SPI(92) 6.4.1 SPI特性(92) 6.4.2 SPI引脚信号(92) 6.4.3 SPI结构(93) 6.4.4 SPI寄存器(95) 6.4.5 SPI系统与外部设备进行串行数据传输(99) 7 定时器系统与脉冲累加器 7.1 概述(105) 7.2 循环计数器(107) 7.2.1 时钟分频器(107) 7.2.2 计算机正常工作监视功能(110) 7.2.3 定时器标志的清除(110) 7.3 输入捕捉功能(111) 7.3.1 概述(111) 7.3.2 定时器输入捕捉锁存器(TIC1、TIC2、TIC3) 7.3.3 输入信号沿检测逻辑(113) 7.3.4 输入捕捉中断(113) 7.4 输出比较功能(114) 7.4.1 概述(114) 7.4.2 输出比较功能使用的寄存器(116) 7.4.3 输出比较示例(118) 7.5 脉冲累加器(119) 7.5.1 概述(119) 7.5.2 脉冲累加器控制和状态寄存器(121) 8 A/D转换系统 8.1 电荷重新分布技术与逐次逼近算法(125) 8.1.1 基本电路(125) 8.1.2 A/D转换逐次逼近算法原理(130) 8.2 M68HC11中A/D转换的实现方法(131) 8.2.1 逐次逼近A/D转换器(131) 8.2.2 控制寄存器(132) 8.2.3 系统控制逻辑(135)? 9 单片机的内部操作 9.1 用立即> 图书前言 美国Motorola公司从80年代中期开始推出的M68HC11系列单片机是当今功能最强、性能/价格比最好的八位单片微计算机之一。在美国,它已被广泛地应用于教学和各种工业控制系统中。? 该单片机有丰富的I/O功能,完善的系统保护功能和软件控制的节电工作方式 。它的指令系统与早期Motorola单片机MC6801等兼容,同时增加了91条新指令。其中包含16位乘法、除法运算指令等。 为便于用户开发和应用M68HC11单片机,Motorola公司提供了多种开发工具。M68HC11 EVB (Evaluation Board)性能评估板就是一种M68HC11系列单片机的廉价开发工具。它既可用来 调试用户程序,又可在仿真方式下运行。为方便用户,M68HC11 EVB可与IBM?PC连接 ,借助于交叉汇编、通信程序等软件,在IBM?PC上调试程序。? 本书分三部分(共15章)介绍了M68HC11的结构和基本原理、开发工具-EVB及开发应用实例等。第一部分(1~9章),介绍M68HC11的结构和基本原理。包括概述,系统配置与工作方式、CPU和存储器、复位和中断、指令系统、I/O、定时器系统和脉冲累加器、A/D转换系统、单片机的内部操作等。第二部分(10~11章),介绍M68HC11 EVB的原理和技术特性以及EVB的应用。第三部分(12~15章),介绍M68HC11的开发与应用技术。包括基本的编程练习、应用程序设计、接口实验、接口设计及应用等。 读者通过学习本书,不仅可了解M68HC11的硬件、软件,而且可了解使用EVB开发和应用M68HC11单片机的方法。在本书的第三部分专门提供了一部分实验和应用程序。? 本书系作者张宁作为高级访问学者,应邀在美国马萨诸塞州洛厄尔大学(University of Massachusetts Lowell)工作期间完成的。全书由张宁执笔。在编著过程中,美国洛厄尔大学的R·代克曼教授?(Professor Robert J. Dirkman)多次与张宁一起讨论、研究,并提供部分资料及实验数据。参加编写和审校等工作的还有王云霞、孙晓芳、刘安鲁、张籍、来安德、张杨等同志。? 为将M68HC11系列单片机尽快介绍给我国,美国Motorola公司的Terrence M.S.Heng先生曾大力支持本书的编著和出版。在此表示衷心感谢。
上传时间: 2013-10-27
上传用户:rlgl123
XLISP 系列单片机综合仿真试验仪(以下简称 XLISP 系列)是深圳市学林电子有限公司综合多年经验开发出的多功能 8051 单片机平台(兼容 AVR/PIC 单片机的部 份烧写实验功能)。本系列目前包含 XL600 单片机试验仪和 XL1000 USB 型单片机实验仪,集成常用的单片机 外围硬件,ISP 下载线,单片机仿真器, 单片机试验板,编程器功能于一身,特别适合新手学习使用! 第一章:XLISP 系列 单片机综合仿真试验仪系统简介 1.1 系统简介……………………………………………………………2 1. 2 各个模块接口的定义……………………………………………3 第二章: 快速入门篇- 跟我来用 XLISP 系列作跑马灯实验 2.1 软件安装介绍………………………………………………………5 2.2 软件操作……………………………………………………………6 第三章 USB 接口安装指南(仅限 XL1000) 3.1 USB 驱动程序安装…………………………………………………8 3.2 特别情况下的 usb安装……………………………………………10 第四章 ISP 下载部份的应用 4.1 ISP 下载部份介绍…………………………………………11 4.2 XLISP 系列下载头之插头定义………………………………12 4.3 常用芯片的 ISP 相关引脚连接方法……………………………13 第五章 XLISP 系列 仿真操作指南 5.1 仿真概述…………………………………………………………14 5.2 KEIL UV2 软件操作指南…………………………………………15 第六章:XLISP 系列单片机系统实验 MCS-51 单片机引脚说明………………………………………………17 实验 1 最简单的八路跑马灯………………………………………18 实验 2 用 XLISP 系列试验仪做一个 8 路彩灯控制器…………20 实验 3 8 路指示灯读出 8 路拨动开关的状态……………………21 实验 4 数码管静态扫描 …………………………………………22 实验 5 数码管动态扫描显示 01234567……………………………23 实验 6 端口按键判断技术(按键显示数字)………………………26 实验 7 矩阵按键识别技术……………………………………………27 实验 8 74LS14 反向器实验………………………………………………29 实验 9 74LS138 38 译码器部分实验………………………………30 实验 10 74LS164 串入并出实验 ……………………………………31 实验 11 74LS165 并入串出实验 ………………………………………32 实验 12 DA 转换 dac0832 的原理与应用………………………………34 实验 13 模拟/数字转换器 ADC0804………………………………………36 实验 14 小喇叭警报器试验………………………………………………38 实验 15 红外线遥控试验…………………………………………………39 实验 16 汉字显示屏显示倚天一出宝刀屠龙(仅限 XL1000)…………42 实验 17 1602 液晶显示屏显示 A……………………………………44 实验 18 8155 试验(仅限 XL1000)…………………………………46 实验 19 24C02 储存开机次数实验 ……………………………………48 实验 20 步进电机实验…………………………………………………50 实验 21 93c46 演示程序 …………………………………………………………51 实验 22 串行双向通信实验 ……………………………………………53 实验 23 综合实验 18B20 数字温度显示系统…………………………55 第七章 怎样产生 hex 文件? Dais 集成开发环境使用………………58 第八章 常见问题解答 60 第九章 系统配置和售后服务指南…………………………………61 部分配套的例子程序说明………………………………………………62
上传时间: 2013-11-13
上传用户:lanjisu111
MPLAB C18使用指南 简介本文档论述MPLAB® C18 编译器的技术细节,并讲解MPLAB C18 编译器的所有功能。 这里假定读者已经具备如下基本素质:• 知道如何编写C 程序• 知道如何使用MPLAB 集成开发环境创建和调试项目• 已经阅读并理解了所使用单片机的数据手册 文档内容编排如下:• 第1 章:简介 — 提供对MPLAB C18 编译器的概述以及有关调用编译器的信息。• 第2 章:语法说明 — 论述MPLAB C18 编译器与ANSI 标准的不同之处。• 第3 章:运行时模型 — 论述MPLAB C18 编译器如何利用 PIC18 PICmicro® 单片机的资源。• 第4 章:优化 — 论述MPLAB C18 编译器执行的优化功能。• 第5 章:示例应用程序 — 给出一个示例应用程序,并就本用户指南中论述的各主题,对源代码进行了说明。• 附录A:COFF 文件格式 — 详细阐述了Microchip 的COFF 格式。• 附录B:采用ANSI 定义的方式 — 论述按照ANSI 标准的要求,MPLAB C18 实现所定义的执行方式。• 附录C:命令行概述 — 列出了命令行选项以及论述每个命令行选项的参考章节。• 附录D:MPLAB C18 诊断 — 列出了错误、警告和消息。• 附录E:扩展模式 — 论述非扩展模式和扩展模式之间的区别。
上传时间: 2013-10-30
上传用户:1583060504
at91rm9200启动过程教程 系统上电,检测BMS,选择系统的启动方式,如果BMS为高电平,则系统从片内ROM启动。AT91RM9200的ROM上电后被映射到了0x0和0x100000处,在这两个地址处都可以访问到ROM。由于9200的ROM中固化了一个BOOTLOAER程序。所以PC从0X0处开始执行这个BOOTLOAER(准确的说应该是一级BOOTLOADER)。这个BOOTLOER依次完成以下步骤: 1、PLL SETUP,设置PLLB产生48M时钟频率提供给USB DEVICE。同时DEBUG USART也被初始化为48M的时钟频率; 2、相应模式下的堆栈设置; 3、检测主时钟源(Main oscillator); 4、中断控制器(AIC)的设置; 5、C 变量的初始化; 6、跳到主函数。 完成以上步骤后,我们可以认为BOOT过程结束,接下来的就是LOADER的过程,或者也可以认为是装载二级BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、连接在外部总线上的8位并行FLASH的顺序依次来找合法的BOOT程序。所谓合法的指的是在这些存储设备的开始地址处连续的存放的32个字节,也就是8条指令必须是跳转指令或者装载PC的指令,其实这样规定就是把这8条指令当作是异常向量表来处理。必须注意的是第6条指令要包含将要装载的映像的大小。关于如何计算和写这条指令可以参考用户手册。一旦合法的映像找到之后,则BOOT程序会把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超过16K-3K的大小。当BOOT程序完成了把合法的映像搬到SRAM的任务以后,接下来就进行存储器的REMAP,经过REMAP之后,SRAM从映设前的0X200000地址处被映设到了0X0地址并且程序从0X0处开始执行。而ROM这时只能在0X100000这个地址处看到了。至此9200就算完成了一种形式的启动过程。如果BOOT程序在以上所列的几种存储设备中找到合法的映像,则自动初始化DEBUG USART口和USB DEVICE口以准备从外部载入映像。对DEBUG口的初始化包括设置参数115200 8 N 1以及运行XMODEM协议。对USB DEVICE进行初始化以及运行DFU协议。现在用户可以从外部(假定为PC平台)载入你的映像了。在PC平台下,以WIN2000为例,你可以用超级终端来完成这个功能,但是还是要注意你的映像的大小不能超过13K。一旦正确从外部装载了映像,接下来的过程就是和前面一样重映设然后执行映像了。我们上面讲了BMS为高电平,AT91RM9200选择从片内的ROM启动的一个过程。如果BMS为低电平,则AT91RM9200会从片外的FLASH启动,这时片外的FLASH的起始地址就是0X0了,接下来的过程和片内启动的过程是一样的,只不过这时就需要自己写启动代码了,至于怎么写,大致的内容和ROM的BOOT差不多,不同的硬件设计可能有不一样的地方,但基本的都是一样的。由于片外FLASH可以设计的大,所以这里编写的BOOTLOADER可以一步到位,也就是说不用像片内启动可能需要BOOT好几级了,目前AT91RM9200上使用较多的bootloer是u-boot,这是一个开放源代码的软件,用户可以自由下载并根据自己的应用配置。总的说来,笔者以为AT91RM9200的启动过程比较简单,ATMEL的服务也不错,不但提供了片内启动的功能,还提供了UBOOT可供下载。笔者写了一个BOOTLODER从片外的FLASHA启动,效果还可以。 uboot结构与使用uboot是一个庞大的公开源码的软件。他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。其代码可以 http://sourceforge.net/projects/u-boot下载 在9200上,为了启动uboot,还有两个boot软件包,分别是loader和boot。分别完成从sram和flash中的一级boot。其源码可以从atmel的官方网站下载。 我们知道,当9200系统上电后,如果bms为高电平,则系统从片内rom启动,这时rom中固化的boot程序初始化了debug口并向其发送'c',这时我们打开超级终端会看到ccccc...。这说明系统已经启动,同时xmodem协议已经启动,用户可以通过超级终端下载用户的bootloader。作为第一步,我们下载loader.bin.loader.bin将被下载到片内的sram中。这个loder完成的功能主要是初始化时钟,sdram和xmodem协议,为下载和启动uboot做准备。当下载了loader.bin后,超级终端会继续打印:ccccc....。这时我们就可以下在uboot了。uboot将被下载到sdram中的一个地址后并把pc指针调到此处开始执行uboot。接着我们就可以在终端上看到uboot的shell启动了,提示符uboot>,用户可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了对内存、flash、网络、系统启动等一些命令。 如果系统上电时bms为低电平,则系统从片外的flash启动。为了从片外的flash启动uboot,我们必须把boot.bin放到0x0地址出,使得从flash启动后首先执行boot.bin,而要少些boot.bin,就要先完成上面我们讲的那些步骤,首先开始从片内rom启动uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz烧写到flash中的目的,假如我们已经启动了uboot,可以这样操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系统复位,就可以看到系统先启动boot,然后解压缩uboot.gz,然后启动uboot。注意,这里uboot必须压缩成.gz文件,否则会出错。 怎么编译这三个源码包呢,首先要建立一个arm的交叉编译环境,关于如何建立,此处不予说明。建立好了以后,分别解压源码包,然后修改Makefile中的编译器项目,正确填写你的编译器的所在路径。 对loader和boot,直接make。对uboot,第一步:make_at91rm9200dk,第二步:make。这样就会在当前目录下分别生成*.bin文件,对于uboot.bin,我们还要压缩成.gz文件。 也许有的人对loader和boot搞不清楚为什么要两个,有什么区别吗?首先有区别,boot主要完成从flash中启动uboot的功能,他要对uboot的压缩文件进行解压,除此之外,他和loader并无大的区别,你可以把boot理解为在loader的基础上加入了解压缩.gz的功能而已。所以这两个并无多大的本质不同,只是他们的使命不同而已。 特别说名的是这三个软件包都是开放源码的,所以用户可以根据自己的系统的情况修改和配置以及裁减,打造属于自己系统的bootloder。
上传时间: 2013-10-27
上传用户:wsf950131
标号: FTOD 功能:格式化浮点数转换成双字节定点数入口条件:格式化浮点操作数在[R0]中。出口信息:OV=1时溢出,OV=0时转换成功:定点数的绝对值在[R0]中(双字节),数符在位1FH中,F0=1 时为整数,CY=1时为一字节整数一字节小数,否则为纯小数。影响资源:PSW、A、B、R2、R3、R4、位1FH 堆栈需求: 6字节FTOD: LCALL MVR0 ;将[R0]传送到第一工作区MOV A,R2JZ FTD4 ;阶码为零,纯小数JB ACC.7,FTD4;阶码为负,纯小数
上传时间: 2013-10-15
上传用户:洛木卓
标号: FSQR 功能:浮点数开平方(快速逼近算法)入口条件:操作数在[R0]中。出口信息:OV=0时,平方根仍在[R0]中,OV=1时,负数开平方出错。影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节FSQR: MOV A,@R0JNB ACC.7,SQRSETB OV ;负数开平方,出错
上传时间: 2013-11-17
上传用户:止絮那夏
标号: FDIV 功能:浮点数除法 入口条件:被除数在[R0]中,除数在[R1]中。出口信息:OV=0时,商仍在[R0]中,OV=1时,溢出。影响资源:PSW、A、B、R2~R7、位1EH、1FH 堆栈需求: 5字节
上传时间: 2014-12-28
上传用户:wfl_yy
入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。出口信息:OV=0时商在R2、R3中,OV=1时溢出。影响资源:PSW、A、B、R1~R7 堆栈需求: 5字节DIVS: LCALL MDS ;计算结果的符号和两个操作数的绝对值PUSH PSW ;保存结果的符号LCALL DIVD ;计算两个绝对值的商JNB OV,DVS1 ;溢出否?POP ACC ;溢出,放去结果的符号,保留溢出标志
上传时间: 2013-11-09
上传用户:lht618