title: 计算机系统概论-笔记
date: 2019-09-28 10:40:32
tags:
typora-copy-images-to: /计算机系统概论-笔记
本章就是概括性的讲解了一下计算机的一些基本常识和计算机能产生的深刻哲学理念和计算机组成的层次
以8位二进制为例,这里需要考虑二进制是正数还是负数,负数的话要拿到补码在计算,补码表示法中最高位代表符号位
十进制转二进制,就是每次除以2,记录余数,然后从右到左排列,得到二进制数
这四个结构就是布尔代数的基础结构也是很多电子原器件能时间的固定门结构
浮点数用来表示小数但也不是绝对的精确只能在二进制数的范围内尽量接近结果浮点数用固有的结构来表示,类似科学计数法,由三部分组成 比如 12340 =123410^4
符号位:1bit 0为正数1位负数
数值范围:8bit 指数部分
数值精度:23bit 尾数部分
二进制的每四位都可以对应一个16进制, 因此直接四位四位一组转换就行
如 0011 1101 0110 1110 转换为 3 D 6 E 也就是3D6E
同理 十六进制转换二进制,就是把每位转成四个二进制01
本章将了一些二进制的常用转换,其实最主要的是补码,通过补码把减法转换成加法,简化了计算机的实现而浮点数则是通过牺牲数字的精度来扩大了数值的范围,包括表示更大的大数如 15 10^20和更小的小数15 10^(-20)
in输入电压时,p断开n联通, out和ov相练输出0v
in无电压时,p联通,n断开,out和29v相连,输出29v
电路in的输入和out的输出结果总是想反的
A B任一方有电压,都会导致上方p断开,下方0V联通, 则C输出为0v
A B都无电压时, 上方 29v 与C联通, 则C输出29V
或门就是或非门的相反或者说 或门取反就是或非门
电路就是或非门的输出结构在加上之前的非门,把结果在反转
左边部分AB任意一个为0则上边两个P型会有一个连通,导致C输出为1,在经过非门后输出为0
A B 都为1时, 上边两个P行都端口,此时c输出为0,经过非门后为1
到这里二进制运算的与或非就已经可以通过电路来实现了而与或非,异或作为最基础的元件,在经过复杂的组合可以形成更多复杂的逻辑下边把这几个门用符号抽象化,其中与非门和或非门就是对与门和或门取反
决策单元是不能存储数据的电路组合,他的输出取决于当前的输入输出后的数据也没办法在决策单元中存储起来
简单来说决策单元就是由实时的输入产生实时的输出并不保存结果
所有的输出结果没次只有一个是1,其他都是零这个几个结构用来检测匹配不同的输入模式因为他可以通过输出的结果判断输入的来源
与门前的小圆圈表示对输入取反 AB的每种组合都对应一个输出线路这就是一种判断逻辑
这是一个一拆多的组合
ABCD 一直是输入的数据源有电压 而通过S的两根线路的组合来决定使用ABCD的那个输入来传递给输出
这是一个多合一的组合
累加器是用来做二进制的加法的二进制的加法 其实是三个输入产生两个输出的结果
如 a= 10111 加 b= 11101 其实是两个数的每一位逐渐相加但是这里两个位相加可能会产生进位所以应该改为是a和b的每一位和前一位产生的进位(可以是1或0) 进行相加 产生的结果也包括当前位的和,和一个进位用carryi表示第i-1位产生的进位, carryi+1表示i位产生的进位, si是当前位相加的结果 真值表如下
门电路如下,可以看到两个1位相加,就需要这么多电路,然后产生的传ci+1还要作为下一位相加的输入进位
讲多个1位的全加器组合,形成多为加法器
最右边的0 是第一位加法的进位,然后产生的c1作为第二位加法的进位 S0,S1,S2,S3则是每位加法后的结果,最后输出的二进制格式就是 C4S3S2S1S0
指通过与或非三个门的各种组合,可以实现任何逻辑函数类似道家的三生万物
存储单元用来把数据保存在电路中,在使用的时候将其输出
他能存储1比特的信息,S和R是两个输入端 ab是输出端这个器件规定RS不能同时为0而且这个电路任何时候A和a相同,B和b相同
这个器件的规律是当S和R都为0或都为1时, a b的状态都是稳定不变
当R从 1->0时, a->0 b->1
当S从 1->0 是,a->1,b->0
而 R或S从 0->1时 a,b的状态稳定不变
因此只有 R或S从1->0时,才会改变ab的状态,其他情况 ab保持不变, 这就相当于这个器件提供了保存状态的功能和变更状态的功能,这就是一个存储器
在锁存器前在加两个控制,we表示可写,D是输入的数据,当we为0时,SR都是1输出不变,只有当W0->1时,无论
D是0还是1都导致 RS其中一个由1->0,就会导致其中一个输出会变为1
举例We为1,如果D为0,R会 1->0,b变成1a变成0 We为1,如果D为1,S会 1->0, 则a变成1b变成0
因此 We为1时,a的结果和D同步,表示D的数据保存在了a中,we为0时,a的数据不会在变化
到此这个锁存器可以通过数据数据D和读写控制W来变更,保存数据了
把多个门控D锁存器相连,用同一个WE信号控制,就形成了多位的寄存器
下图是4位寄存器,D是数据源 Q是输出的存储结果 WE统一控制四位锁存器同时写入数据
内存是由数量极大的存储空间构成,每个存储空间可以放一个数据而每个数据我们可以约定他有8位或者4位或者16位锁存器组成 这里的每个存储空间的识别符叫做地址 而每个数据中含有的锁存器的个数(也就是能存储的bit的位数)叫做寻址能力地址的总数叫做寻址空间
以手机短信为例 手机上最多装2000条短信,2000叫寻址空间而每个短信可以包含100个字就是寻址能力是100
比如说电脑有16MB内存,表示该系统有16M的地址个数(寻址空间为16M),而每个地址的寻址能力是1字节(寻址能力是8bit)
上文中,决策单元是不保存数据,当前的输出取决于当前的输入存储单元是报错数据,可以持久使用时序电路则是决策单元和存储单元的组合,既能存储数据,又能保存数据
时序电路的主要用于实现有限状态机所谓有线状态机,就是指他有几个固定的状态,然后又固定的输入和输出,他会自己在这几个状态间切换,输入不同的状态每个状态都会根据当前状态和当前输入来跳转到下一状态例如红绿灯红灯会在输入时间到变换时,根据现在是红灯状态,跳为绿灯,而绿灯则会跳到黄灯
有限状态机表示一直逻辑上的顺序执行过程他通过固定频率的市中电路来触发
本章讲了主要讲了最基础的与或非门器件,然后由这几个器件组成了计算机中最重要的决策单元和存储单元这两部分就是计算机的核心部件到这里我们就发现计算机其实就是有一些器件进行封装组合,然后形成了控制逻辑,然后慢慢演化出了程序和数据
现在常用内存是 2 28-by-8-bit模式,也就是寻址空间为2 28(2^28个存储单元),寻址能力为8(每个单元容量为8bit)
访问内存需要先得到某存储单元的地址,放在CPU的内存地址寄存器(MAR)中,然后在发送读写信号,使内存和cpu的数据寄存器联通,数据从内存进入到数据寄存器(MDR)中
ALU是算数逻辑运算单元,可以进行加减法和与或非逻辑运算ALU能处理的数据的长度成为字长,目前通常是32位和64位字长
通常为ALU配置少量存储器用来保存计算中间结果因为从内存中读取太慢了这些存储器叫寄存器,字长和ALU一直
输入输出的读写速度更慢,通常会为他们分配缓存,CPU与缓存进行数据交流
控制单元指挥其他单元协同工作里边最重要的两个寄存器是指令寄存器,用来保存被执行的那条指令,程序技术器,保存下一条要执行的指令的地址控制单元包括有限状态机,用来控制系统中的活动
指令周期是指指令的执行步骤,指令在计算机控制单元的控制下一步一步执行,每个指令分为六个步骤,称为节拍,一个指令的完整执行过程叫指令周期
取指令就是把内存中某个指令,加载到控制单元的指令寄存器IR中PC就是指向下一个要执行的指令的地址详细步骤如下
从这里可以看到CPU与内存打交道都是通过MAR,MDR寄存器, MAR保存某存储单元的地址,MDR从该单元拿到数据而IR寄存器总是保存要执行的指令的内容,IP则总是指向下一个要执行的指令的地址
这里的每个步骤都会花费一到多个时钟周期
译码 *** 作是分析,检查指令的类型,并确定对应的 *** 作这里利用第三章的译码器 逻辑器件,确定指令对应的电路
如果指令执行时存在地址 *** 作,则在此节拍进行 就是得到 指令 *** 作数中完整的地址
读取 *** 作数地址对应的实际内容,这里也需要使用MAR装入上步计算出的地址,然后通过MDR把地址上的数据读取出来
指令已经识别出, *** 作数的内容也拿到了这步就是执行指令
这是该指令周期的最后一个节拍,前一节拍的结果会被写入目的寄存器该节拍完成后,控制单元再次从取指令开始执行下一个指令周期(因为此时PC寄存器已经指向下一个将要执行的指令地址了)这里就是一个有限状态机在不同状态的按顺序切换
要想改变指令的执行顺序,比如跳到一个我们希望他执行的指令那里,例如循环时需要向前跳就要在当前指令取指令节拍 后Pc指向下一个指令 到执行下一个指令的取指令节拍前,把pc执行的指令的地址改成我们希望执行的指令的地址 这就需要用到控制指令, 控制指令就是在上文的执行节拍EXECUTE,主动修改PC寄存器的内容那么本条指令执行完后,Pc就取出我们想要的指令的地址了
因为CPU是一条指令一条指令一直执行,如和才能停止运行呢,因为指令是根据CPU的时钟周期来运行的意思是时钟不断发信号提醒指令执行不同的节拍,然后一直执行指令因此想停掉指令执行,就是要停止时钟也就是事运行控制位输出为0 就停止了时钟
本章介绍了冯诺依曼的模型现在的计算机都是采用这个模式来设计和组装的这里边不同的硬件,对于CPU来说都需要把数据读到寄存器中,CPU在从寄存器中读取使用因为CPU的频率远远高于内存和io单元的频率
接下来是指令执行的六个阶段他是一种有限状态机不停的在六个节拍中顺序执行这里就用上了上章的译码器器件
lc-3 是一个简化版的计算机用来了解整个计算机的完整构造
寻址空间是2^16(数据块),寻址能力是16位(数据块大小), 我们成这16位寻址能力叫做一个"字"
内存和频率远远低于CPU的频率CPU从内存直接读取数据就浪费大量时钟周期所以CPU中有很多寄存器,其实就是告诉内存他们和内存的原理一样,能存储数据,有唯一表示能独立寻址,用R0R7表示8个寄存器
指令集包括 *** 作码(做什么)+ *** 作数(对谁 *** 作) 其实 *** 作数中还包括 寻址模式, 也就是怎样定位到 *** 作数的具体位置,该指令表示 把R0 和R2的值相加,结果保存在R1中
*** 作码主要分三类,运算,数据移动,控制 运算指令负责处理信息(加减乘除与或非) 数据移动指令负责在内核和寄存器之间以及内存/寄存器和io设备间传递信息 控制负责改变指令的执行顺序,如指令跳转
全部指令如下 DR是 DestinationRegister目的寄存器 SR是SourceRegister 源寄存器 通常指令都是把sr的数据传入到dr中
是指定位 *** 作数位置的方式 *** 作数通常在三个地方,内存,寄存器或数据本身通过寻址模式和 *** 作数的搭配确定 *** 作数的具体地址 寻址模式有5种,立即数,寄存器,相对寻址,间接寻址,基地址偏移
lc-3中有3个一位寄存器 N Z P ,当任何寄存器有数据写入时,根据结果,如果写入结果是负数,N为1结果是0则Z为1,写入是正数则P是1 这三个寄存器可提供信息给控制指令用来做条件跳转用
对源 *** 作数按位取反,放入目的 *** 作数 使用寄存器寻址模式,也就是源 *** 作数和目的 *** 作数都是寄存器
把 R5寄存器的值按位取反,结果放在R3寄存器中
ADD是两个 *** 作数执行补码加法AND是两个 *** 作数执行按位与 这个指令需要2个源 *** 作数,一个目的 *** 作数这里的源 *** 作数,其中一个是寄存器寻址模式另一个可以是立即数寻址模式或寄存器模式
立即数就是把数值直接放在指令中作为源 *** 作数如 MOV AL, 0FH ; 将8位立即数0FH传送到AL寄存器中, 0FH就是立即数
下图是 把 R5和R4的结果相加保存在R1中
搬移指令是在寄存器和内存/寄存器和Io间进行数据传输的指令 数据从内存到寄存器叫装载(load),从寄存器到内存叫存储(store)
如果bit[9-11]是DR 表示把地址生成位中的数据加载到改DR中
如果bit[9-11]是SR,表示把该SR的数据保存到地址生成位的内存中
LD 加载指令 ST存储指令
该模式下 bit[0-8]表示的是相对位移相对于当前pc计数器的位移,(上文说过pc计数器保存下一条要执行指令的地址) pc相对寻址的限制就是 偏移量是针对PC的地址的所以偏移的范围有限
如下图此时pc的值是 x4019,相对x4019在偏移x1AF ,LD是加载指令意思是把 (x4019+x1AF)地址中的数据保存到R2中
LDI 加载指令 STI存储指令
间接寻址中地址生成位保存的是一个偏移地址A 而A和PC相加后得到的数值是另外一个地址B地址B的值才是最终要 *** 作的内存地址间接寻址可以使指令在更大的范围内跳转 这是一种2次寻址x
下图解释 pc当前的值是 x4A1C 则偏移地址A =(x4A1C +x1CC)=x4BE8 ,下图写错了应该是x4BE8的内容是x2110,然后在把x2110的内容放在R3中
总结起来就是先进行一次pc相对寻址,再把得到的地址中的值交给R3
LDR 加载指令 STR存储指令
该模式先指定一个基地址寄存器在指定一个偏移地址,最终的 *** 作数地址由 基地址寄存器的值+偏移地址构成
下图解释, *** 作数地址 = R2+x1D =x2345+x1D =x2362, 在把 x2362地址中的内容加载到 R1中
LEA 将立即数与pc计数器地址相加保存到另一个寄存器中该命令用来对寄存器初始化
立即数这个词的命名意思就是, *** 作数就在指令中,直接就可以读取了(文中-3)就是立即得到上图中,改指令读取指阶段,pc加1 变成 x4019, 执行时 x4019-3 =x4016 再把x4016地址处的值复制给R5
控制指令可以改变指令的执行顺序不用说肯定是修改pc计数器的值而且控制指令肯定是需要根据条件判断进行跳转因此也用上了上边提到的 NZP 三个一位寄存器
lc-3中有5中控制指令, 条件跳转,无条件跳转,子程序(函数)TRAP,中断返回
N negative 表示负数 Z zero 表示零 P positive 表示正数
bit[9-11]中的值如果与NZP三个位寄存器匹配时,该条件被触发pc计数器就会计算pc计数器的值+pc偏移值, 也就是进行了指令的跳转
在指令周期的执行节拍(EXECUTE),处理器检测bit[9-11]的条件码和 NZP三个位寄存器的匹配情况,如果匹配,就修改pc计数器的值完成指令跳转
上图中 pc=x4028 修改后的pc = x4028+x0D9 =x4101
如果 某指令的bit[9-11]位都设置为1 则一定会触发跳转,这叫做无条件跳转指令
条件跳转指令的问题就是跳转是根据pc偏移值来跳转的一共8位,跳转的范围有有限而如果想在内存中更大范围跳转指令需要使用jump
jump指令使用源 *** 作数的内容作为要跳转的地址,如下表示要跳转到 寄存器R2的内容的地址上
trap指令和jump指令相似都是改变pc计数器内容跳转到新的指令执行地址但是jump是在本程序中跳转而trap则是直线 *** 作系统控件内部,也就是跳转到 *** 作系统的某个指令地址这就是相当于开启调用系统服务api了执行完成后pc计数器会还原为原来本程序中trap指令的下一个地址,既接着执行本程序的逻辑
回顾一下上文的lc-3结构下边进行介绍
图中最粗最黑的先lc-3的全局总线有16位,表示不同结构之间每次传递最多16位信息同一时刻,总线只允许一个数据发送方发送数据
访问内存的步骤是先将要访问内存的地址装入MAR寄存器,然后在看是读指令还是写指令如果是load,会发送RD信号,把内存中数据送入MDR寄存器, 如果是store,则数据会放入MDR寄存器中,然后发送WE信号,使MDR寄存器中的数据保存至MAR寄存器指定的地址中 (感觉这里是硬件的执行逻辑了是器材之间电路的联通)
ALU是算数逻辑单元,进行基础的运算 接受两个输入,一个是寄存器另一个是寄存器或者是立即数ALU计算完成会把结果保存在通用寄存器中同时改变三个条件码寄存器NPZ
pc计数器记录下一条要执行的 *** 作他会在指令周期的取指令节拍最后进行自增来指向下一条指令的地址但同时上问介绍的控制指令也是会改变pc计数器的值因此有了PCMUX,PCMUX是一个三选一的多路复用器(第三章介绍过,多种输入数据,1个输出数据),PCMUX输入包括PC+1(正常执行)、利用offset计算的PC值(控制指令)、MDR(控制指令)
MARMUX是用来在load,storetrap指令执行期间,选择合适的地址输入他会根据指令的 *** 作码来从他的几个输入地址中选择合适的地址我的理解是他处理了各种不同寻址方式产生的结果
IR寄存器保存当前要执行的这个指令当执行一条指令时,先把它从内存取到内存数据寄存器(MDR)中,然后再传送至IR
具体讲解,直接记录了,本指令开头是0110,对应指令格式如下 ,意思是把 baseR +offset6 地址的数据取出来保存到DR中 DR =M[BaseR + offset6]
本章主要分解了LC-3计算机的基础结构,分别是内存,寄存器,指令集,寻址模式,条件码其中寄存器虽然有好几种,但本质都是存取数据的存储元件,只是保存不同的信息而指令则分为 *** 作指令(用于计算数据),数据搬移指令(用于移动数据)和控制指令(用于控制指令跳转),在加上三个位寄存器NPZ的配合,就实现了一部分逻辑功能,有点程序的感觉了
接着是指令执行的一个周期中的6个节拍每个节拍需要一到多个始终周期而计算书就是根据时钟周期的信号频率还不断的运行不同的节拍做什么,直接理解记住就好这就是规则
至于指令,其实 *** 作码是主要的反复就这集中,有的 *** 作码还根据寻址模式不同,又多了几个变化,其实也是很好理解的
寻址模式是为了在不同程度上,在寄存器中的不同位置得到数据,这个也直接记录就可以没难度
对于寄存器概括就是 MAR记录内存的地址 MDR保存内存的值 PC指向下一个指令地址 IR保存要执行的指令
ZNP记录对寄存器数据变化的结果,用来做逻辑判断
汇编语言是对机器指令的另一种表示方法机器并不理解汇编语言汇编语言最后也要翻译成机器指令而汇编语言和机器指令的格式有点类似每条汇编语言通常会对应一个机器指令汇编语言需要经过汇编器汇编变成机器语言
LABEL OPCODE OPERANDS ; COMMENTS
这个和之前的机器指令是一样的 *** 作码决定做什么 *** 作数决定对谁做这里同样存在不同的寻址模式
ru ADD R1 ,R3,#-1 把R3和 -1相加结果在保存在R1中,这是立即数寻址方式
指向内存单元的一个符号名可以直接在内存中使用用来做跳转或者做load/store用,其实是一种地址的简单表示方式如下 brp又跳转到了again标号的地方
注释用 ; 隔开,计算机不会别识别是提供给人看的
伪 *** 作并不会执行,是程序员传递给汇编器的信息用来指导汇编器的汇编 *** 作汇编器看到这些信息,会把他们丢弃
告诉汇编器将lc-3程序放在内存的什么位置上如 ORIG x3050 表示
1,存数指令的信息流程:
取指令: PC→MAR→M→MDR→IR;分析指令:Ad(IR)→MAR;执行指令:ACC→MDR→M,WR。
2,加法指令的信息流程:
取指令:PC→MAR→M→MDR→IR;分析指令:OP(IR)→CU;执行指令:Ad(IR)→MAR→M→MDR→X;ACC→ALU,同时X→ALU;ALU→ACC ,ACC→MDR,WR。
主存容量是256×32位,得2的28次方=256M。故MAR=28,PC=28,MDR=32;又指令字长=存储字长=机器字长,则IR=ACC=MQ=X=32。
扩展资料:
加法指令add一般格式:add dst,src。
指令与指令代码指令 指令代码ADD A, Rn O0101rrrADD A, direct 00100101 directADD A, @Ri O010011iADD A, #data 00100100 data。功能:dst—dst+src,完成两个 *** 作数相加,结果送至目的 *** 作数dst,源 *** 作数不变。
对 *** 作数的要求:两个 *** 作数不能同时为存储器寻址方式。目的 *** 作数:8位、16位或32位的寄存器、存储器 *** 作数。源 *** 作数:与目的 *** 作数类型相同的寄存器、存储器或立即数 *** 作数。如指令:add al,90h。
对标志位的影响加法运算对程序状态字寄存器PSW的各标志位有一定的影响。如果位7有进位输出,则CY =1,否则CY =0;如果位3有进位输出,则AC =1,否则AC =0;溢出标志位OV= C6①C7,如果位6有进位输出而位7没有或者位7有进位输出而位6没有,则OV =1,否则OV =0。
随着企业规模的不断扩大,企业生产能力的不断加强,设备自动化程度不断提高,要做到对生产现场设备有效管理,仅靠人员的方式,企业不仅需要投入大量人力物力,而且加大了企业的负担。
为了有效解决这一问题,需把数据自动化采集技术引入现场生产过程中,通过SCADA软件对设备进行数据的采集、监控和分析,从而实现对现场问题的快速响应。
在实际的生产现场,设备种类繁多,控制方式多样化,有继电器、PLC、DCS,DNC等。要实现这些设备的数据采集,就需要SCADA支持多种通讯协议。
一般数据采集过程中通常会使用以下几种通讯协议:Modbus、TCP/IP、OPC。
Modbus协议
1Modbus介绍
Modbus协议是一种应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型,协议本身没有定义物理层,只是定义了控制器能够识别和使用的消息结果,而不管他们是经过哪种网络进行通讯的。标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网,采用了Master/Slave(主/从)通讯方式。
2Modbus RTU/SCAII通讯
Modbus(RTU/SCAII)协议的数据通讯采用的是Master/Slave方式。Master发出数据请求消息,Slave接受到正确的消息后向Master发送数据以响应请求。另外,Master也可以直接发生消息修改Slave的数据,实现双向读写。
3ModbusTcp协议
ModbusTcp协议是在TCP/IP上实现Modbus的报文传输。
TCP/IP协议
1TCP/IP介绍
TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。但是这显然是有些复杂的,所以在TCP/IP协议中,它们被简化为了四个层次。
2TCP/IP通讯方式
TCP/IP协议是由网络层的IP协议与传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。
OPC协议
1OPC协议介绍
OPC(Object Linking and Embedding(OLE) for Process Control)是微软公司的对象连接和嵌入技术在过程控制方面的应用。
OPC规范从OLE/COM/DCOM的技术基础上发展而来,并以C/S模式为面向对象的工业自动化软件的开发建立了统一标准,该标准中定义了在基于PC的客户机之间进行自动化数据实时交换的方法。
采用OPC标准后,驱动程序不再由软件开发商开发,而是由硬件开发商根据硬件的特征,将各个硬件设备驱动程序和通讯程序封装成可独立运行或嵌入式运行的数据服务器。
2OPC通讯协议方式
OPC通讯协议不依赖于硬件的系统构成和固有数据,同时利用了一种叫Variant的数据类型,按照应用程序要求提供数据格式。从而实现不同厂家的硬件和系统间的通讯。
Modbus、TCP/IP、OPC协议特点
名称 特点
Modbus(RTU/ASCII)
1公开协议,完全免费
2简单易用,性能稳定
3广泛的知识资源支持
4自适应差
5通讯效率低
ModbusTcp
1免费协议,样板程序多
2实施价格低廉,可以用通用网络组件
3易于集成不同设备
4网络传输能力一般
5实时性较差
TCP/IP
1协议完全开放,免费试用,独立于硬件和 *** 作系统
2不区分网络硬件,局域网和互联网都可以试用
3地址唯一性
4通讯可靠性高,速度快
OPC
1标准化
2需要授权购买授权
3分布式
4组件化
5实时性高
苏州云计算与工业互联网论坛2019年10月24日点击阅读全文即刻报名!
angularjs组件间通讯
紫米耳机
精选推荐
广告
两套完整最新版的C#开源的组控软件free SCADA和SHARPSCADA
19下载·0评论
2022年3月22日
开源项目推荐:SCADA组态软件Qt,kanzi,C#,MFC和WEB大全(收藏版)
2800阅读·0评论·0点赞
2021年10月22日
跨平台SCADA系统(组态软件)开发1
6034阅读·4评论·10点赞
2020年5月30日
c#modbus tcp通讯助手开源_Modbus协议是什么?
292阅读·0评论·0点赞
2020年11月28日
开源SCADA组态软件Qt,C#,和WEB大全
2040阅读·0评论·1点赞
2019年12月14日
工控基础1 SCADA系统介绍
682阅读·0评论·1点赞
2022年10月10日
高清播放机,大全,详情!
精选推荐
广告
c#modbus tcp通讯助手开源_漫谈SCADA系统常用的几种通讯方式
627阅读·0评论·0点赞
2020年11月2日
SCADA系统(组态软件)开发
690阅读·1评论·0点赞
2021年7月14日
c# modbus/Tcp通讯连接
1859阅读·2评论·3点赞
2022年10月8日
Modbus协议栈应用实例之三:Modbus TCP客户端应用
4915阅读·0评论·8点赞
2020年9月12日
C# 使用MODBUS TCP和MODBUS RTU与设备通讯
227阅读·0评论·0点赞
2022年10月11日
SCADA源码,C#实现
283下载·28评论
2012年11月17日
ModbusTcp通讯助手源码
11下载·0评论
2022年3月24日
c#modbus tcp通讯助手开源_三、Modbus 协议在 TCP/IP 上的实现指南(全文干货)
1240阅读·0评论·1点赞
2020年11月22日
c#modbus tcp通讯助手开源_物联网展开,市场确实很大,通讯接口的转换和协议的转换,牛
119阅读·0评论·0点赞
2020年11月25日
c#modbus tcp通讯助手开源_从Modbus开始说现场总线
179阅读·0评论·0点赞
2020年11月27日
本设计的温度测量及加热控制系统以 AT89S52 单片机为核心部件,外加温度采集电
路、键盘及显示电路、加热控制电路和越限报警等电路。采用单总线型数字式的温度传
感器 DS18B20,及行列式键盘和动态显示的方式,以容易控制的固态继电器作加热控制
的开关器件。本作品既可以对当前温度进行实时显示又可以对温度进行控制,以使达到
用户需要的温度,并使其恒定在这一温度。人性化的行列式键盘设计使设置温度简单快
速,两位整数一位小数的显示方式具有更高的显示精度。建立在模糊控制理论上的控制
算法,使控制精度完全能满足一般社会生产的要求。通过对系统软件和硬件设计的合理
规划,发挥单片机自身集成众多系统级功能单元的优势,在不减少功能的前提下有效降
低了硬件成本,系统 *** 控简便。
实验证明该温控系统能达到 02℃的静态误差,045℃的控制精度,以及只有 083%
的超调量,因而本设计具有很高的可靠性和稳定性。
关键 词: 单片机 恒温控制 模糊控制
1
引 言
温度是工业生产中主要的被控参数之一,与之相关的各种温度控制系统广泛应用于
冶金、化工、机械、食品等领域。温度控制是工业生产过程中经常遇到的过程控制,有
些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度
控制系统是非常有价值的。
硬件 系统的设计
1、电路总体原理框图
温度测量及加热系统控制的总体结构如图 1 所示。系统主要包括现场温度采集、实
时温度显示、加热控制参数设置、加热电路控制输出、与报警装置和系统核心 AT89S52
单片机作为微处理器。
图 1:系统总体原理框图
温度采集电路以数字量形式将现场温度传至单片机。单片机结合现场温度与用户设
定的目标温度,按照已经编程固化的模糊控制算法计算出实时控制量。以此控制量控制
固态继电器开通和关断,决定加热电路的工作状态,使水温逐步稳定于用户设定的目标
值。在水温到达设定的目标温度后,由于自然冷却而使其温度下降时,单片机通过采样
回的温度与设置的目标温度比较,作出相应的控制,开启加热器。当用户需要比实时温
度低的温度时,此电路可以利用风扇降温。系统运行过程中的各种状态参量均可由数码
管实时显示。
2、温度采集电路的设计
温度采集电路模块如图 2 示。DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、
温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。其中 DQ 为数字信号输
入/输出端;GND 为电源地;VDD 为外接供电电源输入端。
2
图 2:温度采集电路
DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展
的二进制补码读数形式提供,以 00625℃/LSB 形式表达,其中 S 为符号位。
这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进
制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘
于 00625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1
再乘于 00625 即可得到实际温度。
3、键盘和显示的设计
键盘采用行列式和外部中断相结合的方法,图 3 中各按键的功能定义如下表 1。其
中设置键与单片机的 INT 0 脚相连,S 0 −−S 9 、YES、NO 用四行三列接单片机 P0 口,REST
键为硬件复位键,与 R、C 构成复位电路。模块电路如下图 3:
表 1:按键功能
按键 键名 功能
REST 复位键 使系统复位
RET 设置键 使系统产生中断,进入设置状态
S 0 −−S 9 数字键 设置用户需要的温度
YES 确认键 用户设定目标温度后进行确认
NO 清除键 用户设定温度错误或误按了 YES 键后使用
3
图 3 键盘接口电路
显示采用 3 位共阳 LED 动态显示方式,显示内容有温度值的十位、个位及小数点后
一位。用 P2 口作为段控码输出,并用 74HC244 作驱动。P10—P12 作为位控码输出,
用 PNP 型三极管做驱动。模块电路如下图 4:
4、加热控制电路的设计
图 4 显示接口电路
用于在闭环控制系统中对被控对象实施控制,被控对象为电热杯,采用对加在电热
杯两端的电压进行通断的方法进行控制,以实现对水加热功率的调整,从而达到对水温
控制的目的。对电炉丝通断的控制采用 SSR-40DA 固态继电器。它的使用非常简单,只
要在控制端 TTL 电平,即可实现对继电器的开关,使用时完全可以用 NPN 型三极管接
成电压跟随器的形式驱动。当单片机的 P13 为高点平时,三极管驱动固态继电器工作
接通加热器工作,当单片机的 P13 为低电平时固态继电器关断,加热器不工作。控制
电路图如下图 5:
4
图 5 加热控制电路
5、报警及指示灯电路的设计
当用户设定的目标温度达到时需用声音的形式提醒用户,此时蜂鸣器为三声断续的
滴答滴答的叫声。在本系统中我们为用户设计了越限报警,当温度低于用户设置的目标
温度 10 度或高于 10 度时蜂鸣器为连续不断的滴答滴答叫声。当单片机 P17 输出高电
平时,三极管导通,蜂鸣器工作发出报警声。P17 为低电平时三极管关断,蜂鸣器不
工作。
D1 为电热杯加热指示灯,P15 低电平有效;D0 为检测到 DS18B20 的指示,高电平
有效;D10 为降温指示灯,低电平有效。报警及指示灯电路如下图 6 示:
图 6 报警及指示灯电路
5
软 件系统的设计
系统的软件由三大模块组成:主程序模块、功能实现模块和运算控制模块。
1、主程序模块
主程序主要完成加热控制系统各部件的初始化和实现各功能子程序的调用,以及实
际测量中各个功能模块的协调在无外部中断申请时,单片机通过循环对外部温度进行实
时显示。把设置键作为外部中断 0,以便能对数字按键进行相应处理。主程序流程图如
下图 7:
6
图 7 主程序流程图
7
2、功能实现模块
以用来执行对固态继电器及电热杯的控制。功能实现模块主要由中断处理子程序、
温度比较处理子程序、键盘处理子程序、显示子程序、报警子程序等部分组成。键盘显
示及中断程序流程图如下图 8:
3、运算控制模块
图 8 键盘、显示、中断 子程序流程图
该模块由标度转换、模糊控制算法,及其中用到的乘法子程序。
31 标度转换
16
式中 A 为二进制的温度值, A0 为 DS18B20 的数字信号线送回来的温度数据。
8
单片机在处理标度转换时是通过把 DS18B20 的信号线送回的 16 位数据右移 4 位得
到二进制的温度值。其小数部分通过查小数表的形式获取。程序流程图如下图 9:
开始
将28H低4位与29H高4位组合成
一个字节
将合成的字节(整数部分)送29H
单元
将29H单元低4位送A
给DPTR赋常数表格2首地址
将查到的数值(即小数部分)送
30H单元
结束
32 模糊控制算法子程序
图 9 标度转换子程序流程图
该系统为一温度控制系统,由于无法确切确定电炉的物理模型,因而无法建立其数
学模型和传递函数。加热器为一惯性系统,我们采用模糊控制的方法,通过多次温度测
量模糊计算当用户设定目标温度时需提前关断加热器的温度,利用加热器自身的热惯性
使温度上升到其设定温度。每隔 5 摄氏度我们进行一次温度测量,并当达到其温度时关
断加热器记录下因加热器的热惯性而上升的温度值。从而可以建立热惯性的温度差值
表,在程序中利用查表法,查出相应设定温度对应的关断温度。通过实验数据我们可以
看出,当水温从 0℃加热到 50℃这段温度区域,其温度惯性曲线可近似成线性的直线,
水温从 50℃加热到 100℃这段温度惯性曲线可近似成另一条线性的直线段。通过对设置
的目标温度与温控系统监测温度进行差值处理就可近似的求出单片机的提前关断温度。
程序流程图如图 10:
9
4.源程序见附录[2]
图 10 模糊控制算法子程序流程图
设计 总结
我们的温度控制系统是基于 AT89S52 单片机的设计方案,她能实时显示当前温度,
并能根据用户的要求作出相应的控制。此系统为闭环系统,工作稳定稳定性高,控制精
度高,利用模糊控制算法使超调量大大降低。软件采用模块化结构,提高了通用性。本设
计的目的不仅仅是温度控制本身,主要提供了单片机外围电路及软件包括控制算法设计
的思想,应该说,这种思想比控制系统本身更为重要。
1、设计所达到的性能指标
11 温控系统的标度误差
我们将标准温度计和温控系统探头放人同一容器中,选定若干不同的温度点,记
录下标准温度计显示的温度和温控系统显示的温度进行比较。测量数据如下表 2 所示:
表 2 标准温度计测量的温度和温控系统显示的温度
标准温度计和温控系统显示的温度(℃)
标准温度计 169 477 578 630 728 851 909
温控系统 165 480 583 629 730 855 905
差值比较 -04 03 05 01 02 04 -04
标度误差 15%
10
12 温控系统的静态误差
通过测量在不同的温度点同标准温度的温度差来确定温控系统的静态误差。其测量
数据如下表 3:
表 3 标准温度和温控系统显示的温度
标准温度和温控系统显示的温度(℃)
标准温度 260 370 460 600 700 830
系统显示值 257 364 461 596 700 833
差值 -03 -06 -01 -04 0 03
静态误差 018℃
13 温控系统的控制精度
通过设定不同的温度值,使加热器加热,待温度稳定时记录各温度点的温度计数据
和温控系统的显示值。其记录数据如下表 4:
温度计读数和温控系统显示的温度(℃)
设定温度
值 200 280 350 450 550 750 870 910
系统显示
值 205 277 344 451 541 749 861 912
差值 05 -03 -06 01 -09 -01 -09 02
控制精度 045℃
超调量 083%
2、结果分析论述
我们的系统完全满足设计要求,静态误差方面可以达到 018℃的误差,在读数正确
方面与标准温度计的读数误差为 15%,对一般的工业生产完全可以采用我们的设计。
该系统具有较小的超调值,超调值大约为 083%左右。虽然超调为不利结果,但另
一方面却减小了系统的调节时间。从其数据表可以看出该系统为稳定系统。
3、设计方案评价
31 优点
在硬件方面:本设计方案采用了单总线型数字式的温度传感器,提高了温度的采集
精度,节约了单片机的口线资源。方案还使用仅一跟口线就可控制的美国生产的固态继
电器 SSR—40DA 作加热控制器件,使设计简单化,且可靠性强。在控制精度方面,本设
计在不能确定执行机构的数学模型的情况下,大胆的假设小心的求证,利用模糊控制的
算法来提高控制精度。
在软件方面:我们采用模块化编程,思路清晰,使程序简洁、可移植性强。
32 缺点
本设计方案虽然采用了当前市场最先进的电子器件,使电路设计简单,但设计方案
造价高。本系统虽然具有较小的超调量,但加大了调节时间。如果需要更高的控制精度,
则我们的模糊控制将不适应,需修改程序。
11
33 方案的改进
在不改变加热器容量的情况下,为减小调节时间,可以实行在加热快达到设定温度
时开启风扇来减小热惯性对温度的影响的措施。在控制精度上可采用先进的数字 PID
控制算法,对加热时间进行控制,提高控制精度。
可以改进控制系统使能同 PC 联机通信,以利用 PC 的图形处理功能打印显示温度曲
线。AT89S52 串行口为 TTL 电平,PC 串行口为 RS232 电平,使用一片 MAX232 作为电
平转换驱动。
参考 文献
[1] 李广弟 单片机基础 北京:北京航空航天大学出版社,2001
[2] 王福瑞 单片微机测控系统设计大全 北京:北京航空航天大学出版社,1997
[3] 赵茂泰 智能仪器原理及应用(第 2 版) 北京:电子工业出版社,2004
[4] 赖寿涛 微型计算机控制技术 北京:机械工业出版社,2000
[5] 沙占友 模拟与数字万用表检测及应用技术 北京:电子工业出版社 1999
12
附 录
附录[1]使用说明书
按 键功能说明
数字键:按 SET 键后,按相应的数字键(0~9)可对温度进行设置,所设置的温
度将实时显示在 LED 显示器上;
SET 键:按 SET 键可对温度的十位、个位以及小数部分进行设置;
YES 键:设置好温度后按 YES 键,系统将据你所设置的温度(须大于当前实际
温度)对水进行加热;
NO 键:若误按了 SET 键,或对输入有误,可按 NO 键进行取消;
RST 键:对系统进行复位。
指示 灯及报警器说明
红 灯:加热状态标志;
绿 灯:温度传感器正常工作标志;
蓝 灯:保温状态标志;
报警器:功能①当水温达到预设值时报警提醒;
功能②当水温达到或超越上、下限时报警提示。
13
附录[2]设计总电路
14
附录[3]程序清单
TEMPER_L EQU 29H ;用于 保存读出温度的低 8 位
TEMPER_H EQU 28H ;用于 保存读出温度的高 8 位
FLAG EQU 38H ;是否 检测到 DS 18B20 标志位
DAYU EQU 44H ;设温 >实温
XIYU EQU 45H ;设温 <实温
DEYU EQU 46H ;设温 =实温
GAOLE EQU 47H ;水温 高于最高温度
DILE EQU 48H ;水温 低于最低温度
A_bit EQU 79h ;数码 管个位数存放内存位置
B_bit EQU 7Ah ;数码 管十位数存放内存位置
C_BIT EQU 78H ;数码 管小数存放内存位置
ORG 0000H
AJMP START
ORG 0003H
AJMP PITO
ORG 0030H
START: CLR P17
CLR P13
CLR P15
SETB P16
MOV R4, #00H
MOV SP, #60H ;确立堆栈区
MOV PSW, #00H ;
MOV R0, #20H ;RAM 区首地址
MOV R7, #60H ;RAM 区单元个数
ML: MOV @R0, #00H
INC R0
DJNZ R7, ML
CLR IT0
MAIN:LCALL GET_TEMPER ;调用读温度子程序 进行温度显示,这里我们考
;虑用网站提供的两位数码管来显示温度
;显示范围 00 到 99 度,显示精度为 1 度
;因为 12 位转化时每一位的精度为 00625 度,
;我们不要求显示小数所以可以抛弃 29H 的低 4
;位将 28H 中的低 4 位移入 29H 中的高 4 位,这
;样获得一个新字节,这个字节就是实际测量获
;得的温度
LCALL DISPLAY ;调用数码管显示 子程序
JNB 00H, MAIN
CLR 00H
15
MOV A, 38H
CJNE A, #00H, SS
AJMP MAIN
SS: LCALL GET_TEMPER
LCALL DISPLAY;调用 数码管显示子程序
LCALL BIJIAO
LCALL XIAOYU
LCALL JIXIAN
JNB DEYU ,LOOP
CLR P13 ;关加热器
SETB P16 ;关 蓝灯
SETB P07 ;关风扇
CLR DEYU
LCALL GET_TEMPER
LCALL DISPLAY
AJMP TT2
LOOP:JNB DAYU ,TT
CLR DAYU
SETB P13
SETB P16
SETB P07
CLR P17
LCALL GET_TEMPER
LCALL DISPLAY
AJMP TT2
TT:JNB XIYU, TT2
CLR XIYU
CLR P07
CLR P16
CLR P13
CLR P17
LCALL GET_TEMPER
LCALL DISPLAY
TT2:MOV A, 29H
CLR C
CJNE A, 50H, JX
MOV A , 30H
CLR C
CJNE A, 51H, JIA1
AJMP YS2
JIA1:JC JX
MOV A, 51H
MOV 52H, A
ADD A, #2
16
MOV 52H, A
CLR C
MOV A, 30H
CJNE A, 52H, JIA2
JIA2:JNC JX
YS2:SETB P17
CLR P16
MOV R5, #20H
YS:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS
CLR P17
SETB P16
MOV R5, #20H
YS1:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS1
YS3:SETB P17
CLR P16
MOV R5, #20H
YS0:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS0
CLR P17
SETB P16
MOV R5, #20H
YS01:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS01
YS4:SETB P17
CLR P16
MOV R5, #20H
YS02:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS02
CLR P17
SETB P16
MOV R5, #20H
YS03:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS03
JX: MOV A, 29H
CJNE A, 31H, JX00
JX01:SETB P17
17
CLR C
AJMP LAST
JX00:JC JX01
CLR P17
CJNE A,
JX02:SETB P17
CLR C
AJMP LAST
JX03:JNC JX02
32H,
JX03
CLR P17
LAST:LCALL GET_TEMPER
LCALL DISPLAY
AJMP SS
;常数表格区
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8 H,80H ;0-8
DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH ,0CH ;9,A,B,C,D,E,F,灭,p
TAB1:DB40H,79H,24H,30H,19H,12H,02H,78H,00H ,10H, ;0--9
TAB2:DB 0, 0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, ;小数点
;1ms 延时程序
; 中断服务程序
; 完成按键识别,键值求取,按键实时显示 等功能;
;
PITO: PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
SET B 00H
MAIN1: MOV R7 , #03H ;显示位数为 2 位
MOV R0, #7AH
MOV 78H, #00H
MOV 79H, #00H
MOV 7AH, #00H
KK: LCALL DIR
LCALL KEY1
LOOP1:CJNE A, #11, LOOP2
AJMP LAST0
LOOP2:CJNE A, #12, LOOP3
LJMP LAST3
LOOP3: CJNE A, #10, L4
MOV A, #00H
L4: MOV @R0, A
LCALL DIR
DEC R0
DJNZ R7, KK
18
SETB 01H
LAST0:JNB 01H, KK
LOOP4:LCALL KEY1
CJNE A, #12, LOOP5
AJMP LAST3
LOOP5:CJNE A, #11, LOOP4
LAST1:LCALL DIR
LCALL MUN
LCALL JD
LCALL BIJIAO
LAST3:POP PSW
POP ACC
RETI
;精度控制 子程序
JD: PUSH ACC
PUSH PSW
CLR C
MOV A, 38H
MOV 50H, A
MOV A, 39H
MOV 51H, A
CJNE A, 29H, L001
L001:JC LAST02 ;设温<实温,则跳出
MOV A, 29H
MOV 41H, A
MOV A, 38H
CJNE A, #25, L002
L003:CLR C ;0 <T<25
SUBB A, 41H
CJNE A, #3, L004
L005:MOV A, 30H
ADD A, #5 ;0<T<25, 差值小于 3 度
DA A
JNB ACC4, L0051
ANL A, #0FH
SETB C
L0051:MOV 39H, A
MOV A, 29H
ADDC A, #1
MOV 38H, A
AJMP LAST2
LAST02: AJMP LAST2
L004:JC L005
MOV A, 39H
19
SUBB A, #0
DA A
MOV 39H, A
JNC L0041
DEC 38H
L0041:MOV A, 38H
SUBB A, #2 ;0<T<25, 差值大 于 3 度
MOV 38H, A
AJMP LAST2
L002:JC L003
CJNE A, #50, L006
L007:CLR C ;25<T<5 0
SUBB A, 41H
CJNE A, #3, L008
L009:MOV A, 30H
ADD A, #1
DA A
JNB ACC4, L0091
ANL A, #0FH
SETB C
L0091:MOV 39H, A
MOV A, 29H
ADDC A, #1
MOV 38H, A
AJMP LAST2
L008:JC L009
MOV A, 39H
SUBB A, #0
MOV 39H, A
MOV A, 38H
SUBB A, #2
MOV 38H, A
AJMP LAST2
L006:JC L007
CJNE A, #65, L010
L011:CLR C
SUBB A, 41H
CJNE A, #3, L012
L013:MOV A, 30H
ADD A, #2
JNB ACC4, L00131
ANL A, #0FH
SETB C
L00131:MOV 39H, A
20
MOV A, 29H
ADDC A, #1
MOV 38H, A
AJMP LAST2
L012:JC L013
MOV A, 39H
SUBB A, #0
MOV 39H, A
MOV A, 38H
SUBB A, #2
MOV 38H, A
AJMP LAST2
L010:JC L011
CJNE A, #90, L016
L017:CLR C
SUBB A, 41H
CJNE A, #2, L014
L015:MOV A, 30H
ADD A, #0
JNB ACC4, L00151
ANL A, #0FH
SETB C
L00151:MOV 39H, A
MOV A, 29H
ADDC A, #1
MOV 38H, A
AJMP LAST2
L014:JC L015
CLR C
MOV A, 38H
SUBB A, #1
MOV 38H, A
AJMP LAST2
L016:JC L017
LAST2:POP PSW
POP ACC
RET
;键扫描
KEY1:LCALL KS1 ;键 扫描
JNZ LK1
LCALL DIR
AJMP KEY1
LK1:LCALL DIR
LCALL DIR
21
LCALL KS1
JNZ LK2
LCALL DIR
AJMP KEY1
LK2:MOV R2, #0FEH ;确定键值
MOV R4, #01H
MOV A, R2
LK4:MOV P0, A
NOP
MOV A, P0
JB ACC3, LONE
MOV A, #00H
AJMP LKP
LONE:JB ACC4 , LTWO
MOV A, #03H
AJMP LKP
LTWO:JB ACC5, LTHR
MOV A, #06H
AJMP LKP
LTHR:JB ACC6, NEXT5
MOV A, #09H
AJMP LKP
NEXT5:INC R4
MOV A, R2
JNB ACC2 ,KND
RL A
MOV R2, A
AJMP LK4
KND:AJMP KEY1
LKP: ADD A, R4
PUSH ACC
LK3:LCALL DIR
LCALL KS1
JNZ LK3
POP ACC
RET
KS1: PUSH PSW
MOV P0, #78H
NOP
MOV A, P0 ;判断有无键按下
CPL A
ANL A, #78H
POP PSW
22
RET
;求设置温度的二 进制代码,值保存在 38H 单元
MUN: PUSH PSW
MOV R0, #7AH ;求键值
MOV A, @R0
SWAP A
DEC R0
ADD A, @R0
MOV R1, A
ANL A, #0F0 H
SWAP A
MOV B, #10
MUL AB
MOV R2, A
MOV A, R1
ANL A, #0FH
ADD A, R2
MOV 38H, A
MOV R0, #78H
MOV 39H, @R0
POP PSW
RET
;比较实际温度和设置温度的大小 并设置相应的标志位
BIJIAO:MOV A, 29 H ;实际温度
MOV 40H, A
以上就是关于计算机系统概论-笔记全部的内容,包括:计算机系统概论-笔记、画出主机框图,分别以存储指令“STA M”和加法指令“ADD M”(M均为主存地址)为例,在图中按序标出完成该、唯一性通讯程序是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)