趣解单片机堆栈概念

趣解单片机堆栈概念
趣解单片机堆栈概念

关于单片机堆栈概念的一个有趣的解释

因为单片机有CPU、存储器、IO等等,使他(人性化一点以配合下文)看起来就像一个比较小的计算机,所以,在理解单片机的时候如果能把你之前有的那些也许仅仅是直觉上的对计算机的理解融入进来的话,可能会对你学习单片机的概念有极大的帮助,至少对于我是这样的。

我想在关于单片机的众多让你头晕脑胀、摸不着头脑甚至想撞墙的概念里面,“堆栈”可能是其中最可恶的一个,因为即使单单是从汉语的角度来理解这个词就已经让你很晕了,其实我最初也想不通这是哪位大侠的创意,不过不用担心,这里我们完全不去讨论关于这个词的问题(这个词用得其实很好“堆”和“栈”都有他们各自的意思,准确的概括了这个区域的功能,有兴趣可以Baidu一下),这里我会打一个比较有趣的比方,以此来绕过那些令你想撞墙的概念,并使你在直觉上对“堆栈”这个概念有一个深刻的理解。

你基本上应该清楚,单片机里面是有存储区和CPU的,如果你不清楚,那么我刚刚告诉你了,请记住。现在,请你把单片中的CPU想成一个人(你完全可以把他想成是你宿舍的那个天天和你吵嘴的同学,一会你就会发现这会非常有趣),在这里就叫他C哥吧,不过这个人不同于常人,有一些特点,一会我们会慢慢说清楚,现在要告诉你的关于这个人的第一个特点

是:他的记忆能力很差。下面,请你把存储区想象成一个一个排好的小盒子,这些盒子的作用大致可以分成两类:1、保存

写有你命令的纸条,比如你在某个盒子里面的纸条上写着:去洗我的袜子!;2、保存你的一些东西,比如你那双正在污染宿舍空气的臭袜子。因为C哥是一个记忆力不怎么好的人,所以,这些盒子都有自己的编号,以方便他查找。

那么,现在,我们可以来说明一下单片机是如何工作的了。首先,你要把所有的命令还有需要处理的东西放进那些小盒子,比如刚才提到的你那双待洗的袜子还有那张纸条,这时你应该发现C哥另一个特点:笨——他只会做你明确告诉他的事情,也就是说,如果你没有在纸条上写“去洗我的袜子!”,那么C 哥极有可能会无动于衷地看着你的袜子直到他被熏晕倒,当然,更可能的情况是他根本找不到你的袜子…好了,当你把要做的事情和该怎么做写到盒子里之后,下面的任务就交给C哥了。C哥做事真的很讲原则,他会按照你给定的顺序或者——如果你没有给定的话,根据盒子上面的编号按照从小到大的顺序——一个一个地打开盒子,读取里面的命令、处理相应的事件,直到所有的事情都执行完毕,他就会休息。请你牢记这个简单而有趣的过程,因为其实单片机就是这样工作的,当然,这里忽略了许多细节,但是这对你从直觉上理解单片机的概念以及足够了。

下面,就要开始说明堆栈这个概念了,思来想去,还是觉

得如果直接把“堆栈”这个词用到文中来,实在不符合本文的风格,考虑到其实“堆栈”也是存贮区(这一点你要记住,堆栈并不是一个像专用寄存器那样专门的一个区域,它是由你在通用RAM区指定的。),按照本文的说法也就是一些盒子,所以,现在我们把“堆栈”改名叫“记忆盒子”,你可以感觉到,“堆栈”的作用和记忆有极大的关系,不过你也不用在这里纠结这个名字的由来,下面我会说的。

现在,请注意,我要开始解释“记忆盒子”了,也就是“堆栈”。大致上说,“记忆盒子”的作用是当C哥执行某任务到一半的时候突然有了更紧急的是事情要执行的时候用来保存当前任务的(包括盒子的编号和盒子里面的东西)。这么说你肯定晕了,其实,通俗一点,就是当C哥洗袜子洗到一半的时候突然接到你的命令要去打开另一个盒子(那个盒子里的纸条上可能写着“给我换尿布”)并执行里面的命令,因为C哥记忆力很差,以至于他做完那件紧急的事情后记不起要回到哪个盒子来继续执行“洗袜子”这个命令,这时候,他要把现在手头的东西保存到“记忆盒子”里,要保存的东西有:1、放着纸条和袜子的盒子的编号(注意这里其实是两项内容);2、那双袜子。这样,当他执行完紧急任务后会去记忆盒子里,从里面找到两张纸条,和一双袜子(这个时候C哥还是没有想起来他要洗袜子,他必须要到那张写着洗袜子命令的纸条),他按照两张纸条的信息知道自己要去哪个盒子去洗袜子,并在那里继

续完成洗袜子的任务。你可能会发现,在这一段的解释里面有一个重要的漏洞,那就是在C哥执行完紧急任务后他是如何知道储存着原来的任务信息的盒子的编号是存储在哪个“记忆盒子”里呢?别着急,下面我会解释的。

从本质来说,“记忆盒子”与普通的盒子是没有区别的,他们都是单片机里面的存储单元,证明这一点的最好证据就是堆栈是需要你来指定的,也就是说,你要预先把一些盒子指定为“记忆盒子”。下面,说明一下是如何指定“记忆盒子”的。其实这个过程很简单,在单片机的专用寄存器里面有一个SP 指针(81H),这个指针里面记录着堆栈的开始处的地址。用符合本文的话来解释就是,C哥的衣服上有一个口袋(也就是SP 指针),这个口袋里面的“神奇纸条”上记录着第一个“记忆盒子”的编号,而指定“记忆盒子”的过程就是你在这张“神奇纸条”上写上一个盒子的编号(作为第一个“记忆盒子”的编号),这个纸条会自动地将纸条上的编号加1或者减1,所以,某个目前并不确定的区域内盒子具备了成为“记忆盒子”的可能,注意,堆栈的大小是不能规定的,这就是为什么用“生长”这个词来形容堆栈。

现在,关于堆栈的概念基本上都介绍完了,但是,我知道,你可能还是很晕,甚至比看之前还晕,那是因为刚才叙述的这个过程是分开的,而且逻辑上并不是顺序的,下面,顺序的说一下,相信你马上就明白了。

