虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

ROM-BIOS

  • 单片机开发资料

    单片机开发资料 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。  早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。  单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。

    标签: 单片机 开发资料

    上传时间: 2013-11-16

    上传用户:Aeray

  • at91rm9200启动过程教程

    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。

    标签: 9200 at 91 rm

    上传时间: 2013-10-27

    上传用户:wsf950131

  • Keil 软件实例教程 2

    Keil 软件实例教程 2 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51 单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发MCS-51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil 即可看出。Keil 提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil 软件需要Pentium 或以上的CPU,16MB或更多RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51 系列单片机的爱好者来说是十分必要的,如果你使用C 语言编程,那么Keil 几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。我们将通过一些实例来学习Keil 软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。图1 所示电路图使用89C51 单片机作为主芯片,这种单片机性属于MCS-51 系列,其内部有4K 的FLASH ROM,可以反复擦写,非常适于做实验。89C51 的P1 引脚上接8 个发光二极管,P3.2~P3.4 引脚上接4 个按钮开关,我们的第一个任务是让接在P1 引脚上的发光二极管依次循环点亮。 一、Keil 工程的建立首先启动Keil 软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击uVision 的图标以启动该软件。UVison启动后,程序窗口的左边有一个工程管理窗口,该窗口有3 个标签,分别是Files、Regs、和Books,这三个标签页分别显示当前项目的文件结构、CPU 的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU 的附加说明文件,如果是第一次启动Keil,那么这三个标签页全是空的。

    标签: Keil 软件 教程

    上传时间: 2013-10-26

    上传用户:ruan2570406

  • Keil 软件实例教程 1

    Keil 软件实例教程 1. 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51 单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发MCS-51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil 即可看出。Keil 提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil 软件需要Pentium 或以上的CPU,16MB或更多RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51 系列单片机的爱好者来说是十分必要的,如果你使用C 语言编程,那么Keil 几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。我们将通过一些实例来学习Keil 软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。图1 所示电路图使用89C51 单片机作为主芯片,这种单片机性属于MCS-51 系列,其内部有4K 的FLASH ROM,可以反复擦写,非常适于做实验。89C51 的P1 引脚上接8 个发光二极管,P3.2~P3.4 引脚上接4 个按钮开关,我们的第一个任务是让接在P1 引脚上的发光二极管依次循环点亮。 一、Keil 工程的建立首先启动Keil 软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击uVision 的图标以启动该软件。UVison启动后,程序窗口的左边有一个工程管理窗口,该窗口有3 个标签,分别是Files、Regs、和Books,这三个标签页分别显示当前项目的文件结构、CPU 的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU 的附加说明文件,如果是第一次启动Keil,那么这三个标签页全是空的。

    标签: Keil 软件 教程

    上传时间: 2013-11-25

    上传用户:hanbeidang

  • 数字时钟应用资料

    数字时钟应用资料 单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是 集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51 单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

    标签: 数字时钟 应用资料

    上传时间: 2013-10-13

    上传用户:zhqzal1014

  • PICmicro中档单片机系列参考手册

    PICmicro中档单片机系列参考手册:请注意以下有关Microchip 器件代码保护功能的要点:• Microchip的产品均达到Microchip 数据手册中所述的技术指标。• Microchip确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。• 目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以Microchip 数据手册中规定的操作规范来使用Microchip 产品的。这样做的人极可能侵犯了知识产权。• Microchip愿与那些注重代码完整性的客户合作。• Microchip或任何其它半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是“牢不可破”的。代码保护功能处于持续发展中。Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏Microchip 代码保护功能的行为均可视为违反了《数字器件千年版权法案(Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的软件或其它受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为的。 Microchip 公司是The Embedded Control Solutions Company® (嵌入式控制系统解决方案公司),其产品主要满足嵌入式控制市场的需求。我们是以下产品的领先供应商:• 8 位通用单片机(PICmicro® 单片机)• 专用和标准的非易失性存储器件• 安防器件 (KEELOQ®)• 专用标准产品欲获得您所感兴趣的产品列表,请申请一份Microchip 产品线目录。以往,8 位单片机的用户只选择传统的MCU 类型,即ROM 器件,用于生产。Microchip 率先改变了这种传统观念,向人们展示了OTP (一次性编程)器件比ROM 器件在其寿命周期内具有更低的产品成本。Microchip 具备EPROM技术优势,从而使EPROM成为PICmicro 单片机程序存储器的不二选择。Microchip 尽可能地缩小了EPROM 和ROM 存储器技术之间的成本差距,并使顾客从中受益。其他MCU 供应商无法作到这一点,这从他们的 EPROM 和 ROM 版本之间的价格差异便可以看出。Microchip 的8 位单片机市场份额的增长证明了PICmicro® 单片机能够满足大多数人的需要。这也使PICmicro 单片机架构成为了当今通用市场上应用最广泛的三大体系之一。Microchip 的低成本OTP 解决方案所带来的效益是这一增长的助推剂。用户能够从以下各方面受益:• 快速的产品上市时间• 允许生产过程中对产品进行代码修改• 无需掩膜产品所需的一次性工程费用(NRE)• 能够轻松为产品进行连续编号• 无需额外增加硬件即可存储校准数据• 可最大限度地增加PICmicro® 单片机的库存• 由于在开发和生产中使用同一器件,从而降低了风险Microchip 的8 位 PICmicro 单片机具备很好的性价比,可成为任何传统的8 位应用和某些4 位应用( 低档系列)、专用逻辑的替代品以及低端DSP 应用( 高档系列) 的选择。这些特点及其良好的性价比使PICmicro 单片机在大多数应用场合极具吸引力。

    标签: PICmicro 单片机 参考手册

    上传时间: 2014-03-03

    上传用户:ainimao

  • S51编程器制作包

    S51编程器制作包:自制AT89S51编程器教程AT89S51芯片的日渐流行,对我们单片机初学者来说是一个大好消息。因为做个AT89S51编程器非常容易,而且串行编程模式更便于做成在线编程器,给频繁烧片,调试带来了巨大的方便。 电路: 只要焊13根线就可以搞定这个电路。基本原理:RST置高电平,然后向单片机串行发送 编程命令。P1.7(SCK)输入移位脉冲,P1.6(MISO)串行输出,P1.5(MOSI)串行输入(要了解详细编程原理可以去看AT89S51的数据手册)。使用并口发出控制信号,74373只是用于信号转换,因为并口直接输出高电平的电压有点没到位,使用其他芯片也可以,还有人提出直接接电阻。并口引脚1控制P1.7,引脚14控制P1.5,引脚15读P1.6,引脚16控制RST,引脚17接74373 LE(锁存允许),18-25这些引脚都可以接地。建议在你的单片机系统板上做个6芯的接口。注意:被烧写的单片机一定是最小系统(单片机已经接好电源,晶振,可以运行),VCC,GND是给74373提供电源的。 还有一个方案:使用串口+单片机,这个方案已经用了半年了。电路稍微麻烦一点,速度比较快,而且可以烧AT89C51等等。其实许多器件编程原理差不多,由于我没太多时间研究器件手册,更没有MONEY买一堆芯片来测试,所以只实现了几个最常用单片机编程功能(AT89C51,C52,C55,AT89S51,S52,S53)。如果要烧写其他单片机,你可以直接编写底层控制子程序(例如,写一个单元,读一个单元,擦除ROM的子程序)。如果有需要,我可以在器件选择栏提供一个“X-CHIP”的选择,“X-CHIP”的编程细节将由用户自己去实现。当你仔细阅读器件手册后,会发现实现这些子程序其实好容易,这也是初学者学单片机编程的好课题。如果成功了会极大的提高你学单片机的积极性。 软件: 这个软件的通信,控制部分早在半年前就完成了,这回只是换了个界面和加入并口下载线的功能,希望你看到这个软件不会想吐。使用很简当,有一点特别,当你用鼠标右键点击按钮后,可以把相关操作设置为自动模式(只有打开文件,擦除芯片,写FLASH ROM,读FLASH ROM,效验数据 可以设置),点击‘自动完成’后会依次完成这些操作,并在开始时检测芯片。当“打开文件”设为自动后,第2次烧写同一个文件时不必再去打开文件,软件会自动刷新缓冲。软件在WIN XP,WIN 2000可以使用(管理员登陆的),在WIN 98 ,WIN ME使用并口模式时会更快些。这个软件同时支持串口编程器和并口下载线。操作正常结束后会有声音提示。如果没有声卡或声卡烂了,则声音会从机箱扬声器中发出。注意:记得在CMOS设置中把并口设为ECP模式。就这些东西,应该够详细吧,还有什么问题或遇到什么困难可以联系我,软件出现什么问题一定要通知我修正。祝你一次就搞定。  

    标签: S51 编程器

    上传时间: 2014-01-24

    上传用户:13162218709

  • MSP430系列超低功耗16位单片机原理与应用

    MSP430系列超低功耗16位单片机原理与应用TI公司的MSP430系列微控制器是一个近期推出的单片机品种。它在超低功耗和功能集成上都有一定的特色,尤其适合应用在自动信号采集系统、液晶显示智能化仪器、电池供电便携式装置、超长时间连续工作设备等领域。《MSP430系列超低功耗16位单片机原理与应用》对这一系列产品的原理、结构及内部各功能模块作了详细的说明,并以方便工程师及程序员使用的方式提供软件和硬件资料。由于MSP430系列的各个不同型号基本上是这些功能模块的不同组合,因此,掌握《MSP430系列超低功耗16位单片机原理与应用》的内容对于MSP430系列的原理理解和应用开发都有较大的帮助。《MSP430系列超低功耗16位单片机原理与应用》的内容主要根据TI公司的《MSP430 Family Architecture Guide and Module Library》一书及其他相关技术资料编写。  《MSP430系列超低功耗16位单片机原理与应用》供高等院校自动化、计算机、电子等专业的教学参考及工程技术人员的实用参考,亦可做为应用技术的培训教材。MSP430系列超低功耗16位单片机原理与应用 目录  第1章 MSP430系列1.1 特性与功能1.2 系统关键特性1.3 MSP430系列的各种型号??第2章 结构概述2.1 CPU2.2 代码存储器?2.3 数据存储器2.4 运行控制?2.5 外围模块2.6 振荡器、倍频器和时钟发生器??第3章 系统复位、中断和工作模式?3.1 系统复位和初始化3.2 中断系统结构3.3 中断处理3.3.1 SFR中的中断控制位3.3.2 外部中断3.4 工作模式3.5 低功耗模式3.5.1 低功耗模式0和模式13.5.2 低功耗模式2和模式33.5.3 低功耗模式43.6 低功耗应用要点??第4章 存储器组织4.1 存储器中的数据4.2 片内ROM组织4.2.1 ROM表的处理4.2.2 计算分支跳转和子程序调用4.3 RAM与外围模块组织4.3.1 RAM4.3.2 外围模块--地址定位4.3.3 外围模块--SFR??第5章 16位CPU?5.1 CPU寄存器5.1.1 程序计数器PC5.1.2 系统堆栈指针SP5.1.3 状态寄存器SR5.1.4 常数发生寄存器CG1和CG2?5.2 寻址模式5.2.1 寄存器模式5.2.2 变址模式5.2.3 符号模式5.2.4 绝对模式5.2.5 间接模式5.2.6 间接增量模式5.2.7 立即模式5.2.8 指令的时钟周期与长度5.3 指令集概述5.3.1 双操作数指令5.3.2 单操作数指令5.3.3 条件跳转5.3.4 模拟指令的简短格式5.3.5 其他指令5.4 指令分布??第6章 硬件乘法器?6.1 硬件乘法器的操作6.2 硬件乘法器的寄存器6.3 硬件乘法器的SFR位6.4 硬件乘法器的软件限制6.4.1 硬件乘法器的软件限制--寻址模式6.4.2 硬件乘法器的软件限制--中断程序??第7章 振荡器与系统时钟发生器?7.1 晶体振荡器7.2 处理机时钟发生器7.3 系统时钟工作模式7.4 系统时钟控制寄存器7.4.1 模块寄存器7.4.2 与系统时钟发生器相关的SFR位7.5 DCO典型特性??第8章 数字I/O配置?8.1 通用端口P08.1.1 P0的控制寄存器8.1.2 P0的原理图8.1.3 P0的中断控制功能8.2 通用端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理图8.2.3 P1、P2的中断控制功能8.3 通用端口P3、P48.3.1 P3、P4的控制寄存器8.3.2 P3、P4的原理图8.4 LCD端口8.5 LCD端口--定时器/端口比较器??第9章 通用定时器/端口模块?9.1 定时器/端口模块操作9.1.1 定时器/端口计数器TPCNT1--8位操作9.1.2 定时器/端口计数器TPCNT2--8位操作9.1.3 定时器/端口计数器--16位操作9.2 定时器/端口寄存器9.3 定时器/端口SFR位9.4 定时器/端口在A/D中的应用9.4.1 R/D转换原理9.4.2 分辨率高于8位的转换??第10章 定时器?10.1 Basic Timer110.1.1 Basic Timer1寄存器10.1.2 SFR位10.1.3 Basic Timer1的操作10.1.4 Basic Timer1的操作--LCD时钟信号fLCD?10.2 8位间隔定时器/计数器10.2.1 8位定时器/计数器的操作10.2.2 8位定时器/计数器的寄存器10.2.3 与8位定时器/计数器有关的SFR位10.2.4 8位定时器/计数器在UART中的应用10.3 看门狗定时器11.1.3 比较模式11.1.4 输出单元11.2 TimerA的寄存器11.2.1 TimerA控制寄存器TACTL11.2.2 捕获/比较控制寄存器CCTL11.2.3 TimerA中断向量寄存器11.3 TimerA的应用11.3.1 TimerA增计数模式应用11.3.2 TimerA连续模式应用11.3.3 TimerA增/减计数模式应用11.3.4 TimerA软件捕获应用11.3.5 TimerA处理异步串行通信协议11.4 TimerA的特殊情况11.4.1 CCR0用做周期寄存器11.4.2 定时器寄存器的启/停11.4.3 输出单元Unit0??第12章 USART外围接口--UART模式?12.1 异步操作12.1.1 异步帧格式12.1.2 异步通信的波特率发生器12.1.3 异步通信格式12.1.4 线路空闲多处理机模式12.1.5 地址位格式12.2 中断与控制功能12.2.1 USART接收允许12.2.2 USART发送允许12.2.3 USART接收中断操作12.2.4 USART发送中断操作12.3 控制与状态寄存器12.3.1 USART控制寄存器UCTL12.3.2 发送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率选择和调制控制寄存器12.3.5 USART接收数据缓存URXBUF12.3.6 USART发送数据缓存UTXBUF12.4 UART模式--低功耗模式应用特性12.4.1 由UART帧启动接收操作12.4.2 时钟频率的充分利用与UART模式的波特率12.4.3 节约MSP430资源的多处理机模式12.5 波特率的计算??第13章 USART外围接口--SPI模式?13.1 USART的同步操作13.1.1 SPI模式中的主模式--MM=1、SYNC=113.1.2 SPI模式中的从模式--MM=0、SYNC=113.2 中断与控制功能13.2.1 USART接收允许13.2.2 USART发送允许13.2.3 USART接收中断操作13.2.4 USART发送中断操作13.3 控制与状态寄存器13.3.1 USART控制寄存器13.3.2 发送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率选择和调制控制寄存器13.3.5 USART接收数据缓存URXBUF13.3.6 USART发送数据缓存UTXBUF??第14章 液晶显示驱动?14.1 LCD驱动基本原理14.2 LCD控制器/驱动器14.2.1 LCD控制器/驱动器功能14.2.2 LCD控制与模式寄存器14.2.3 LCD显示内存14.2.4 LCD操作软件例程14.3 LCD端口功能14.4 LCD与端口模式混合应用实例??第15章 A/D转换器?15.1 概述15.2 A/D转换操作15.2.1 A/D转换15.2.2 A/D中断15.2.3 A/D量程15.2.4 A/D电流源15.2.5 A/D输入端与多路切换15.2.6 A/D接地与降噪15.2.7 A/D输入与输出引脚15.3 A/D控制寄存器??第16章 其他模块16.1 晶体振荡器16.2 上电电路16.3 晶振缓冲输出??附录A 外围模块地址分配?附录B 指令集描述?B1 指令汇总B2 指令格式B3 不增加ROM开销的指令模拟B4 指令说明B5 用几条指令模拟的宏指令??附录C EPROM编程?C1 EPROM操作C2 快速编程算法C3 通过串行数据链路应用\"JTAG\"特性的EPROM模块编程C4 通过微控制器软件实现对EPROM模块编程??附录D MSP430系列单片机参数表?附录E MSP430系列单片机产品编码?附录F MSP430系列单片机封装形式?

    标签: MSP 430 超低功耗 位单片机

    上传时间: 2014-05-07

    上传用户:lwq11

  • EZ-USB FX系列单片机USB外围设备设计与应用

    EZ-USB FX系列单片机USB外围设备设计与应用:PART 1 USB的基本概念第1章 USB的基本特性1.1 USB简介21.2 USB的发展历程31.2.1 USB 1.131.2.2 USB 2.041.2.3 USB与IEEE 1394的比较41.3 USB基本架构与总线架构61.4 USB的总线结构81.5 USB数据流的模式与管线的概念91.6 USB硬件规范101.6.1 USB的硬件特性111.6.2 USB接口的电气特性121.6.3USB的电源管理141.7 USB的编码方式141.8 结论161.9 问题与讨论16第2章 USB通信协议2.1 USB通信协议172.2 USB封包中的数据域类型182.2.1 数据域位的格式182.3 封包格式192.4 USB传输的类型232.4.1 控制传输242.4.2 中断传输292.4.3 批量传输292.4.4 等时传输292.5 USB数据交换格式302.6 USB描述符342.7 USB设备请求422.8 USB设备群组442.9 结论462.10 问题与讨论46第3章 设备列举3.1注册表编辑器473.2设备列举的步骤493.3设备列举步骤的实现--使用CATC分析工具513.4结论613.5问题与讨论61第4章 USB芯片与EZUSB4.1USB芯片的简介624.2USB接口芯片644.2.1Philips接口芯片644.2.2National Semiconductor接口芯片664.3内含USB单元的微处理器684.3.1Motorola694.3.2Microchip694.3.3SIEMENS704.3.4Cypress714.4USB芯片总揽介绍734.5USB芯片的选择与评估744.6问题与讨论80第5章 设备与驱动程序5.1阶层式的驱动程序815.2主机的驱动程序835.3驱动程序的选择865.4结论865.5问题与讨论87第6章 HID群组6.1HID简介886.2HID群组的传输速率886.3HID描述符906.3.1报告描述符936.3.2主要 main 项目类型966.3.3整体 global 项目卷标976.3.4区域 local 项目卷标986.3.5简易的报告描述符996.3.6Descriptor Tool 描述符工具 1006.3.7兼容测试程序1016.4HID设备的基本请求1026.5Windows通信程序1036.6问题与讨论106PART 2 硬件技术篇第7章 EZUSB FX简介7.1简介1097.2EZUSB FX硬件框图1097.3封包与PID码1117.4主机是个主控者1137.4.1从主机接收数据1137.4.2传送数据至主机1137.5USB方向1137.6帧1147.7EZUSB FX传输类型1147.7.1批量传输1147.7.2中断传输1147.7.3等时传输1157.7.4控制传输1157.8设备列举1167.9USB核心1167.10EZUSB FX单片机1177.11重新设备列举1177.12EZUSB FX端点1187.12.1EZUSB FX批量端点1187.12.2EZUSB FX控制端点01187.12.3EZUSB FX中断端点1197.12.4EZUSB FX等时端点1197.13快速传送模式1197.14中断1207.15重置与电源管理1207.16EZUSB 2100系列1207.17FX系列--从FIFO1227.18FX系列--GPIF 通用型可程序化的接口 1227.19AN2122/26各种特性的摘要1227.20修订ID1237.21引脚描述123第8章 EZUSB FX CPU8.1简介1308.28051增强模式1308.3EZUSB FX所增强的部分1318.4EZUSB FX寄存器接口1318.5EZUSB FX内部RAM1318.6I/O端口1328.7中断1328.8电源控制1338.9特殊功能寄存器 SFR 1348.10内部总线1358.11重置136第9章 EZUSB FX内存9.1简介1379.28051内存1389.3扩充的EZUSB FX内存1399.4CS#与OE#信号1409.5EZUSB FX ROM版本141第10章 EZUSB FX输入/输出端口10.1简介14310.2I/O端口14310.3EZUSB输入/输出端口寄存器14610.3.1端口配置寄存器14710.3.2I/O端口寄存器14710.4EZUSB FX输入/输出端口寄存器14910.5EZUSB FX端口配置表15110.6I2C控制器15610.78051 I2C控制器15610.8控制位15810.8.1START位15810.8.2STOP位15810.8.3LASTRD位15810.9状态位15910.9.1DONE位15910.9.2ACK位15910.9.3BERR位15910.9.4ID1, ID015910.10送出 WRITE I2C数据16010.11接收 READ I2C数据16010.12I2C激活加载器16010.13SFR寻址 FX 16210.14端口A~E的SFR控制165第11章 EZUSB FX设备列举与重新设备列举11.1简介16711.2预设的USB设备16911.3USB核心对于EP0设备请求的响应17011.4固件下载17111.5设备列举模式17211.6没有存在EEPROM17311.7存在着EEPROM, 第一个字节是0xB0 0xB4, FX系列11.8存在着EEPROM, 第一个字节是0xB2 0xB6, FX系列11.9配置字节0,FX系列17711.10重新设备列举 ReNumerationTM 17811.11多重重新设备列举 ReNumerationTM 17911.12预设描述符179第12章 EZUSB FX批量传输12.1简介18812.2批量输入传输18912.3中断传输19112.4EZUSB FX批量IN的例子19112.5批量OUT传输19212.6端点对19412.7IN端点对的状态19412.8OUT端点对的状态19512.9使用批量缓冲区内存19512.10Data Toggle控制19612.11轮询的批量传输的范例19712.12设备列举说明19912.13批量端点中断19912.14中断批量传输的范例20112.15设备列举说明20512.16自动指针器205第13章 EZUSB控制端点013.1简介20913.2控制端点EP021013.3USB请求21213.3.1取得状态 Get_Status 21413.3.2设置特性(Set_Feature)21713.3.3清除特性(Clear_Feature)21813.3.4取得描述符(Get_Descriptor)21913.3.5设置描述符(Set Descriptor)22313.3.6设置配置(Set_Configuration)22513.3.7取得配置(Get_Configuration)22513.3.8设置接口(Set_Interface)22513.3.9取得接口(Get_Interface)22613.3.10设置地址(Set_Address)22713.3.11同步帧22713.3.12固件加载228第14章 EZUSB FX等时传输14.1简介22914.2等时IN传输23014.2.1初始化设置23014.2.2IN数据传输23014.3等时OUT传输23114.3.1初始化设置23114.3.2数据传输23214.4设置等时FIFO的大小23214.5等时传输速度23414.5.1EZUSB 2100系列23414.5.2EZUSB FX系列23514.6快速传输 仅存于2100系列 23614.6.1快速写入23614.6.2快速读取23714.7快速传输的时序 仅存于2100系列 23714.7.1快速写入波形23814.7.2快速读取波形23914.8快速传输速度(仅存于2100系列)23914.9其余的等时寄存器24014.9.1除能等时寄存器24014.9.20字节计数位24114.10以无数据来响应等时IN令牌24214.11使用等时FIFO242第15章 EZUSB FX中断15.1简介24315.2USB核心中断24415.3唤醒中断24415.4USB中断信号源24515.5SUTOK与SUDAV中断24815.6SOF中断24915.7中止 suspend 中断24915.8USB重置中断24915.9批量端点中断25015.10USB自动向量25015.11USB自动向量译码25115.12I2C中断25215.13IN批量NAK中断 仅存于AN2122/26与FX系列 25315.14I2C STOP反相中断 仅存于AN2122/26与FX系列 25415.15从FIFO中断 INT4 255第16章 EZUSB FX重置16.1简介25716.2EZUSB FX打开电源重置 POR 25716.38051重置的释放25916.3.1RAM的下载26016.3.2下载EEPROM26016.3.3外部ROM26016.48051重置所产生的影响26016.5USB总线重置26116.6EZUSB脱离26216.7各种重置状态的总结263第17章 EZUSB FX电源管理17.1简介26517.2中止 suspend 26617.3回复 resume 26717.4远程唤醒 remote wakeup 269第18章 EZUSB FX系统18.1简介27118.2DMA寄存器描述27218.2.1来源. 目的. 传输长度地址寄存器27218.2.2DMA起始与状态寄存器27518.2.3DMA同步突发使能寄存器27518.2.4虚拟寄存器27818.3RD/FRD与WR/FWR DMA闪控的选择27818.4DMA闪控波形与延伸位的交互影响27918.4.1DMA外部写入27918.4.2DMA外部读取280第19章 EZUSB FX寄存器19.1简介28219.2批量数据缓冲区寄存器28319.3等时数据FIFO寄存器28419.4等时字节计数寄存器28519.5CPU寄存器28719.6I/O端口配置寄存器28819.7I/O端口A~C输入/输出寄存器28919.8230 Kbaud UART操作--AN2122/26寄存器29119.9等时控制/状态寄存器29119.10I2C寄存器29219.11中断29419.12端点0控制与状态寄存器29919.13端点1~7的控制与状态寄存器30019.14整体USB寄存器30519.15快速传输30919.16SETUP数据31119.17等时FIFO的容量大小31119.18通用I/F中断使能31219.19通用中断请求31219.20输入/输出端口寄存器D与E31319.20.1端口D输出31319.20.2输入端口D脚位31319.20.3端口D输出使能31319.20.4端口E输出31319.20.5输入端口E脚位31419.20.6端口E输出使能31419.21端口设置31419.22接口配置31419.23端口A与端口C切换配置31619.23.1端口A切换配置#231619.23.2端口C切换配置#231719.24DMA寄存器31919.24.1来源. 目的. 传输长度地址寄存器31919.24.2DMA起始与状态寄存器32019.24.3DMA同步突发使能寄存器32019.24.4选择8051 A/D总线作为外部FIFO321PART 3 固件技术篇第20章 EZUSB FX固件架构与函数库20.1固件架构总览32320.2固件架构的建立32520.3固件架构的副函数钩子32520.3.1工作分配器32620.3.2设备请求 device request 32620.3.3USB中断服务例程32920.4固件架构整体变量33220.5描述符表33320.5.1设备描述符33320.5.2配置描述符33420.5.3接口描述符33420.5.4端点描述符33520.5.5字符串描述符33520.5.6群组描述符33520.6EZUSB FX固件的函数库33620.6.1包含文件 *.H 33620.6.2子程序33620.6.3整体变量33820.7固件架构的原始程序代码338第21章 EZUSB FX固件范例程序21.1范例程序的简介34621.2外围I/O测试程序34721.3端点对, EP_PAIR范例35221.4批量测试, BulkTest范例36221.5等时传输, ISOstrm范例36821.6问题与讨论373PART 4 实验篇第22章 EZUSB FX仿真器22?1简介37522?2所需的工具37622?3EZUSB FX框图37722.4EZUSB最终版本的系统框图37822?5第一次下载程序37822.6EZUSB FX开发系统框图37922.7设置开发环境38022.8EZUSB FX开发工具组的内容38122.9EZUSB FX开发工具组软件38222.9.1初步安装程序38222.9.2确认主机 个人计算机 是否支持USB38222.10安装EZUSB控制平台. 驱动程序以及文件38322.11EZUSB FX开发电路板38522.11.1简介38522.11.2开发电路板的浏览38522.11.3所使用的8051资源38622.11.4详细电路38622.11.5LED的显示38722.11.6Jumper38722.11.7连接器39122.11.8内存映象图39222.11.9PLD信号39422.11.10PLD源文件文件39522.11.11雏形板的扩充连接器P1~P639722.11.12Philips PCF8574 I/O扩充IC40022.12DMA USB FX I/O LAB开发工具介绍40122.12.1USBFX简介40122.12.2USBFX及外围整体环境介绍40322?12?3USBFX与PC连接软件介绍40422.12.4USBFX硬件功能介绍404第23章 LED显示器输出实验23.1硬件设计与基本概念40923.2固件设计41023.3.1固件架构文件FW.C41123.3.2描述符文件DESCR.A5141223.3.3外围接口文件PERIPH.C41723.4固件程序代码的编译与链接42123.5Windows程序, VB设计42323.6INF文件的编写设计42423.7结论42623.8问题与讨论427第24章 七段显示器与键盘的输入/输出实验24.1硬件设计与基本概念42824.2固件设计43124.2.1七段显示器43124.2.24×4键盘扫描43324.3固件程序代码的编译与链接43424.4Windows程序, VB设计43624.5问题与讨论437第25章 LCD文字型液晶显示器输出实验25.1硬件设计与基本概念43825.1.1液晶显示器LCD43825.2固件设计45225.3固件程序代码的编译与链接45625.4Windows程序, VB设计45725.5问题与讨论458第26章 LED点阵输出实验26.1硬件设计与基本概念45926.2固件设计46326.3固件程序代码的编译与链接46326.4Windows程序, VB设计46526.5问题与讨论465第27章 步进电机输出实验27.1硬件设计与基本概念46627.1.11相激磁46727.1.22相激磁46727.1.31-2相激磁46827?1?4PMM8713介绍46927.2固件设计47327.3固件程序代码的编译与链接47427.4Windows程序, VB设计47627.5问题与讨论477第28章 I2C接口输入/输出实验28.1硬件设计与基本概念47828.2固件设计48128.3固件程序代码的编译与链接48328.4Windows程序, VB设计48428.5问题与讨论485第29章 A/D转换器与D/A转换器的输入/输出实验29.1硬件设计与基本概念48629.1.1A/D转换器48629.1.2D/A转换器49029.2固件设计49329.2.1A/D转换器的固件设计49329.2.2D/A转换器的固件设计49629.3固件程序代码的编译与链接49729.4Windows程序, VB设计49829.5问题与讨论499第30章 LCG绘图型液晶显示器输出实验30.1硬件设计与基本概念50030.1.1绘图型LCD50030.1.2绘图型LCD控制指令集50330.1.3绘图型LCD读取与写入时序图50530.2固件设计50630.2.1LCG驱动程序50630.2.2USB固件码51330.3固件程序代码的编译与链接51630.4Windows程序, VB设计51730.5问题与讨论518附录A Cypress控制平台的操作A.1EZUSB控制平台总览519A.2主画面520A.3热插拔新的USB设备521A.4各种工具栏的使用524A.5故障排除526A.6控制平台的进阶操作527A.7测试Unary Op工具栏上的按钮功能528A.8测试制造商请求的工具栏 2100 系列的开发电路板 529A.9测试等时传输工具栏532A.10测试批量传输工具栏533A.11测试重置管线工具栏535A.12测试设置接口工具栏537A.13测试制造商请求工具栏 FX系列开发电路板A.14执行Get Device Descriptor 操作来验证开发板的功能是否正确539A.15从EZUSB控制平台中, 加载dev_io的范例并且加以执行540A.16从Keil侦错应用程序中, 加载dev_io范例程序代码, 然后再加以执行542A.17将dev_io 目标文件移开, 且使用Keil IDE 集成开发环境 来重建545A.18在侦错器下执行dev_io目标文件, 并且使用具有侦错能力的IDE547A.19在EZUSB控制平台下, 执行ep_pair目标文件A.20如何修改fw范例, 并在开发电路板上产生等时传输550附录BEZUSB 2100系列及EZUSB FX系列引脚表B.1EZUSB 2100系列引脚表555B?2EZUSB FX系列引脚图表561附录C EZUSB FX寄存器总览附录D EEPROM烧录方式

    标签: EZ-USB USB 单片机 外围设备

    上传时间: 2013-11-21

    上传用户:努力努力再努力

  • 单片机应用编程技巧百问

    单片机应用编程技巧100问1.C语言和汇编语言在开发单片机时各有哪些优缺点?答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。2.C或汇编语言可以用于单片机,C++能吗?答:在单片机开发中,主要是汇编和C,没有用C++的。3.搞单片机开发,一定要会C吗?答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在资源较少单片机开发中,我们还是建议采用汇编语言比较好。

    标签: 单片机应用 编程技巧

    上传时间: 2013-12-10

    上传用户:busterman