1. <em id="3qmea"><ol id="3qmea"></ol></em>
    2. <em id="3qmea"></em>
      中国领先的单片机及嵌入式资讯教程开发工具提供者!
      当前位置单片机教程网 >> 基础教程 >> 浏览文章

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

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

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

      二数据地址指令之所以将这三者放在一起是因为这三者的本?#35782;?#26159;一样的数字或者说都是一串0和1组成的序?#23567;?#25442;言之地址指令也都是数据指令由单片机芯片的设计者规定的一种数字它与我们常用的指令助记符有着严格的一一对应关系不能由单片机的开发者更改地址是寻找单片机内部外部的存储单元输入输出口的依据内部单元的地?#20998;?#24050;由芯片设计者规定好不可更?#27169;?#22806;部的单元能由单片机开发者自行决定但有一些地址单元是一定要有的详见程序的执行过程数据这是由微处理机处理的对象在各种不一样的应用电路中各不相同一般而言被处理的数据可能有这么几?#26234;?#20917;

      1地址如MOV DPTR#1000H即地址1000H送入DPTR

      2方式字或控制字如MOV TMOD#33即是控制字

      3常数如MOV TH0#10H10H即定时常数

      4?#23548;?#36755;出值如P1口接?#23454;ƣ?#35201;灯全亮则执行指令MOV P1#0FFH要灯全暗则执行指令MOV P1#00H这里0FFH和00H都是?#23548;?#36755;出值又如用于LED的?#20013;?#30721;也是?#23548;?#36755;出的值

      理解了地址指令的本质就不难理解程序运行过程中为什么会跑飞会把数据当成指令来执行了

      三P0口P2口和P3的第二功能使用办法 开始学习时一般对P0口P2口和P3口的第二功能使用办法迷惑不解认为第二功能和原功能之间要有一个切换的过程或者说要有一条指令事实?#24076;?#21508;端口的第二功能完全是自动的不需要用指令来转换如P3.6P3.7分别是WRRD信号当微片理机外接RAM或有外部I/O口时它们被用作第二功能不能作为通用I/O口使用只要一微处理机一执行到MOVX指令就会有对应的信号从P3.6或P3.7?#32479;z?#19981;需要事先用指令说明事实上不能作为通用I/O口使用也并不是不能而是使用者不会将其作为通用I/O口使用你完全能在指令中按排一条SETB P3.7的指令并?#19994;?#21333;片机执行到这条指令时?#19981;?#20351;P3.7变为高电平但使用者不会这么去做因为这常常这会导致系统的?#35272;此?#26426;

      四程序的执行过程 单片机在通电复位后8051内的程序计数器PC中的值为0000所以程序总是从0000单元开始执行也就是说在系统的ROM中一定要存在0000这个单元并?#20197;ڡ?000单元中存放的一定是一条指令

      五堆栈 堆栈是一个区域是用来存放数据的这个区域本身没有任何特殊之处就是内部RAM的一部份特殊的是它存放和取用数据的方式?#27492;?#35859;的先进后出后进先出并且堆栈有特殊的数据传输指令?#30784;PUSH和POP有一个特殊的专为其服务的单元即堆栈指针SP每当执一次PUSH指令时SP就在原来值的基础?#24076;?#33258;动加1每当执行一次POP指令SP就在原来值的基础?#24076;?#33258;动减1由于SP中的?#30340;?#29992;指令加以改变所以只要在程序开始阶段更改了SP的值就能?#35759;?#26632;设置在规定的内存单元中如在程序开始时用一条MOV SP#5FH指令就时?#35759;?#26632;设置在从内存单元60H开始的单元中一般程序的开头总有这么一条设置堆栈指针的指令因为开机时SP的初始值为07H这样就使堆栈从08H单元开始往后而08H到1FH这个区域正是8031的第二三四工作寄存器区经常要被使用这会造成数据的浑乱不一样作者编写程序时初始化堆栈指令也不完全相同这是作者的习惯问题当设置好堆栈区后并不意味着?#20204;?#22495;成为一种专用内存它还是能象普通内存区域一样使用只是一般情况下编程者不会把它当成普通内存用了

      六单片机的开发过程 这里所说的开发过程并不是一般书中所说的从任务分析开始我们假设已设计并制作好硬件下面就是编写软件的工作在编写软件之前首先要确定一些常数地址事实上这些常数地址在设计阶?#25105;?#34987;直接或间接地确定下来了如当某器件的连线设计好后其地址也就被确定了当器件的功能被确定下来后其控制字也就被确定了然后用文本编缉器如EDITCCED等编写软件编写好后用编译器对源程序文件编译查错直到没有语法错误除了极简单的程序外一般应用仿真机对软件进行调试直到程序运行正确为止运行正确后就能写片将程序固化在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一类的程序转换得到学过手工汇编者应当不难?#39029;?#34920;3与表1的一一对应关系值得注意的是从02 00 40后开始的一长串FF直到75 81这是由于伪指令ORG 040H造成的结果

      七仿真仿真机 仿真是单片机开发过程中非常重要的一个?#26041;ڣ?#38500;了一些极简单的任务一般产品开发过程中?#23478;?#36827;行仿真仿真的主要目的是进行软件调试当然借助仿真机也能进行一些硬件排错一块单片机应用电路板包括单片机部份及为达到使用目的而设计的应用电路仿真就是利用仿真机来代替应用电路板称目标机的单片机部份对应用电路部份进行测试调试仿真有CPU仿真和ROM仿真两种所谓CPU仿真是指用仿真机代替目标机的CPU由仿真机向目标机的应用电路部份供给各?#20013;?#21495;数据进行调试的办法这种仿真能通过单步运?#23567;?#36830;续运行等多种办法来运行程序并能观察到单片机内部的变化便于改正程序中的错误所谓ROM仿真就是用仿真机代替目标机的ROM目标机的CPU工作时从仿真机中读取程序并执?#23567;?#36825;种仿真其实就是将仿真机当成一片EPROM只是省去了擦片写片的麻?#24120;?#24182;没有多少调?#20801;?#27573;可言常常这?#23884;?#31181;不一样类型的仿真机也就是说一台仿真机不能既做CPU仿真又做ROM仿真可能的情况下当然以CPU仿真好以上是本人对单片机的理解如有不对之处请诸位大侠多多指点发表您的高论

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

      文章评论

      ຣ11ѡ5app

        
        
        1. <em id="3qmea"><ol id="3qmea"></ol></em>
        2. <em id="3qmea"></em>

            
            
            1. <em id="3qmea"><ol id="3qmea"></ol></em>
            2. <em id="3qmea"></em>