主角仍然是傻傻笨笨但任劳任怨的C哥,他一个一个的打开盒子按照里面的纸条上的说明执行你规定的任务。而你,为了防止他在执行复杂任务时犯傻,把一个盒子指定为“记忆盒子”,并把这个“记忆盒子”的位置写在了一张“神奇纸条”上放在了C哥的口袋里。现在,C哥正在洗你的袜子,这个时候,他突然接到你的命令要去给你换尿布,而C哥知道自己很笨,所以他自动地掏出了口袋里的纸条,找到了第一个“记忆盒子”,然后拿出一张空白纸条,把装着“给我洗袜子”那张纸条的盒子的编号写在了上面并放进“记忆盒子”。然后,他把“神奇纸条”放回了口袋里。当这个任务完成后“神奇纸条”会自动将写在它上面的编号加1,也就是将一个新的、空的“记忆盒子”的编号写在上面。之后,他会按照刚才的过程把装着袜子的那个盒子的编号以及袜子本身分别放进不同的记忆盒

子(现在已经有三个盒子成为“记忆盒子”,堆栈已经长大了,红色下划线的字体就是这三个盒子里的内容,注意是有先后顺序的)。再然后,他就去给你换尿布了…

现在,尿布换完了,不过,果不其然,C哥完全忘记了他要给你洗袜子这件事情了,不过,他记得一件事,那就是看口袋里的纸条。于是,他摸出了口袋里的纸条,上面当然是一个“记忆盒子”的编号,他按照编号找到了第一个“记忆盒子”(按照上一段的顺序应该是第三个“记忆盒子”),里面应该是一双你的袜子,于是他拿到了你的袜子。但是,他还是不知道

该干什么,于是他再次摸出了“神奇纸条”,这时,纸条上的编号已经自动减1了,于是,他找到了新的“记忆盒子”,里面的纸条上记录着袜子本来放置的盒子的编号,于是,他把袜子放到了那个盒子里。恩,你可以想到,现在C哥还是不知道要对袜子做些什么,他耐心的又一次摸出了那张“神奇纸条”,这次按照上面的编号,他找到了一张纸条,上面写着的仍然是一个盒子的编号。C哥按照编号找到了那个盒子,发现那个盒子里的纸条上写着“给我洗袜子!”…至此,C哥又回到了原来的任务——洗袜子。

现在,我希望你已经明白了,堆栈其实就是你指定的一个些存储单元,这些存储单元被指定只用来保存一些特殊信息,比如地址(保护断点)或者一些数据(保护现场),如果你一定要说这个存储区有什么特别的话,那就是:1、这些存储单元内的内容都是CPU在执行某任务中途被打断时的一些相关参数;2、这些存储单元的地址被记在了一个叫堆栈指针的地方,也就是C哥口袋里的那张纸条上!

机械原理基本概念

(2)运动副是两构件通过直接接触形成的可动联接。(3)两构件通过点或线接触形成的联接称为高副。一个平面高副所引入的约束数为1。(4)两构件通过面接触形成的联接称为高副,一个平面低副所引入的约束数为2。(5)机构能实现确定相对运动的条件是原动件数等于机构的自由度,且自由度大于零。(6)虚约束是对机构运动不起实际约束作用的约束,或是对机构运动起重复约束作用的约束。(7)局部自由度是对机构其它运动构件的运动不产生影响的局部运动。(8)平面机构组成原理:任何机构均可看作是由若干基本杆组依次联接于原动件和机架上而构成。(8)基本杆组的自由度为0。(1)瞬心是两构件上瞬时速度相等的重合点-------即等速重合点。(2)两构件在绝对瞬心处的速度为0。(3)相构件在其相对瞬心处的速度必然相等。(4)两构件中若有一个构件为机架,则它们在瞬心处的速度必须为0。(5)用瞬心法只能求解机构的速度,无法求解机构的加速度。(1)驱动机械运动的力称为驱动力,驱动力对机械做正功。(2)阻止机械运动的力称为阻抗力,阻抗力对机械做负功。(1)机械的输出功与输入功之比称为机械效率。(2)机构的损失功与输入功之比称为损失率。(3)机械效率等于理想驱动力与实际驱动力的比值。(4)平面移动副发生自锁条件:作用于滑块上的驱动力作用在其摩擦角之内。(5)转动副发生自锁的条件:作用于轴颈上的驱动力为单力,且作用于轴颈的摩擦圆之内。(1)机构平衡的目的:消除或减少构件不平衡惯性力所带来的不良影响。(2)刚性转子总可通过在转子上增加或除去质量的办法来实现其平衡。(3)转子静平衡条件:转子上各偏心质量产生的离心惯性力的矢量和为零(或质径积矢量和为零)。(4)对于静不平衡转子只需在同一个平面内增加或除去平衡质量即可获得平衡,故称为单面平衡。(5)对于宽径比b/D<0.2的不平衡转子,只做静平衡处理。(6)转子动平衡条件:转子上各偏心质量产生的离心惯性力的矢量和为零,以及这些惯性力所构成的力矩矢量的和也为零。(7)实现动平衡时需在两个平衡基面增加或去除平衡质量,故动平衡又称为双面平衡。(8)动平衡的转子一定是静平衡的,反之则不然。(9)转的许用不平衡量有两种表示方法:许用质径积+许用偏心距。(1)机械运转的三阶段:启动阶段、稳定运转阶段、停车阶段。(2)建立机械系统等动力学模型的等效条件:瞬时动能等效、外力做功等效。(3)机器的速度波动分为:周期性速度波动和非周期性速度波动。(4)周期性速度波动的调节方法:安装飞轮。(5)非周期性速度波动的调节方法:安装调速器。(6)表征机械速度波动程度的参量是:速度不均匀系数δ。(8)飞轮调速利用了飞轮的储能原理。(9)飞轮宜优先安装在高速轴上。(10)机械在安装飞轮后的机械仍有速度波动,只是波动程度有所减小。(1)铰链四杆机构是平面四杆机构的基本型式。(2)铰链四杆机构的三种表现形式:曲柄摇杆机构、双曲柄机构、双摇杆机构。(3)曲柄摇杆机构的功能:将曲柄的整周转动变换为摇杆的摆动或将摇杆的摆动变换为曲柄的回转。(4)曲柄滑动机构的功能:将回转运动变换为直线运动(或反之)。(5)铰链四杆机构存在曲柄的条件:最短杆与最长杆长度之和小于等于其它两杆长度之和;最短杆为连架杆或机架。(6)铰链四杆机构成为曲柄摇杆机构的条件:最短杆与最长杆长度之和小于等于其它两杆长度之和;最短杆为连架杆。(7)铰链四杆机构成为曲柄摇杆机构的条件:最短杆与最长杆长度之和小于等于其它两杆长度之和;最短杆为机架。(8)铰链四杆机构成为又摇杆机构的条件:不满足杆长条件;或者是满足杆长条件但最短杆为连杆。(9)曲柄滑块机构存在曲柄的条件是:曲柄长度r+偏距r小于等于连杆长度l(12)曲柄摇杆机构以曲柄为原动件时,具有急回性质。(13)曲柄摇杆机构以曲柄为主动件,当曲柄与连杆共线时,机构处于极限位置。(14)曲柄滑块机构以曲柄为主动件,当曲柄与连杆共线时,机构处于极限位置。(15)偏置曲柄滑块机构以曲柄为原动件时,具有急回性质。(16)对心曲柄滑块机构不具有急回特性。(17)曲柄导杆机构以曲柄为原动件时,具有具有急回性质。(18)连杆机构的传动角越大,对传动越有利。(19)连杆机构的压力角越大,对传动越不利。(20)导杆机构的传动角恒为90o。21)曲柄摇杆机构以曲柄为主动杆时,最小传动角出现在曲柄与机架共线的两位置之一。(22)曲柄摇杆机构以摇杆为主动件,当从动曲柄与连杆共线时,机构处于死点位置。(23)当连杆机构处于死点时,机构的传动角为0。(1)凸轮机构的优点是:只要适当地设计出凸轮轮廓曲线,就可使打推杆得到各种运动规律。(2)凸轮机构的缺点:凸轮轮廓曲线与推杆间为点、线接触,易磨损。(3)常用的推杆运动规律:等速运动规律、等加速等减速运动规律、余弦加速度运动规律、正弦加速度运动规律、五次多项式运动规律。(4)采用等速运动规律会给机构带来刚性冲击,只能用于低速轻载。(5)采用等加速等减速运动规律会给机构带来柔性冲击,常用于中速轻载场合。(6)采用余弦加速度运动规律也会给机构带来柔性冲击,常用于中低速重载场合。(7)余弦加速度运动规律无冲击,适于中高速轻载。(8)五次多项式运动规律无冲击,适于高速中载。(9)增大基圆半径,则凸轮机构的压力角减少。(10)对凸轮机构进行正偏置,可降低机构的推程压力角。(11)设计滚子推杆盘形凸轮机构时,对于外凸的凸轮廓线段,若滚子半径大于理论廓线上的最小曲率半径,将使工作廓线出现交叉,从而使机构出现运动失真现象。(12)设计滚子推杆盘形凸轮机构时,对于外凸的凸轮廓线段,若滚子半径等于理论廓线上的最小曲率半径,将使凸轮廓线出现变尖现象。(1)圆锥齿轮机构可实现轴线相交的两轴之间的运动和动力传递。(2)蜗

