电子电路 功放电路 电子制作 集成块资料 电子报 pcb 变压器 元器件知识 逆变器 电路图 开关电源 传感器技术 led 电磁兼容
返回首页
当前位置: 首页 > 电子电路 > 设计编程

初学单片机不易掌握的几个概念

时间:2011-08-20 20:50:26来源:原创 作者:admin 点击:

随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,电子爱好者已熟悉的模拟电路、数字电路,单片机中有新的概念,这些概念非常基本以至于作者不屑去谈,教材自然也不会很深入地讲解这些概念,但这些内容又是学习中要理解的,下面就结合本人的学习、教学经验,对这些最基本概念作一说明,希望对自学者有所帮助。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》


  一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,各器件间是串行关系,各器件的连线并不,但计算机电路却不一样,它是以微器为核心,各器件都要与微器相连,各器件的工作协调,的连线就了,仍如同模拟电路一样,在各微器和各器件间单独连线,则线的数量将多得惊人,在微机中引入了总线的概念,各个器件共同享用连线,器件的8根数据线接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,有两个器件送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种是不允许的,要通过控制线进行控制,使器件分时工作,时候只能有一个器件发送数据(可以有多个器件接收)。器件的数据线也就被称为数据总线,器件的控制线被称为控制总线。在单片机内部外部存储器它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,存储单元比较多,,用于地址分配的线也较多,这些线被称为地址总线。
《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

  二、数据、地址、指令:之将这三者放在一起,是这三者的本质都是一样的──数字,说都是一串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有地址单元是要有的(详见程序的执行过程)。数据:这是由微的对象,在各种不同的应用电路中各不而言,被的数据有这么几种《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

1·地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

2·方式字或控制字(如MOV TMOD,#3),3即是控制字。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

3·常数(如MOV TH0,#10H)10H即定时常数。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里0FFH和00H都是输出值。又如用于LED的字形码,也是输出的值。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指令来执行了。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

  三、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变为高电平,但使用者不会这么去做,这通常这会导致系统的崩溃(即死机)。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

  四、程序的执行过程 单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000’,程序总是从‘0000’单元开始执行,也说:在系统的ROM中要存在‘0000’单元,并且在‘0000’单元中存放的是一条指令。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

  五、堆栈 堆栈是一个区域,是用来存放数据的,区域本身没有特殊之处,内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。SP中的值可以用指令加以改变,只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。程序的开头总有这么一条设置堆栈指针的指令,开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱。不同作者编写程序时,初始化堆栈指令也不,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是下编程者不会把它当成普通内存用了。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

  六、单片机的开发过程 这里所说的开发过程并不是书中所说的从任务分析开始,我们假设已设计并制作好硬件,下面编写软件的工作。在编写软件之前,首先要确定常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后用文本编缉器(如EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以写片(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,编程器识别这种格式的文件,只要将此文件调入写片。在此,为使大家对整个过程有个认识,举一例说明:《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

ORG 0000H《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

LJMP START《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

ORG 040H《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

START:《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

MOV SP,#5FH ;设堆栈《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

LOOP:《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

NOP《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

LJMP LOOP ;循环《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

END ;结束《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

表1《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

:03000000020040BB《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

:0700400075815F000200431F《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

表2《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

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《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

表3《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

表1为源程序,表2是汇编后得到的HEX文件,表3是由HEX文件转换成的目标文件,也最终写入EPROM的文件,它由编程器转换得到,也可以由HEXBIN一类的程序转换得到。学过手工汇编者应当不难找出表3与表1的一一对应关系,值得注意的是从02 00 40后开始的一长串‘FF’,直到75 81,这是伪指令:ORG 040H造成的结果。《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

  七、仿真、仿真机 仿真是单片机开发过程中非常重要的一个环节,除了极简单的任务,产品开发过程中都要进行仿真,仿真的主要目的是进行软件调试,当然借助仿真机,也能进行硬件排错。一块单片机应用电路板单片机部份及为达到使用目的而设计的应用电路,仿真仿真机来代替应用电路板(称目标机)的单片机部份,对应用电路部份进行测试、调试。仿真有CPU仿真和ROM仿真两种,所谓CPU仿真是指用仿真机代替目标机的CPU,由仿真机向目标机的应用电路部份提供各种信号、数据,进行调试的方法。这种仿真可以通过单步运行、连续运行等多种方法来运行程序,并能观察到单片机内部的变化,便于改正程序中的错误。所谓ROM仿真,用仿真机代替目标机的ROM,目标机的CPU工作时,从仿真机中读取程序,并执行。这种仿真其实将仿真机当成一片EPROM,只是省去了擦片、写片的麻烦,并没有多少调试手段可言。通常这是二种不同类型的仿真机,也说,一台仿真机不能既做CPU仿真,又做ROM仿真。下,当然以CPU仿真好。
《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

容源电子网为你提供技术支持,本站网址:www.dziuu.com
顶一下
0%
返回首页
0
0%

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
表情:
用户名: 密码: 验证码: 匿名发表
推荐内容
  • 51单片机对LCD1602液晶显示器的控

    51单片机对LCD1602液晶显示器的控制 要想实现人机交互,显示装置是不可缺少的。这篇文章主要关于如何控制液晶显示,并在此基础上加上定时器的功能,把原来已用数码管显示

  • 介绍编码器的工作原理和作用

    编码器的工作原理和功能:它是一个旋转传感器,将旋转位移转换为一系列数字脉冲信号。这些脉冲可用于控制角位移。如果编码器与齿轮杆或螺钉组合,可用于测量线性位移。