234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

    27课:关于单片机的一一些基本概念

    作者:佚名   来源:本站原创   点击数:x  更新时间:2007年08月14日   【字体:
        随着电子技术的一迅速发展,计算︻机已深入地渗透到我们的一生活中,许多电子爱好者开始学习单片机知识,但单片机的一内容比较抽象,相对电子爱好者已熟悉的一模拟电路、数字电路,单片机中有一些新的一概念,这些概念非常基本以至于一般作者不 屑去谈,教材自然也不 会很深入地讲解这些概念,但这些内容又●是学习中必须要理解的一,下面就结合本人的一学习、教学经验ζ,对这些最基本概念作一说明,希望对自学者有所帮助 。

      一、总线:我们知道,一个电路总是由元器件通过电线连接而成的一,在模拟电路中,连线并不 成为一个问题,因 为各器件间一般是串行关系,各器件之间的一连线并不 很多,但计算︻机电路却不 一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的一工作必须相互协调,所以就需要的一连线就很多了,如果仍如同模拟电路一样,在各微处理器№和各器件间单独连线,则线的一数量将多得惊人,所以在微处理机中引入了总线的一概念,各个器件共同享用连线,所有器件的一8根数据线全部接到8根公用的一线上    ,即相当于各个器件并联起来,但仅这样还不 行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的一究竟是什么呢?这种情况是不 允许的一,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(能有多个器件同时接收) 。器件的一数据线也就被称为数据总线,器件所有的一控制线被称为控制总线 。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的一形式给出的一,由于存储单元比较多,所以,用于地址分配的一线也较多,这些线被称为地址总线 。

      二、数据、地址、指令:之所以将这三者放在一起,是因 为这三者的一本质都是一样的一──数字,或者说都是一串‘0’№和‘1’组成的一序列 。换言之,地址、指令也都是数据 。指令:由单片机芯片的一设计者规定的一一种数字,它与我们常用的一指令助记符有着严格的一一一对应关系,不 能由单片机的一开发者更改 。地址:234彩票代理是寻找单片机内部、外部的一存储单元、输入输出口的一依据,内部单元的一地址值已由芯片设计者规定好,不 可更改,外部的一单元能由单片机开发者自行决定,但有一些地址单元是一定要有的一(详见程序的一执行过程) 。数据:这是由微处理机处理的一对象,在各种不 一样的一应用电路中各不 相同,一般而言,被处理的一数据可能有这么几种情况:

    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的一目标文件,一般编程器能够识别这种格式的一文件,只要将此文件调入即可写片 。在此,为使大家对整个过程有个认识,举一例说明:

    表1

    ORG 0000H

    LJMP START

    ORG 040H

    START:

    MOV SP,#5FH ;设堆栈

    LOOP:

    NOP

    LJMP LOOP ;循环

    END ;结束

    表2

    :03000000020040BB

    :0700400075815F000200431F

    表3

    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

    表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仿真好 。以上    是本人对单片机的一理解,如有不 对之处,请诸位大侠多多指点 。发表您的一高论 。

    发表评论】【告诉好友】【收藏此文】【关闭窗口

    文章评论