趣解单片机堆栈概念

关于单片机堆栈概念的一个有趣的解释 因为单片机有CPU、存储器、IO等等,使他(人性化一点以配合下文)看起来就像一个比较小的计算机,所以,在理解单片机的时候如果能把你之前有的那些也许仅仅是直觉上的对计算机的理解融入进来的话,可能会对你学习单片机的概念有极大的帮助,至少对于我是这样的。 我想在关于单片机的众多让你头晕脑胀、摸不着头脑甚至想撞墙的概念里面,“堆栈”可能是其中最可恶的一个,因为即使单单是从汉语的角度来理解这个词就已经让你很晕了,其实我最初也想不通这是哪位大侠的创意,不过不用担心,这里我们完全不去讨论关于这个词的问题(这个词用得其实很好“堆”和“栈”都有他们各自的意思,准确的概括了这个区域的功能,有兴趣可以Baidu一下),这里我会打一个比较有趣的比方,以此来绕过那些令你想撞墙的概念,并使你在直觉上对“堆栈”这个概念有一个深刻的理解。 你基本上应该清楚,单片机里面是有存储区和CPU的,如果你不清楚,那么我刚刚告诉你了,请记住。现在,请你把单片中的CPU想成一个人(你完全可以把他想成是你宿舍的那个天天和你吵嘴的同学,一会你就会发现这会非常有趣),在这里就叫他C哥吧,不过这个人不同于常人,有一些特点,一会我们会慢慢说清楚,现在要告诉你的关于这个人的第一个特点

是:他的记忆能力很差。下面,请你把存储区想象成一个一个排好的小盒子,这些盒子的作用大致可以分成两类:1、保存 写有你命令的纸条,比如你在某个盒子里面的纸条上写着:去洗我的袜子!;2、保存你的一些东西,比如你那双正在污染宿舍空气的臭袜子。因为C哥是一个记忆力不怎么好的人,所以,这些盒子都有自己的编号,以方便他查找。 那么,现在,我们可以来说明一下单片机是如何工作的了。首先,你要把所有的命令还有需要处理的东西放进那些小盒子,比如刚才提到的你那双待洗的袜子还有那张纸条,这时你应该发现C哥另一个特点:笨——他只会做你明确告诉他的事情,也就是说,如果你没有在纸条上写“去洗我的袜子!”,那么C 哥极有可能会无动于衷地看着你的袜子直到他被熏晕倒,当然,更可能的情况是他根本找不到你的袜子…好了,当你把要做的事情和该怎么做写到盒子里之后,下面的任务就交给C哥了。C哥做事真的很讲原则,他会按照你给定的顺序或者——如果你没有给定的话,根据盒子上面的编号按照从小到大的顺序——一个一个地打开盒子,读取里面的命令、处理相应的事件,直到所有的事情都执行完毕,他就会休息。请你牢记这个简单而有趣的过程,因为其实单片机就是这样工作的,当然,这里忽略了许多细节,但是这对你从直觉上理解单片机的概念以及足够了。 下面,就要开始说明堆栈这个概念了,思来想去,还是觉

51单片机基础知识试题题库(复习资料)

