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

顺序结构

  • 单片机初学者教程

    拿到这本教程您首先就会想,什么是IAP教学法?是不是一种什么全新的教学方法?当然不是,我可没有那么大的本事,其实这只是我杜撰的一个新名词,意思就是InApplicationsProgram(在应用中编程),当然这只是针对单片机教学,说法是否正确,还得您说了算。 至于为什么要提这种说法,那我倒想说几句。大家都知道,学习电子技术是一件非常无聊和枯燥的事情,为什么会有这种想法,就是因为我们传统的教学方法只重理论而忽略了实践,要一个人记住那些空洞而有无聊的理论知识实在不是一件容易的事,好在我们总算熬过来了,不管如何,也多多少少的学习了一些电子基础知识。 接下来我们应该进一步掌握些什么知识呢,凡涉足此行的朋友都知道,那就是单片机。不过这可不是一件容易的事,倒不是因为单片机很难学,而实在是我们身边很难找到一本专为单片机入门者而编写的教材。翻一下传统的单片机教材,都好象是为已经懂单片机的人而写的,一般总是以单片机的结构为主线,先讲硬件原理,然后是指令,接着讲软件编程,再是系统扩展和外围器件,最后举一些实例(随便说一点:很多书中的实例都是有错误的),很少涉及单片机的基础知识,如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。孰不知,单片机不象模拟电路和数字电路那样,只要搞懂了电路原理,再按照产品要求设计好相应的电路就可以了。它是一种以简单的硬件结构,复杂而有灵活的软件系统来完成设计的通用性产品,不同的设计者只会使用其不同的功能,几乎没有人会把它的全部指令都使用起来,所以学习使用单片机只能靠循序渐进的积累,而不可能先把它全部掌握了再去做产品开发(当然天才就例外了*_*)。 基于以上原因,本人想尝试一种全新的单片机教学方法,打破传统的循序渐进式的教学方法,以单片机的应用为蓝本,结合基本的工业控制系统和实践工作中的具体应用,不分先后顺序,将各条指令贯串于一个又一个的实验中,通过所见即所得的实验来讲解各种指令的编程方法,顺便讲解相关的基本概念,使您尽快地熟悉单片机应用的基本步骤,掌握软件编程的基本方法。

    标签: 单片机 初学者 教程

    上传时间: 2014-02-27

    上传用户:shen_dafa

  • MCS-51单片机系统结构

    2.1  MCS-51单片机的外特性2.2  MCS-51单片机内部结构2.3  CPU及复位电路2.4  IO端口2.5  MCS-51存储器2.6  专用功能寄存器2.7  中断系统2.8  定时器/计数器2.9  串行接口2.10 看门狗定时器2.11 掉电模式和空闲模式

    标签: MCS 51 单片机系统

    上传时间: 2013-11-04

    上传用户:Amygdala

  • AGV及其滑模变结构控制器设计

    摘要:设计了后面两轮驱动,前轮采用万向轮的三轮AGV。在简要介绍其结构和考虑非完整约束基础上.使用矩阵方法分析了AGV转弯问题,得出柔顺运动模式下的状态空间和控制方程。同时,搭建了PC机为上位机,MC~51单片机为下位机的CA总线无线通讯系统。优化参数下的路径跟踪仿真和实验证明了滑模变结构控制器和无线通讯系统的有效性。关键词:非完整约束;自动导航车;CAN现场总线;滑模变结构控制

    标签: AGV 滑模变结构 制器设计

    上传时间: 2013-11-02

    上传用户:youmo81

  • 手把手教你学单片机的C语言程序设计(十五)

    前面我们介绍了C语言的基本数据类型,但是在实际设计一个较复杂程序时,仅有这些基本类型的数据是不够的,有时需要将一批各种类型的数据放在一起使用,从而引入了所谓构造类型的数据.倒如前面介绍的数组就是一种构造类型的数据,一个数组实际上是将一批相同类型的数据顺序存放。这里我们还要介绍C语言中另一粪更为常用的构造类型数据:结构体、共用体夏枚举。

    标签: 手把手 单片机 C语言 程序设计

    上传时间: 2013-11-12

    上传用户:风为裳的风

  • EM78系列单片机硬件结构

    EM78系列单片机是采用低功耗、高速CMOS工艺制造的8位单片机,本章将以EM78X56(包括EM78156、EM78256、EM78456)为例来讲述EM78系列单片机的内部结构、存贮器、中断、I/O、看门狗、振荡器和电压检测器等特点。

    标签: EM 78 单片机 硬件结构

    上传时间: 2013-10-11

    上传用户:xiaojie

  • 单片机的结构原理解析

    单片机的结构原理解析 一、单片机的外部结构拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为 89C51 的芯片,下面我们就看一下如何给它连线。1、电源:这当然是必不可少的了。单片机使用的是 5V 电源,其中正极接40 引脚,负极(地)接20 引脚。2、振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19 脚。只要买来晶振,电容,连上就可以了,按图1 接上即可。3、复位引脚:按图 1 中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA 引脚:(2051 没有 )EA 引脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工作了。我们的第一个任务是要用单片机点亮一只发光二极管 LED,按照这个图的接法,当1 脚是高电平时,LED 不亮,只有1 脚是低电平时,LED 才发亮。因此要1 脚我们要能够控制,也就是说,我们要能够让1 引脚按要求变为高或低电平。即然我们要控制1 脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51 芯片的INTEL 公司已经起好了,就叫它P1.0,这是规定,不可以由我们来更改。在 2051 中叫P1_0,取决于包含的*.h 文件,可以到at892051.h 或 reg51.h 中看一看。

    标签: 单片机 结构原理

    上传时间: 2013-10-29

    上传用户:段璇琮*

  • MCS-51单片机的硬件结构原理

    单片机的硬件结构 2.3 MCS-51的CPU由运算器和控制器所构成2.3.1 运算器对操作数进行算术、逻辑运算和位操作。1.算术逻辑运算单元ALU2.累加器A使用最频繁的寄存器,可写为Acc。A的作用:(1)是ALU单元的输入之一,又是运算结果存放单元。(2)数据传送大多都通过累加器A。(3)A的进位标志Cy同时又是位处理机的位累加器。

    标签: MCS 51 单片机 硬件

    上传时间: 2013-10-20

    上传用户:蒋清华嗯

  • 高可靠性8位/16位All flash MCU结构、特点及应

    高可靠性8位/16位All flash MCU结构、特点及应用 目录NEC的MCU产品系列介绍NEC “全闪存单片机” 的特点NEC 8位MCU产品NEC 8位MCU特色功能介绍NEC 16位MCU特色功能介绍

    标签: flash All MCU 16

    上传时间: 2013-11-22

    上传用户:ouyangmark

  • 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

  • 汇编语言程序设计知识

    4.1 编程的步骤、方法和技巧4.1.2 编程的方法和技巧                    4.1.3 汇编语言程序的基本结构         4.2 汇编语言源程序的编辑和汇编          4.2.1 源程序编辑                                 4.2.2 源程序的汇编                             4.2.3 伪指令                                                 计算机在完成一项工作时,必须按顺序执行各种操作。这些操作是程序设计人员用计算机所能接受的语言把解决问题的步骤事先描述好的,也就是事先编好计算机程序,再由计算机去执行。汇编语言程序设计,要求设计人员对单片机的硬件结构有较详细的了解。编程时,对数据的存放、寄存器和工作单元的使用等要由设计者安排;而高语言程序设计时,这些工作是由计算机软件完成的,程序设计人员不必考虑。 4.1.1    编程步骤     一、分析问题     首先,要对需要解决的问题进行分析,以求对问题有正确的理解。例如,解决问题的任务是什么?工作过程是什么?现有的条件,已知的数据,对运算的精确和速度方面的要求是什么?设计的硬件结构是否方便编程等等。     二、确定算法      算法就是如何将实际问题转化成程序模块来处理。      解决一个问题,常常有几种可选择的方法。从数学角度来描述,可能有几种不同的算法。在编制程序以前,先要对不同的算法进行分析、比较,找出最适宜的算法。 ?      三、画程序流程图       程序流程图是使用各种图形、符号、有向线段等来说明程序设计过程的一种直观的表示,常采用以下图形及符号:椭圆框(    )或桶行框(    )表示程序的开始或结束。 矩形框(   )表示要进行的工作。 菱形框(   )表示要判断的事情,菱形框内的表达式表示要判断的内容。 圆圈(   )表示连接点。 指向线(→)表示程序的流向。     流程图步骤分得越细致,编写程序时也就越方便。    

    标签: 汇编语言 程序设计

    上传时间: 2013-10-10

    上传用户:18888888888