首页 单片机基础知识

单片机基础知识

举报
开通vip

单片机基础知识单片机基础知识 单片机的组成 单片机要自动完成计算,它应该具有哪些最重要的部分呢? 我们以打算盘为例计算一道算术题。例:36+163×156-166?34。现在要进行运算, 首 先需要一把算盘,其次是纸和笔。我们把要计算的问题记录下来,然后第一步先 算163×156,把它与36相加的结果记在纸上,然后计算166?34,再 把它从上一次结果中减去,就得到最后的结果。 现在,我们用单片机来完成上述过程,显然,它首先要有代替算盘进行运 算的部件,这就是“运算器”;其次,要有能起到纸和笔作用的器件,即能记忆 原始题目...

单片机基础知识
单片机基础知识 单片机的组成 单片机要自动完成计算,它应该具有哪些最重要的部分呢? 我们以打算盘为例计算一道算术题。例:36+163×156-166?34。现在要进行运算, 首 先需要一把算盘,其次是纸和笔。我们把要计算的问题 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 下来,然后第一步先 算163×156,把它与36相加的结果记在纸上,然后计算166?34,再 把它从上一次结果中减去,就得到最后的结果。 现在,我们用单片机来完成上述过程,显然,它首先要有代替算盘进行运 算的部件,这就是“运算器”;其次,要有能起到纸和笔作用的器件,即能记忆 原始题目、 原始数据和中间结果,还要记住使单片机能自动进行运算而编制的 各种命令。这类器件就称为“存贮器”。此外,还需要有能代替人作用的控制器, 它能根据事先给 定的命令发出各种控制信号,使整个计算过程能一步步地进行。 但是光有这三部分还不够,原始的数据与命令要输入,计算的结果要输出,都需 要按先后顺序进行, 有时还需等待。 如上例中,当在计算163×156时,数字36就不能同时进入运算器。因此就需要在单片机上设置按控制器的命令进行动作的“门”,当运算器需要时,就 让新 数据进入。或者,当运算器得到最后结果时,再将此结果输出,而中间结 果不能随便“溜出”单片机。这种对输入、输出数据进行一定管理的“门”电路 在单片机中 称为“口”(Port)。在单片机中,基本上有三类信息在流动,一 类是数据,即各种原始数据(如上例中的36、163等)、中间结果(如166?34所得 的商4、余数30等)、程序(命令的集合)等。这样要由外部设备通过“口” 进入单片机,再存放在存贮器中,在运算处理过程中,数据从存贮器读入运算器 进行 运算,运算的中间结果要存入存贮器中,或最后由运算器经“出入口”输 出。 用户要单片机执行的各种命令(程序)也以数据的形式由存贮器送入控制 器,由控制器解读(译码)后变为各种控制信号,以便执行如加、减、乘、除等 功能的各种 命令。所以,这一类信息就称为控制命令,即由控制器去控制运算 器一步步地进行运算和处理,又控制存贮器的读(取出数据)和写(存入数据) 等。第三类信息是 地址信息,其作用是告诉运算器和控制器在何处去取命令取 数据,将结果存放到什么地方,通过哪个口输入和输出信息等。 存贮器又分为只读存贮器和读写存贮器两种,前者存放调试好的固定程序 和常数,后者存放一些随时有可能变动的数据。顾名思义,只读存贮器一旦将数 据存入,就 只能读出,不能更改(EPROM、E2PROM等类型的ROM可通过一定的方法来更改、写入数据——编者注)。而读写存贮器可随时存入或读出数据。 实际上,人们往往把运算器和控制器合并称为中央处理单元——CPU。单片机除了进行运算外,还要完成控制功能。所以离不开计数和定时。因此,在单片 机中就 设置有定时器兼计数器,其基本结构与本连载之(二)中的举例类似。 到这里为止,我们已经知道了单片机的基本组成,即单片机是由中央处理器(即 CPU中的运 算器和控制器)、只读存贮器(通常表示为ROM)、读写存贮器(又称随机存贮器通常表示为RAM)、输入/输出口(又分为并行口和串行口,表示 为I/O 口)等等组成。实际上单片机里面还有一个时钟电路,使单片机在进行 运算和控制时,都能有节奏地进行。另外,还有所谓的“中断系统”,这个系统 有“传达室” 的作用,当单片机控制对象的参数到达某个需要加以干预的状态 时,就可经此“传达室”通报给CPU,使CPU根据外部事态的轻重缓急来采取适 当的应付 措施 《全国民用建筑工程设计技术措施》规划•建筑•景观全国民用建筑工程设计技术措施》规划•建筑•景观软件质量保证措施下载工地伤害及预防措施下载关于贯彻落实的具体措施 。 现在,我们已经知道了单片机的组成,余下的问题是如何将它们的各部分 连接成相互关联的整体呢?实际上,单片机内部有一条将它们连接起来的“纽 带”,即所谓 的“内部总线”。此总线有如大城市的“干道”,而CPU、ROM、RAM、I/O口、中断系统等就分布在此“总线”的两旁,并和它连通。从而,一 切指令、 数据都可经内部总线传送,有如大城市内各种物品的传送都经过干道 进行。 单片机指令系统与汇编语言程序 前面已经讲述了单片机的几个主要组成部分,这些部分构成了单片机的硬 件。所谓硬件(Hardware),就是看得到,摸得到的实体。但是,光有这样的硬 件,还只是有了实现计算和控制功能的可能性。单片机要真正地能进行计算和控 制,还必须有软件(Software)的配合。软件主要指的是各种程序。只有将 各种正确的程序“灌入”(存入)单片机,它才能有效地工作。单片机所以能自动 地进行运算和控制,正是由于人把实现计算和控制的步骤一步步地用命令的形 式, 即一条条指令(Instruction)预先存入到存贮器中,单片机在CPU的控制下,将指令一条条地取出来,并加以翻译和执行。就以两个数相加这一简单 的运算来说,当需要运算的数已存入存贮器后,还需要进行以下几步: 第一步:把第一个数从它的存贮单元(Location)中取出来,送至运算器。 第二步:把第二个数从它所在的存贮单元中取出来,送至运算器; 第三步:相加; 第四步:把相加完的结果,送至存贮器中指定的单元。 所有这些取数、送数、相加、存数等等都是一种操作(Operation),我们把要求计算机执行的各种操作用命令的形式写下来,这就是指令。但是怎样才能 辨别和执行这些操作呢?这是在 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 单片机时由设计人员赋予它的指令系统所 决定的。一条指令,对应着一种基本操作;单片机所能执行的全部指令,就是该 单片机 的指令系统(Iustruction Set),不同种类的单片机,其指令系统亦不 同。 使用单片机时,事先应当把要解决的问题编成一系列指令。这些指令必须是选定的单片机能 识别和执行的指令。单片机用户为解决自己的问题所编的指令程序,称为 源程序(Source Program)。指令通常分为操作码(Opcode)和操作数(Operand)两大部分。操作码表示计 算机执行什么操作,即指令的功能;操作数表示参 加操作的数或操作数所在的地址(即操 作数所存放的地方编号)。因为单片机是一种可编程器件,只“认得”二进码(0、1)。要单片机运作,单片机系统中的所 有指令,都必须以二进制编码的形式来表示。例如,在Intel公司的MCS-51系列单片机中,从存贮器中取出一数到CPU中的累加器(在运算器中, 参与 运算、存放运算结果的专用寄存器)的指令代码为74H,累加器内容加立即数的代码 为24H,再加上立即数代码,累加器送数到内部RAM存贮器的代码为 F6H~F7H等。这些指令是用十六进制表示二进制的机器码。 MCS-51单片机的字长为8位,有时,要完成某些操作用一个字节尚不能充分表达。 所以,在指令系统中有单字节指令,也有多字节指令。机器码是由一连串的 0和1组成,没有明显的特征,不好记忆,不易理解,易出错。所以,直接用它来编写程序十分困难。因 而,人们就用一些助记符(Mue monic)——通常是指令功能的英文缩写来代替操作码,如 MCS-51中数的传送常用MOV(Move的缩写)、加法用Add(Addition的缩 写)来作为助 记符。这样,每条指令有明显的动作特征,易于记忆和理解,也不容易出错。用助记符来编 写的程序称为汇编语言程序。但是,助记符编写的程序便于 人理解,可单片机却只认识二 进制机器代码,因此,为了让单片机能“读懂”汇编语言程序必须再转换成由二进制机器码构 成的程序,这种转换过程,就称为“汇编 ”。汇编可借助于人工查表法来实现,也可借助PC机通过所谓“交叉汇编程序”来完成。由机器码构成的用户程序一旦“进入”了单片机,再“启动”单片机,就 可让它执行输入程序所 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 的任务。 MCU--51 CPU和存储器 单片机8051的CPU由运算器和控制器组成。 一、运算器 运算器以完成二进制的算术/逻辑运算部件ALU为核心,再加上暂存器TMP、累加器ACC、寄存器B、程序状态标志寄存器PSW及布尔处理器。累加器 ACC是一个八位寄存器,它 是CPU中工作最频繁的寄存器。在进行算术、逻辑运算时,累加器ACC往往在运算前暂存一个操作数(如被加数),而运算后又保 存其结果(如代数和)。寄存器B主要用于乘法和除法操作。标志寄存器PSW也是一个八位寄存器,用来存放运算结果的一些特征,如有无 进位、借位等。其每位 的具体含意如下所示。PSW CY AC FO RS1 RS0 OV - P对用户来讲,最关心的是以下四位。 进位标志CY()。它表示了运算是否有进位(或借位)。如果操作结果在最 高位有进位(加法)或者借位(减法),则该位为1,否则为0。 辅助进位标志AC。又称半进位标志,它反映了两个八位数运算低四位是否有半进位, 即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。 溢出标志位OV。MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位 为1,否则为0。 奇偶标志P。反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。 PSW的其它位,将在以后再介绍。由于PSW存放程序执行中的状态,故又叫程序状态字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)。其功能在介 绍位指令时再说明。 二、控制器 控制器是CPU的神经中枢,它包括定时控制逻辑电路、指令寄存器、译码器、地址指 针DPTR及程序计数器PC、堆栈指针SP等。这里程序计数器PC是由 16位寄存器构成的计数器。要单片机执行一个程序,就必须把该程序按顺序预先装入存储器ROM的某个区域。单片机动作时应按顺序一条条取出指令来加以执 行。因此,必须有一个电路能找出指令所 在的单元地址,该电路就是程序计数器PC。当单片机开始执行程序时,给PC装入第一条指令所在地址,它每取出一条指 令(如为多字节指令,则每取出一个指令字节),PC的内容就自动加1,以指向下一条指令的地址,使指令能顺序执行。只有当程序遇到转移指令、 子程序调用指 令,或遇到中断时(后面将介绍),PC才转到所需要的地方去。8051 CPU碢C指定的地址,从ROM相应单元中取出指令字节放在指令寄存器中寄存,然后,指令寄存 器中的指令代码被译码器译成各种形式的控制信号,这些信号与 单片机时钟振荡器产生的 时钟脉冲在定时与控制电路中相结合,形成按一定时间节拍变化的电平和时钟,即所谓控制 信息,在CPU内部协调寄存器之间的数据传 输、运算等操作。 三、存储器 存储器是单片机的又一个重要组成部分,图6给出了一种存储容量为256个单元的存储器结构示意图。其中每个存储单元对应一个地址,256个单元共有256 个地址,用两位16进制数表示,即存储器的地址(00H~FFH)。存储器中每个存储单元可存放一个八位二 进制信息,通常用两位16进制数来表示,这就是 存储器的内容。存储器的存储单元地址和 存储单元的内容是不同的两个概念,不能混淆。 一、程序存储器 程序是控制计算机动作的一系列命令,单片机只认识由“0”和“1”代码构成的机器指令。如前述用助记符编写的命令MOV A,#20H,换成机器认识的代码74H、20H:(写成二进制就是01110100B和00100000B)。在单片机处理问题之前必须事先将编好的程 序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。程序存储器可以 放在片内或片外,亦可片内片外同时设置。由于PC程序计数 器为16位,使得程序存储器可用16位二进制地址,因此,内外存储器的地址最大可从0000H到FFFFH。8051内部有4k字节的ROM,就占用了由 0000H~0FFFH的最低4k个字节,这时片外扩充的程序存储 器地址编号应由1000H开始,如果将8051当做8031使用,不想利用片内 4kROM,全用片外存储器,则地址编号仍可由0000H开始。不过,这时应使8051的第{31}脚(即EA脚)保持低电平。当EA为高电平时,用户在 0000H至0FFFH范围内使用内部ROM,大于0FFFH后,单片机CPU自动访问外部程序存储器。 二、数据存储器 单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展到64k,用于存储实时输入的数据。8051内部有256个单元的内部数据存储器,其中 00H~7FH为内部随机存储器RAM,80H~FFH为专用寄存器区。实际使用时应首先充分利用内部存储器,从使用 角度讲,搞清内部数据存储器的结构和 地址分配是十分重要的。因为将来在学习指令系统 和程序设计时会经常用到它们。8051内部数据存储器地址由00H至FFH共有256个字节的地址空间,该 空间被分为两部分,其中内部数据RAM的地址为00H~7FH(即0~127)。而用做特殊功能寄存器的地址为80H~FFH。在此256个字节中,还开 辟有一个所谓“位地址”区,该区域内不但可按字节寻址,还可按“位(bit)”寻址。对于那些需要进行位操作的 数据,可以存放到这个区域。从00H到 1FH安排了四组工作寄存器,每组占用8个RAM字节,记为R0~R7。究竟选用那一组寄存器,由前述标志寄存器中的RS1和RS0来选用。在这两位上放 入不同的二进制数,即可选用不同的寄存器组,如附表1所示。 三、特殊功能寄存器 特殊功能寄存器(SFR)的地址范围为80H~FFH。在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR 块中。其中5个是双字节寄存器,它们共占用了26个字节。各特殊功能寄存器的符号和地址见附表2。其中带*号的可位寻址。特殊功能寄存器反映了8051的 状态,实际上是8051的状态字及控制字寄存器。 用于CPU PSW便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有 关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是 P0~P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲 器就构成了一个并行口。MCS-51共有 P0~P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、 数据指针DPTR等的功能前已提及,而另一些寄存器的功能在后面有关部分 再作进一步介绍 单片机的指令系统和寻址方式 单片机要正常运作,事先需编制程序,再把程序放入存贮器中,然后由CPU执行该程序。程序是由指令组成的,指令的基本组成是操作码和操作数。单片机的品种 很多,设计时怎样表示操作码和操作数,都有各自的规定,再有指令代码也各不相同,因此,必须对所 选单片机的全部指令,也就是所谓“指令系统”,有足够的了 解。各个系列的单片机虽然有 不同的指令系统,但也有其共同性。掌握一种单片机的指令系统,对其它系列单片机可以起 到触类旁通的作用。MCS-51单片机应 用广泛,派生品种多,具有代表性,所以,这里以 MCS-51系列的指令系统为例说明“指令”的组成和应用。 1、MOV A,#20H 这条指令表示把20H这个数送入累加器A中(一个特殊功能寄存器)。2、ADD A,70H 这条指令表示把累加器A中的内容(在上例中送入的#20H)和存贮器中地址为70H单元中的内容(也是一个数字),通过算术逻辑单元(英文缩写为ALU) 相加,并将结果保留在A中。这里MOV、ADD等称为操作码,而A、#20H、70H等均称为操作数。在汇编语言程序中,操作码通常由英文单词缩写而成, 这样有助于记忆,所以又称助记符。如 MOV就是英文单词MOVE的缩写,含有搬移的意思;而ADD即为英文单词,其意为相加。 因此,对于略懂英语的用户, 掌握单片机指令的含意是较为方便的。操作数有多种表示法, 如以上的#20H称为立即数,即20H就是真正的操作数。而70H是存贮器中某个单元的地 址,在 该单元中,放着操作数(比如说是3AH),ADD A,70H不是将70H和A中的内容相加,而是从存贮器70H单元中将3AH取出和A中的内容相加。由上可知,要找到实际操 作数,有时就要转个弯,甚至转 几个弯,这个过程称为寻址,MCS-51共有7种寻址方式,现介绍如下: 一、立即寻址: 操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示 该寻址方式为立即寻址,如#20H。 二、寄存器寻址: 操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如MOV A,R0就属于寄存器寻址,即将R0寄存器的内容送到累加器A中。 三、直接寻址: 操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H中的70H。 四、寄存器间接寻址: 操作数放在RAM某个单元中,该单元的地址又放在寄存器R0 或R1中。 如果RAM的地址大于256,则该地址存放在16位寄存器DPTR(数据指针)中,此时在寄存器名前加@符号来表示这种间接寻址。如MOV A,@ R0。其它还有变址寻址、相对寻址、位寻址等,待 以后再详细介绍。可能有人会问,在指令中直接给出实际操作数,不是简单、明了吗?为什 么还要用其它几种寻 址方式呢?这是因为在编制程序时很难一下子就给出操作数。如用单 片机控制温度时,时时需要将给定的控制温度(如20?)减去环境温度,而环境温度时时 有变 化,显然无法在程序指令中给出,只有通过一定方式,将其送入某个输入/输出口,再存放在某个寄存器中,这就必须用到寄存器寻址。又如要进行算术运算,要计 算每班学员各科成绩的平均值,如果把每个学员的各科都编一个程序,在程序中直接给出该学员各科成 绩,再求平均值,显然太麻烦。这里可以编一个求平均成绩的 通用程序,把每位学员的成 绩送入存贮器的各个单元中,这时可采取直接寻址,一个程序可供每个学员用,不是更方便 吗?所以,寻址方式越多,编制程序就越方 便、灵活,适用范围就越广。 寻址有如找人,如被找的人有手机、BP机、座机电话等多种联系方式则就容易找到他, 单片机也是如此,寻址方式越多,找操作数越方便,单片机的功能就越强。 前面介绍51系列单片机的寻址方式时,常遇到单片机内部的一些寄存器、累加器A、通用寄存器R0~R7、数据指针DPTR和存贮器等。在以后介绍指令时, 数据就要在这些寄存器、存贮器之 间传送,或者进行运算。因此,编制程序就需熟悉单片机的内部结构。 8051单片机的内部总体结构其基本特性如下: 8位CPU、片内振荡器 4k字节ROM、128字节RAM 21个特殊功能寄存器 32根I/O线 可寻址的64k字节外部数据、程序存贮空间 2个16位定时器、计数器 中断结构:具有二个优先级、五个中断源 一个全双口串行口 位寻址(即可寻找某位的内容)功能,适于按位进行逻辑运算的位处理器。除128字节RAM、 4k字节ROM和中断、串行口及定时器模块外,还有4组I/O 口P0~P3,余下的就是CPU 的全部组成。把4kROM换为EPROM就是8751的结构,如去掉ROM/EPROM部分即为8031 的框图,如果将 ROM置换为Flash存贮器或EEPROM,或再省去某些I/O,即可得到51 系列的派生品种,如89C51、AT89C2051等单片机的框图。 单片机各部分是通过内部的总线有机地连接起来的 单片机基础知识 随着电子技术的迅速发展,计算机已深入地渗透到我 们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象, 相对电子 爱好者已熟悉的模拟电路、数字电路,单片机中有一些新的概念,这 些概念非常基本以至于一般作者不屑去谈,教材自然也不会很深入地讲解这些概 念,但这些内容 又是学习中必须要理解的,下面就结合本人的学习经验,对这 些最基本概念作一说明,希望对自学者有所帮助。 一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟 电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的 连线 并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要 与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了, 如果仍如 同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将 多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有 器件的8根数据 线全部接到8根公用的线上,即相当于各个器件并联起来,但 仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接 收方接收到的究竟是什 么呢?这种情况是不允许的,所以要通过控制线进行控 制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时 接收)。器件的数据线也就被 称为数据总线,器件所有的控制线被称为控制总 线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被 分配地址,才能使用,分配地址当然 也是以电信号的形式给出的,由于存储单 元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。 二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都 是一样的??数字,或者说都是一串‘0’和‘1’组成的序列。换言之,地址、 指 令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常 用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址: 是寻找 单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值 已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定, 但有一些地址 单元是一定要有的(详见程序的执行过程)。数据:这是由微处 理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据 可能有这么几种情 况: 1?地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。 2?方式字或控制字(如MOV TMOD,#3),3即是控制字。 3?常数(如MOV TH0,#10H)10H即定时常数。 4?实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如 用于LED的字形码,也是实际输出的值。 理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据 当成指令来执行了。 三、P0口、P2口和P3的第二功能用法 初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或 者说要有一条指令,事实上,各端口的第二功 能完全是自动的,不需要用指令 来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作 为通用I/O口使用,只要一微处理机一执 行到MOVX指令,就会有相应的信号从P3.6或P3.7送出,不需要事先用指令说 明。事实上‘不能作为通用I /O口使用’也并不是‘不能’而是(使用者)‘不 会’将其作为通用I/O口使用。你完全可以在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么 去做,因为这通常这会导致系统的崩溃(即死机)。 四、程序的执行过程 单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行,也就是说:在系统的 ROM中一定要存在‘0000’这个单元,并且在‘0000’单元中存放的一定是一条 指令。 五、堆栈 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特 殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的 ‘先进后出,后进 先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和 ‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就 (在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值可以用指令加以改变,所以只 要在程序开始阶 段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如 在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时, SP的初始值为 07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑 乱。不同 作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问 题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普 通内存区域一样 使用,只是一般情况下编程者不会把它当成普通内存用了。 六、单片机的开发过程 这里所说的开发过程并不是一般书中所说的从任务 分析开始,我们假设已设计并制作好硬件,下面就是编写软件的工作。在编写软 件之前,首先要确定一些常数、地 址,事实上这些常数、地址在设计阶段已被 直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了, 当器件的功能被确定下来后,其控制字也 就被确定了。然后用文本编缉器(如 EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直 到没有语法错误,除了极简单的程序外, 一般应用仿真机对软件进行调试,直 到程序运行正确为止。运行正确后,就可以写片(将程序固化在EPROM中)。在 源程序被编译后,生成了扩展名为HEX的 目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。在此,为使大家对整个过程有个认识, 举一例说明: ORG 0000H LJMP START ORG 040H START: MOV SP,#5FH ;设堆栈 LOOP: NOP LJMP LOOP ;循环 END ;结束 表1 :03000000020040BB :0700400075815F000200431F 表2 02 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 75 81 5F 00 02 00 43 表3 表1为源程序,表2是汇编后得到的HEX文件,表3是由HEX文件转换成的目标 文件,也就是最终写入EPROM的文件,它由编程器转换得到,也可以由 HEXBIN 一类的程序转换得到。学过手工汇编者应当不难找出表3与表1的一一对应关系, 值得注意的是从02 00 40后开始的一长串‘FF’,直到75 81,这是由于伪指 令:ORG 040H造成的结果。 七、仿真、仿真机 仿真是单片机开发过程中非常重要的一个环节,除了一 些极简单的任务,一般产品开发过程中都要进行仿真,仿真的主要目的是进行软 件调试,当然借助仿真机,也 能进行一些硬件排错。一块单片机应用电路板包 括单片机部份及为达到使用目的而设计的应用电路,仿真就是利用仿真机来代替 应用电路板(称目标机)的单片机部 份,对应用电路部份进行测试、调试。仿真有CPU仿真和ROM仿真两种,所谓CPU仿真是指用仿真机代替目标机的CPU, 由仿真机向目标机的应用电路部份 提供各种信号、数据,进行调试的方法。这 种仿真可以通过单步运行、连续运行等多种方法来运行程序,并能观察到单片机 内部的变化,便于改正程序中的错误。所 谓ROM仿真,就是用仿真机代替目标机的ROM,目标机的CPU工作时,从仿真机中读取程序,并执行。这种仿真其实 就是将仿真机当成一片EPROM,只是 省去了擦片、写片的麻烦,并没有多少调试手段可言。通常这是二种不同类型的仿真机,也就是说,一台仿真机不能既做 CPU仿真,又做ROM仿真。可能的情况 下,当然以CPU仿真好。 以上系个人对单片机的理解,如有不对之处,请诸位大虾多多指点。发表您的高 见。 为了使初学者更快地了解和掌握单片机技术,本站在将会组织编写一些学习单片 机的方法和实例帮助大家快速入门,愿更多的朋友能迈入单片机的大门,成为电 子界,程序开发界的新成员! 常用术语(位、字节、字、地址、总线、存贮器) 一、常用术语解释 1. 总线( Bus ):是指从任意一个源点到任意一个终点的一组传输数字信息的 公共通道。 有三种总线 : 地址总线( Address Bus ) AB 是单向的,由 CPU 发出; 数据总线 ( Data Bus ) DB 是双向的; 控制总线 ( Control Bus ) CB 有的是输出的,有的是输入的。 2. 位( bit ): binary digit 的简写。 3. 字节( byte ):一个字节就是相邻的 8 位二进制数,即 D7 D6 D5 D4 D3 D2 D1 D0. 如 10110011 的 D4 是 1 , D6 是 0 。 4. 字( word ):在计算机中和信息处理系统中,在存贮、传送或操作时,作 为一个单元的一组字符或一组二进制数。通常是 16 位构成一个字在计算机中用。 5. 存贮器( Memory ):存贮器由存贮矩阵、地址译码器、读写控制、三态双 向缓冲器等部分组成。 程序存贮器 ROM: 由芯片制造厂家掩膜编程的只读存贮器。 EPROM: 可擦除可编程ROM,要用紫外光照射窗口一定时间。 OTP:one time program,只能写一次的ROM。 EEPROM: 可电擦除可编程ROM。 Flash Memory:集成度高、成本低、体积小、电擦除,读写方便等。 数据寄存器(RAM): 静态RAM( SRAM): 动态RAM( DRAM): 需要 数据保存刷新电路。 (SDRAM): 6.存贮地址(Memory Address): 用来定义每个存贮单元。每个单元能存放8位二进制数,即1个字节的二进制数。为了区分不同的单元,每个存贮器都有一 个地址,以供CPU寻址,操作。 二、评价微机的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 计算速度:通常是指时钟频率的高低。 字长:几位机即微处理机的字长。 存贮容量 :存贮容量通常指CPU的寻址范围,取决于地址总线的长短。 指令系统:CPU能识别的指令编码。 I/O接口:指与输入/输出设备连接的接口。
本文档为【单片机基础知识】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_212655
暂无简介~
格式:doc
大小:81KB
软件:Word
页数:0
分类:互联网
上传时间:2017-09-26
浏览量:11