单片机原理与应用复习资料 第二章习题参考答案 一、填空题: 1、当MCS-51引脚ALE有效时〃表示从P0口稳定地送出了低8位地址。(备注:ALE 为地址锁存控制信号,书上P22) 2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。(p25 更具体些是在内部存储器的用户RAM区开辟的) 3、当使用8751且EA=1〃程序存储器地址小于1000H 时〃访问的是片内ROM。 4、MCS-51系统中〃当PSEN信号有效(备注:低电平为有效信号)时〃表示CPU要从外部程序存储器读取信息。(p22) 5、MCS-51有4组工作寄存器(p23 备注:称为通用寄存器或者工作寄存器)〃它们的地址范围是00H~1FH 。(延伸:通用寄存器占去32个单元,位寻址区占去16个单元,用户RAM区占去80个单元,三者总共为128个单元,组成内部数据存储器的低128单元区) 6、MCS-51片内20H~2FH(即为位寻址区)范围内的数据存储器〃既可以字节寻址又可 以位寻址。(p24) 7、PSW中RS1 RS0=10时〃R2的地址为12H 。 8、PSW中RS1 RS0=11时〃R2的地址为1AH 。(p27 查表2.3即可) 9、单片机系统复位后〃(PSW)=00H〃因此片内RAM寄存区的当前寄存器是第0 组〃8个寄存器的单元地址为00H ~ 07H 。(p27 参考下一题) 10、PC复位后为0000H 。(p38 查表2.6即可,有各种寄存器的初始化状态) 11、一个机器周期= 12 个振荡周期= 6 个时钟周期。(p37) 12、PC的内容为将要执行的下一条指令地址。(p30)

单片机应用及原理

1.2 除了单片机这一名称之外,单片机还可称为(微控制器)和(嵌入式控制器)。 4、单片机的发展大致分为哪几个阶段? 答:单片机的发展历史可分为四个阶段: 第一阶段(1974年----1976年):单片机初级阶段。 第二阶段(1976年----1978年):低性能单片机阶段。 第三阶段(1978年----现在):高性能单片机阶段。 第四阶段(1982年----现在):8位单片机巩固发展及16位单片机、32位单片机推出阶段 1.8 8051与8751的区别是内部程序存储器的类型不同 1.9 在家用电器中使用单片机应属于微型计算机的测量、控制应用 在MCS-51 单片机中,如果采用6 MHZ 晶振,1个机器周期为(2微秒) 2.5程序存储器的空间里,有5个单元是特殊的,这5个单元对应MCS-51单片机5个中断源的中断入口地址,请写出这些单元的地址以及对应的中断源。答:中断源入口地址 外部中断0 0003H 定时器0(T0)000BH 外部中断 1 0013H 定时器1(T1)001BH 串行口0023H 判断下列说法是否正确: (A)8031的CPU是由RAM和EPROM所组成。(错)(B)区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。(错)(C)在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1。(对) (D)PC可以看成是程序存储器的地址指针。(对) 判断以下有关PC和DPTR的结论是否正确? (A)DPTR是可以访问的,而PC不能访问。(错) (B)它们都是16位的寄存器。 (对) (C)它们都具有加1 的功能。 (对) (D)DPTR可以分为 2个8位寄存器使用, 但PC不能。(对) 13使用8031单片机 时,需将EA引脚接 (低)电平,因为其片 内无(程序)存储器 PC的值是:当前正在 执行指令的下一条指 令的地址 MCS-51单片机程序 存储器的寻址范围是 由程序计数器PC的位 数所决定的,因为 MCS-51的PC是16 位的,因此其寻址的范 围为(64)KB。 判断下列说法是否正 确? (A)PC是1个不可 寻址的特殊功能寄存 器 (对) (B)单片机的主频越 高,其运算速度越快 (对) (C)在MCS----51单 片机中,1个机器周期 等于1微秒(错) (D)特殊功能寄存器 SP内装的是栈顶首地 址单元的内容(错) 判断下列说法是否正 确。 (A)立即寻址方式是 被操作的数据本身在 指令中,而不是它的地 址在指令中。(√) (B)指令周期是执行 一条指令的时间。 (√) (C)指令中直接给出 的操作数称为直接寻 址。 (×) 3.4 MCS-51共有哪几 种寻址方式?各有什 么特点? 答:共有7种寻址方 式。 (1)寄存器寻址方式 操作数在寄存器中,因 此指定了寄存器就能 得到操作数。 (2)直接寻址方式 指令中操作数直接以 单元地址的形式给出, 该单元地址中的内容 就是操作数。 (3)寄存器间接寻址 方式寄存器中存放 的是操作数的地址,即 先从寄存器中找到操 作数的地址,再按该地 址找到操作数。 (4)立即寻址方式 操作数在指令中直接 给出,但需在操作数前 面加前缀标志“#”。 (5)基址寄存器加变 址寄存器间接寻址方 式以DPTR或PC 作基址寄存器,以累加 器A作为变址寄存器, 并以两者内容相加形 成的16位地址作为操 作数的地址,以达到访 问数据表格的目的。 (6)位寻址方式 位寻址指令中可以直 接使用位地址。 (7)相对寻址方式 在相对寻址的转移指 令中,给出了地址偏移 量,以“rel”表示,即把 PC的当前值加上偏移 量就构成了程序转移 的目的地址。 在MCS----51中,PC 和DPTR都用于提供 地址,但PC是为访问 (程序)存储器提供地 址,而DPTR是为访问 (数据)存储器提供地 址。 4.6 试编写1个程序, 将内部RAM中45H单 元的高4位清0,低4 位置1。 解:MOV A,45H ANL A,#0FH ORL A,#0FH 试编写程序,查找在内 部RAM的20H~40H 单元中出现“00H”这一 数据的次数。并将查找 到的结果存入41H单 元。 ORG 0000H MOV R0,#20H MOV R2,#21H MOV 41H,#00H LOOP: MOV A,@R0 CJNE A,#00H,NOTE INC 41H NOTE: INC R0 DJNZ R2,LOOP END 能够实现中断处理功 能的部件称为中断系 统 一.简答题 AT89S51采用6MHz的 晶振,定时2ms,如用 定时器方式1时的初值 (16进制数)应为多 少?(写出计算过程) 答:机器周期6×106=2 ×10-6s=2uS 又方式1为16进制定 时器.故 (216—X)×2×10-6=2 ×10-3=>216-X=1000 =>X=65536-1000=6453 6 即初值=FC18H 2、AT89S51外扩的程序 存储器和数据存储器 可以有相同的地址空 间,但不会发生数据冲 突,为什么? 答:不发生数据冲突的 原因是:AT89S51中访 问程序存储器和数据 存储器的指令不一样。 选通信号也就不一样, 前者为PSEN,后者为WR 与RD。 程序存储器访问指令 为MOVC A,@DPTR; MOVC A,@A+pc。 数据存储器访问指令 为:MOVX A,@DPTR; MOVX A,@Ri; MOVX @DPTR,A。 3.说明MCS-51的外部 引脚EA的作用? EA*是内外程序存储器 选择控制信号。(1分) 当EA*=0时,只 选择外部程序存储器。 (1分) 当EA*=1时,当 PC指针≤0FFFH时,只访 问片内程序存储器;当 PC指针>0FFFH时,则 访问外部程序存储器 (1分) 4、DPTR是什么寄存 器?它由哪些特殊功 能寄存器组成?它的 主要作用是什么? 答:DPTR是16位数据 指针寄存器,它由两个 8位特殊功能寄存器 DPL(数据指针低8位) 和DPH(数据指针高8 位)组成,DPTR用于保 存16位地址,作间址 寄存器用,可寻址外部 数据存储器,也可寻址 程序存储器。 5、举例说明MCS-51指 令系统中的任意5种寻 址方式。 答:MCS-51指令操作数 主要有以下7种寻址方 式: 寻址方式 举例 立即寻址 MOV A,#16 直接寻址 MOV 20H,P1 寄存器寻址 MOV A,R0 寄存器间接寻址 MOVX A, @DPTR 变址寻址 MOVC A, @A+DPRT 相对寻址 SJMP LOOP

