您的位置 首页 传感器

普通单片机教育——初学单片机几个不易把握的概念

随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,相对电子爱好者

跟着电子技术的迅速发展,计算机已深化地渗透到咱们的日子中,许多电子爱好者开端学习单片机常识,但单片机的内容比较笼统,相对电子爱好者已了解的模仿电路、数字电路,单片机中有一些新的概念,这些概念十分根本以至于一般作者不屑去谈,教材天然也不会很深化地解说这些概念,但这些内容又是学习中必需要了解的,下面就结合自己的学习、教育经历,对这些最根本概念作一阐明,期望对自学者有所协助。

一、总线:咱们知道,一个电路总是由元器材经过电线衔接而成的,在模仿电路中,连线并不成为一个问题,因为各器材间一般是串行联系,各器材之间的连线并不许多,但计算机电路却不相同,它是以微处理器为中心,各器材都要与微处理器相连,各器材之间的作业有必要彼此和谐,所以就需要的连线就许多了,假如仍好像模仿电路相同,在各微处理器和各器材间独自连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器材一同享受连线,一切器材的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仿真好。

以上系个人对单片机的了解,如有不对之处,请诸位大虾多多点拨。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/261810.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部