单片机中空间和堆栈的意义

单片机中空间和堆栈的意义 关于单片机的知识,体积庞大且结构复杂。初学者很容易陷入困境,最终 失去对单片机的兴趣。因此在学习单片机时一定要对基础知识进行特别的巩固。在本文中,小编将为大家介绍单片机地址空间以及堆栈的相关知识,下面大家 就随小编来一起看一看吧。 Data:可寻址片内ram0x00-0x7f Bdata:可位寻址片内ram Idata:可寻址片内ram,允许访问全部内部ram0x00-0xff Padata:分页寻址访问片外ram Xdata:可寻址片外ram0x0000-0xffff code--程序存储区单片机存储器分ROM跟RAM之分,RAM存放中间结果,数据和经常变换的代码,ROM存放code。51单片机采用的是哈弗结构,即数 据跟代码拥有单独的地址空间。存储器可以分为程序存储器(eerom,flash之类),内部数据存储器(ram),SFR,位地址空间和外部数据存储器。内部数据存储器 在物理上分为内部SRAM和特殊功能寄存器,而内部分为低(0x00-0x7f)和 (0x80-0xff),高128字节地址重复,需要不同的访问方式。SFR用直接寻址方式,SRAM需要间接。这里SFR是寄存器,硬件上是中央处理器的内部组成部分,访问速度很快。在低128B的SRAM,0x00-0x1f是4个通用工作寄存器, 每组有R0-R7。使用哪一组,可以通过PSW中的RS1,RS0来配置。位寻址是在0x20-0x2f。 程序内存可以分为几个区,栈区(stack)、堆区(Heap)、全局区(static)、文字常亮区、程序代码区。程序编译之后,全局变量,静态变量已经分配好内存空间,在函数运行时,程序需要为局部变量分配栈空间,当中断来时,也需要将函数

单片机复习-单片机的基本概念

一、单片机的基本概念 1.51单片机的组成:P3 CPU、随机存取存储器RAM、只读存储器ROM、基本输入/输出接口电路(并行I/O口)、定时器/计数器,全双工串行口,中断系统,时钟电路。 2. 51单片机是几位机它识别的是几进制数据P34 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码。 3. 51单片机的引脚及定义。P42-43 主电源引脚2根:VCC(Pin40):电源输入,接直流5V电源; GND(Pin40):电源地。 外接晶振引脚2根:XTAL1:片内振荡电路输入端; XTAL2:片内振荡电路输出端。 控制引脚4根:RST:复位引脚,引脚上出现2个机器周期的高电平将使单片机复位; RSEN:外部存储器读选通信号。 ALE/PROG:地址锁存允许信号。 EA/VPP : 程序存储器的内外部选通脚。 可编程输入/输出引脚32根: P0口:P0口为双向8位三态I/O口,名称为~,每个口可独立控制,无上拉电阻,为高阻状态,不能正常输出高/低电平,使用时务必外加上拉电阻,一般接入10KΩP1口:准双向8位I/O口,内部带上拉电阻,这种就扣输出没高阻态,输入不能锁存P2口:准双向8位I/O口,内部带上拉电阻 P3口:准双向8位I/O口,内部带上拉电阻。第一功能使用时当作普通I/O口与P1 口相似,第二功能时,各引脚定义如下: ①RXD 串行输入口 ②TXD 串行输出口 ③INTO外部中断0输入 INT外部中断1输入 ④1 ⑤T0 定时器0外部输入 ⑥T1 定时器1外部输入 ⑦WR外部数据存储器写选同 ⑧RD外部数据存储器读选同 4. 51单片机内部RAM和ROM的作用。P35 数据存储器RAM:MCS-51单片机内部共有256个8位数据存储单元,高128个单元被专用寄存器占用,低128个单元供用户使用,用于存放可读/写的数据、运算的中间结果或用户定义的字形表等,通常所说的内部数据存储器就是指低128个单元。 程序存储器RAM:MCS-51单片机内部共有4KB(52有8KB)8位ROM,用于存放用户

基本概念与原理:溶液

基本概念与原理:溶液 主要考点: 1.常识:温度、压强对物质溶解度的影响;混合物分离的常用方法 ① 一般固体物质.... 受压强影响不大,可以忽略不计。而绝大部分固体随着温度的升高,其溶解度也逐渐升高(如:硝酸钾等);少数固体随着温度的升高,其溶解度变化不大(如:氯化钠等);极少数固体随着温度的升高,其溶解度反而降低的(如:氢氧化钙等)。 气体物质.... 的溶解度随着温度的升高而降低,随着压强的升高而升高。 ② 混合物分离的常用方法主要包括:过滤、蒸发、结晶 过滤法用于分离可溶物与不溶物组成的混合物,可溶物形成滤液,不溶物形成滤渣而遗留在滤纸上; 结晶法用于分离其溶解度受温度影响有差异的可溶物混合物,主要包括降温结晶法及蒸发结晶法 降温结晶法用于提取受温度影响比较大的物质(即陡升型物质),如硝酸钾中含有少量的氯化钠; 蒸发结晶法用于提取受温度影响不大的物质(即缓升型物质),如氯化钠中含有少量的硝酸钾; 2.了解:溶液的概念;溶质,溶剂的判断;饱和溶液与不饱和溶液的概念、判断、转换的方法;溶解度的概念;固体 溶解度曲线的应用 ① 溶液的概念就是9个字:均一的、稳定的、混合物。溶液不一定是液体的,只要同时满足以上三个条件的物质, 都可以认为是溶液。 ② 一般简单的判断方法:当固体、气体溶于液体时,固体、气体是溶质,液体是溶剂。两种液体相互溶解时,通常把量多的一种叫做溶剂,量少的一种叫做溶质。当溶液中有水存在的时候,无论水的量有多少,习惯上把水看作溶剂。通常不指明溶剂的溶液,一般指的是水溶液。 在同一个溶液中,溶质可以有多种。特别容易判断错误的是,经过化学反应之后,溶液中溶质的判断。 ③ 概念:饱和溶液是指在一定温度下,在一定量的溶剂里,不能再溶解某种物质的溶液。还能继续溶解某种溶质的溶液,叫做这种溶质的不饱和溶液。 在一定温度下,某溶质的饱和溶液只是说明在该温度下,不能够继续溶解该物质,但还可以溶解其他物质,比如说,在20℃的饱和氯化钠溶液中,不能再继续溶解氯化钠晶体,但还可以溶解硝酸钾固体。 判断:判断是否是饱和溶液的唯一方法:在一定温度下,继续投入该物质,如果不能继续溶解,则说明原溶液是饱和溶液,如果物质的质量减少,则说明原溶液是不饱和溶液。 当溶液中出现有固体时,则该溶液一定是该温度下,该固体的饱和溶液。 转换:饱和溶液与不饱和溶液的相互转换: 改变溶解度,实际一般就是指改变温度,但具体是升高温度还是降低温度,与具体物质溶解度曲线有 ④ 溶解度曲线的意义: 饱和溶液 不饱和溶液 增加溶剂,增加溶解度 减少溶剂,增加溶质,减少溶解度

单片机课后答案(C语言)

第二章习题参考答案 一、填空题: 1、当MCS-51引脚ALE有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。 3、当使用8751且EA=1,程序存储器地址小于 1000H 时,访问的是片内ROM。 4、MCS-51系统中,当PSEN信号有效时,表示CPU要从外部程序存储器读取信息。 5、MCS-51有4组工作寄存器,它们的地址范围是 00H~1FH 。 6、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址。 7、PSW中RS1 RS0=10时,R2的地址为 12H 。 8、PSW中RS1 RS0=11时,R2的地址为 1AH 。 9、单片机系统复位后,(PSW)=00H,因此片内RAM寄存区的当前寄存器是第 0 组,8个寄存器的单元地址为 00H ~ 07H 。 10、PC复位后为 0000H 。 11、一个机器周期= 12 个振荡周期= 6 个时钟周期。 12、PC的内容为将要执行的的指令地址。 13、在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为 2us 。 14、内部RAM中,位地址为30H的位,该位所在字节的字节地址为 26H 。 15、若A中的内容为63H,那么,P标志位的值为 0 。 16、8051单片机复位后,R4所对应的存储单元的地址为 04H ,因上电时PSW= 00H 。这时当前的工作寄存器区是第 0 工作寄存器区。 17、使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。 18、片内RAM低128个单元划分为哪3个主要部分:工作寄存器区、位寻址区 和用户RAM区。 19、通过堆栈操作实现子程序调用,首先就要把 PC 的内容入栈,以进行断点保护。 调用返回时,再进行出栈保护,把保护的断点送回到 PC 。 20、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS -51的PC是16位的,因此其寻址的范围为 64 KB。 21、MCS-51单片机片内RAM的寄存器共有 32 个单元,分为 4 组寄存器,每组 8 个单元,以R0~R7作为寄存器名称。 22、但单片机的型号为8031/8032时,其芯片引线EA一定要接低电平。 二、选择题: 1、当MCS-51复位时,下面说法正确的是( A )。 A、 PC=0000H B、 SP=00H C、 SBUF=00H D、 P0=00H 2、PSW=18H时,则当前工作寄存器是( D )。 A、 0组 B、 1组 C、 2组 D、 3组 3、MCS-51上电复位后,SP的内容应是( B )。 A、 00H B、 07H C、 60H D、 70H 4、当ALE信号有效时,表示( B )。 A、从ROM中读取数据 B、从P0口可靠地送出低8位地址 C、从P0口送出数据 D、从RAM中读取数据 5、MCS—51单片机的CPU主要的组成部分为( A )。 A、运算器、控制器 B、加法器、寄存器 C、运算器、加法器 D、运算器、译码器 6、单片机上电复位后,PC的内容和SP的内容为(B)。

51单片机基础知识及期末复习

51单片机简答题部分(经典) 1、什么叫堆栈? 答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。 2、进位和溢出? 答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。 3、在单片机中,片内ROM的配置有几种形式?各有什么特点? 答:单片机片内程序存储器的配置形式主要有以下几种形式:(1)掩膜(Msak)ROM型单片机:内部具有工厂掩膜编程的ROM,ROM中的程序只能由单片机制造厂家用掩膜工艺固 化,用户不能修改ROM中的程序。掩膜ROM单片机适合于 大批量生产的产品。用户可委托芯片生产厂家采用掩膜方法 将程序制作在芯片的ROM。 (2)EPROM型单片机:内部具有紫外线可擦除电可编程的只读存储器,用户可以自行将程序写入到芯片内部的EPROM 中,也可以将EPROM中的信息全部擦除。擦去信息的芯片 还可以再次写入新的程序,允许反复改写。 (3)无ROM型单片机:内部没有程序存储器,它必须连接程序存储器才能组成完整的应用系统。 无ROM型单片机价格低廉,用户可根据程序的大小来选择外接 程序存储器的容量。这种单片机扩展灵活,但系统结构较复 杂。 (4)E2ROM型单片机:内部具有电可擦除叫可编程的程序存储器,使用更为方便。该类型目前比较常用 (5)OTP(One Time Programmable)ROM单片机:内部具有一次可编程的程序存储器,用户可以在编程器上将程序写入片内程 序存储器中,程序写入后不能再改写。这种芯片的价格也较 低。 4、什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系? 答:某条指令的执行周期由若干个机器周期(简称M周期)构成,一个机器周期包含6个状态周期(又称时钟周期,简称S周期),而一个状态周期又包含两个振荡周期(P1和P2,简称P周期)。也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周

单片机概念及其原理

中断:是指CPU在处理某一事件A时,发生了事件B,请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应), 转去处理事件B(中断服务);待CPU将事件B处理完毕后, 再回到原来事件A被中断的地方继续处理事件A(中断返回), 这一过程称为中断。 图单片机中断过程 52单片机一共有6个中断源,它们的符号、名称及产生的条件分别解释如下: INT0—外部中断0,由P3.2端口线引入,低电平或下降沿引起INT1—外部中断1,由P3.3端口线引入,低电平或下降沿引起T0—定时器/计数器0中断,由T0计数器计满回零引起 T1—定时器/计数器1中断,由T1计数器计满回零引起 T2—定时器/计数器2中断,由T2计数器计满回零引起

EA—全局中断允许位 EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。 EA=0,关闭全部中断 —无效位 ET2—定时器/计数器2中断允许位 ES—串行口中断允许位 ET1—定时器/计数器1中断允许位 EX1—外部中断1中断允许位 ET0—定时器/计数器0中断允许位 PS PT1—定时器1/计数器1中断优先级控制位 PX1—外部中断1中断优先级控制位 PT0—定时器0/计数器0中断优先级控制位 PX0—外部中断0中断优先级控制位 为1时,定义为高优先级中断;为0时,定义为低优先级中断 51系列中,高优先级中断能够打断低优先级中断以形成中断嵌套。单片机的定时器中断 单片机定时器/计数器的实质:加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能。TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 定时器中断原理:加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;另一种是T0或T1引脚输入的外部脉冲源,每来一个脉冲计数器加1,当加到计数器全为1时(即65536),再输入一个脉冲就使计数器回零,且计数器的溢出使TCON控制寄存器中TF0或TF1置1,向CPU 发出中断请求(定时器/计数器中断允许时)。若定时器/计数器工作于定时模式,则表示定时时间到;若工作于计数模式,则表示计数值已满。 装载值:溢出时计数器减去计数器初值就是加1计数器的计数值。 ①设置为计数器模式时,加1计数器是对内部机器周期计数(一个机 器周期等于12个震荡周期,即计数频率(机器周期)为晶振频

化工原理基本概念和原理

化工原理基本概念和原理 蒸馏––––基本概念和基本原理 利用各组分挥发度不同将液体混合物部分汽化而使混合物得到分离的单元操作称为蒸馏。这种分离操作是通过液相和气相之间的质量传递过程来实现的。 对于均相物系,必须造成一个两相物系才能将均相混合物分离。蒸馏操作采用改变状态参数的办法(如加热和冷却)使混合物系内部产生出第二个物相(气相);吸收操作中则采用从外界引入另一相物质(吸收剂)的办法形成两相系统。 一、两组分溶液的气液平衡 1.拉乌尔定律 理想溶液的气液平衡关系遵循拉乌尔定律: p A=p A0x A p B=p B0x B=p B0(1—x A) 根据道尔顿分压定律:p A=Py A而P=p A+p B 则两组分理想物系的气液相平衡关系: x A=(P—p B0)/(p A0—p B0)———泡点方程 y A=p A0x A/P———露点方程 对于任一理想溶液,利用一定温度下纯组分饱和蒸汽压数据可求得平衡的气液相组成; 反之,已知一相组成,可求得与之平衡的另一相组成和温度(试差法)。 2.用相对挥发度表示气液平衡关系 溶液中各组分的挥发度v可用它在蒸汽中的分压和与之平衡的液相中的摩尔分率来表示,即v A=p A/x A v B=p B/x B 溶液中易挥发组分的挥发度对难挥发组分的挥发度之比为相对挥发度。其表达式有:α=v A/v B=(p A/x A)/(p B/x B)=y A x B/y B x A 对于理想溶液:α=p A0/p B0 气液平衡方程:y=αx/[1+(α—1)x] Α值的大小可用来判断蒸馏分离的难易程度。α愈大,挥发度差异愈大,分离愈易;α=1时不能用普通精馏方法分离。 3.气液平衡相图 (1)温度—组成(t-x-y)图 该图由饱和蒸汽线(露点线)、饱和液体线(泡点线)组成,饱和液体线以下区域为液相区,饱和蒸汽线上方区域为过热蒸汽区,两曲线之间区域为气液共存区。 气液两相呈平衡状态时,气液两相温度相同,但气相组成大于液相组成;若气液两相组成相同,则气相露点温度大于液相泡点温度。 (2)x-y图 x-y图表示液相组成x与之平衡的气相组成y之间的关系曲线图,平衡线位于对角线的上方。平衡线偏离对角线愈远,表示该溶液愈易分离。总压对平衡曲线影响不大。 二、精馏原理 精馏过程是利用多次部分汽化和多次部分冷凝的原理进行的,精馏操作的依据是混合物中各组分挥发度的差异,实现精馏操作的必要条件包括塔顶液相回流和塔底产生上升蒸汽。精馏塔中各级易挥发组分浓度由上至下逐级降低;精馏塔的塔顶温度总是低于塔底温度,原因之一是:塔顶易挥发组分浓度高于塔底,相应沸点较低;原因之二是:存在压降使塔底压

什么是堆栈,51单片机堆栈指针SP的使用举例

什么是堆栈,51单片机堆栈指针SP的使用举例 SP:堆栈指针。(专用于指出堆栈顶部数据的地址。)堆栈介绍:日常这样的现象,家里洗的样的现象,家里洗的碗,一只一只摞起来,最晚放上去的放在最上面,而最早放上去的则放在最下面,在取的时候正好相反,先从最上面取,这种现象我们用一句话来概括:先进后出,后进先出。请大家想想,还有什么地方有这种现象?其实比比皆是,建筑工地上堆放的砖头、材料,仓库里放的货物,都是先进后出,后进先出,这实际是一种存取物品的规则,我们称之为堆栈。在单片机中,我们也能在RAM中构造这样一个区域,用来存放数据,这个区域存放数据的规则就是先进后出,后进先出,我们称之为堆栈。为什么需要这样来存放数据呢?存储器本身不是能按地址来存放数据吗?对,知道了地址的确就能知道里面的内容,但如果我们需要存放的是一批数据,每一个数据都需要知道地址那不是麻烦吗?如果我们让数据一个接一个地放置,那么我们只要知道第一个数据所在地址单元就能了(看图2)如果第一个数据在27H,那么第二、三个就在28H、29H了。所以利用堆栈这种办法来放数据能简化操作那么51中堆栈什么地方呢?单片机中能存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存(RAM)中开辟一块地方,用于堆栈,但是用内存的哪一块呢?还是不好定,因为51是一种通用的单片机,各人的实际需求各不相同,有人需要多一些堆栈,而有人则不需要那么多,所以怎么分配都不合适,怎样来解决这个问题?分不好干脆就不分了,把分的权利给用户(编程者),根据自已的需要去定吧,所以51单片机中堆栈的位置是能变化的。而这种变化就体现在SP中值的变化,看图2,SP中的值等于27H 不就相当于是一个指针指向27H单元吗?当然在真正的51机中,开始指针所指的位置并非就是数据存放的位置,而是数据存放的前一个位置,比如一开始

单片机基本概念

27课:关于单片机的一些基本概念 作者:佚名来源:本站原创点击数: 更新时间:2007年08月14日【字体:大中小】 随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,相对电子爱好者已熟悉的模拟电路、数字电路,单片机中有一些新的概念,这些概念非常基本以至于一般作者不屑去谈,教材自然也不会很深入地讲解这些概念,但这些内容又是学习中必须要理解的,下面就结合本人的学习、教学经验,对这些最基本概念作一说明,希望对自学者有所帮助。 一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的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、P 3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有对应的信号从P3. 6或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能’而是(使用者)‘不会’将其作为通用I/O口使用。你完全能在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么去做,

建筑力学基本概念和基本原理

建筑力学基本概念和基本原理 一、判断 1、材料的横向变形系数(泊松比)和弹性模量E、剪切模量G都是材料固有的力学性质。 2、一对等大反向的平行力(即力偶)既可使物体发生转动,也可使物体发生移动。 3、铸铁试件压缩破坏是沿45度斜截面被剪断。 4、矩形梁危险截面的最大拉、压应力发生在截面的上下边缘处。 5、梁的合理截面是使大部分材料分布于靠近中性轴(梁的横截面与线应变=0的纵向面的交线)。 6、梁在集中力偶作用处,剪力图有突变。 7、忽略杆件自重,杆件上无荷载,荷载作用于结点上的杆件都是二力杆。 8、作用于弹性体一小块区域上的载荷所引起的应力,在离载荷作用区较远处,基本上只同载荷的主矢和主矩有关;载荷的分布情况只影响作用区域附近的应力分布,这就是圣维南原理。 9、轴向拉(压)直杆的斜截面只有正应力,没有剪应力。 10、铸铁和砖石、混凝土等材料的抗拉能力远小于抗压能力。 11、某T形铸铁梁最大弯矩为正(截面下侧受拉、上侧受压),该T形梁应该正放而不是倒放。 12、某矩形钢筋混凝土梁最大弯矩为负(截面上侧受拉、下侧受压),钢筋应该配置在截面的下侧。 13、杆件某截面内力反映的是该截面处两部分杆件因为外力作用发生小变形而产生的相互作用,内力成对出现、等大反向,因此求内力要用截面法。 14、构件的内力与横截面的尺寸大小和材料的力学性质都有关。 15、应力是内力的分布集度。 16、平面一般力系向平面内某点平移的简化结果可能有三种情形:平衡状态、合力不为零、合力矩不为零。 17、各种材料对应力集中的敏感程度相同。 18、当某力的作用线通过某点时,该力对该点存在力矩。 19、因为杆件受到外力作用发生的变形是小变形,所以求支座约束力和杆件内力时,杆件都使用原始尺寸。 20、杆件的稳定性是针对细长压杆的承载能力,此时稳定性要求超过强度要求。 二、填空 1. 理想弹性体模型包括四个基本简化假设:假设、假设、假设、线弹性假设;在变形体静力学分析中,对所研究的问题中的变形关系也作了一个基本假设,它是假设。

单片机的堆栈

堆栈是一种数据结构。一直以为堆栈是一个寄存器,惭愧!教科书定义:所谓堆栈,就是只允许在其一端进行数据插入和数据删除的线性表。51单片机的单片机的堆栈是在内部RAM中开辟的。这句话表明了堆栈的位置。 那么堆栈到底有什么作用? 堆栈主要是为子程序调用和中断操作而设立的,因此对应有两项功能:保护断点和保护现场。 单片机的程序归根结底是个死循环,反复在执行Main函数(主程序),你可以只写一个函数Main,那么你这个函数随着功能的增多而变得异常大,而且非常不具备可读,这个时候就需要子函数(子程序)了。主函数在调用完子函数后会返回到主函数中,这样就可以调用其它函数并且继续这个死循环。在计算机去执行子函数或者中断服务函数,如何确保程序能够正确地返回到主函数中并且继续正确执行后面的内容?因为在执行子函数或者中断服务函数时,很有可能会破坏寄存器单元的内容,但这些寄存器单元在子函数必须要用到?这个问题看起来比较难解决了。这个时候就要用到断点保护和现场保护了。 保护断点:在调用子程序和堆栈时,将返回地址(执行完子程序或者中断后要执行的下一个指令的的地址(PC 寄存器值)) 送入堆栈,程序返回时,这个值自动弹回PC。这种方式是自动使用堆栈的,程序中一般无需理会。在这个过程中,地址送入堆栈时,堆栈指针SP+2,因为51的寻址范围是64KB,再查看RAM中堆栈单元就可以发现这个时候已经变成了PC的值,在返回的时候SP-2,但是堆栈中的内容在下一次堆栈操作之前不会发生变化。来看下面的仿真图:

程序初始化将SP设置为0x07,这个时候RAM中全部被清零。单步运行。 这个时候SP的值已经变为0x30,但是内容依旧没有改变。 运行到断点。

相关文档
最新文档