版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目项目6 6 水塔水位控制水塔水位控制6-0 复习6-1 任务引入及演示6-2 算术运算指令6-3 逻辑操作指令内容提要:第1页/共53页学习目标进一步掌握控制程序转移类指令、位操作指令进一步理解多分支程序的设计方法。掌握用分支程序实现水塔水位控制的方法。掌握用Proteus实现单片机系统仿真的方法。通过实训加深对程序转移指令、位操作指令的理解掌握MCS-51指令系统中的算术运算指令和逻辑操作指令项目项目6 6 水塔水位控制水塔水位控制第2页/共53页 教学重点和难点 控制程序转移指令和位操作指令的进一步理解 算术运算指令和逻辑操作指令的掌握与运用 分支程序设计 如何用单片机实现水塔水位的控
2、制 Keil C软件的使用项目项目6 6 水塔水位控制水塔水位控制v 教学方法 讲授法、演示法v 教学学时 6课时第3页/共53页项目项目6 6 水塔水位控制水塔水位控制主要操作实例水塔水位控制(理论教材P9899)算术运算指令、逻辑操作指令的验证(实验指导书P4753)第4页/共53页1、控制程序转移指令控制程序转移类指令的本质是改变程序计数器PC的内容,从而改变程序的执行方向。控制转移指令分为:无条件转移指令、条件转移指令和调用/返回指令。6.0 6.0 复习第5页/共53页1 1) 无条件转移指令(无条件转移指令(4 4条)条)无条件转移指令是指当程序执行到该指令时,程序无条件转移到指令
3、所提供的地址处执行。无条件转移类指令有四类:l绝对转移AJMPl长转移LJMPl相对转移(短转移)SJMPl间接转移(散转指令)JMP第6页/共53页2 2) 条件转移指令(条件转移指令(8 8条)条)条件转移指令是指根据给出的条件进行判断, 若条件满足,则程序转向由偏移量确定的目的地址处去执行。 若条件不满足,程序将不会转移,而是按原顺序执行。8051有丰富的条件转移指令:累加器A判0指令(2条)比较转移指令(4条)减1非零转移指令(2条)第7页/共53页3 3)调用、返回指令)调用、返回指令 (4条条)通常把具有一定功能的公用程序段作为子程序,在主程序中采用调用指令调用子程序,子程序的最后
4、一条指令为返回主程序指令(RET)。 8051指令系统中有两条调用指令,分别是绝对调用和长调用指令。主程序调用子程序及从子程序返回主程序的过程如右图所示。调用、返回指令有: 绝对调用指令绝对调用指令 长调用指令长调用指令 返回指令返回指令 返回 调用 断点 返回 调用 子程序 主程序 主程序 主程序 断点 4 4)空操作指令)空操作指令(1(1条条) )第8页/共53页8051硬件结构中有个位处理机又称布尔处理机,它具有一套完整的处理位变量的指令集,包括位变量传送、逻辑运算、控制程序转移指令等。在进行位寻址时,PSW中的进位标志CY作为位处理机的累加器,称为位累加器。位寻址空间包括以下两部分:
5、l片内RAM中位寻址区即字节地址20H2FH单元中连续的128个位,位地址为00H7FH。l部分特殊功能寄存器中的可寻址位凡SFR中字节地址能被8整除的特殊功能寄存器都可以进行位寻址。位地址为80F7H,一共83位。 对于位寻址,有以下三种不同的写法。 第一种是直接地址写法, 如 MOV C,0D2H,其中,0D2H表示PSW中的OV位地址。 第二种是点操作符写法,如 MOV C , 0D0H.2。 第三种是位名称写法,在指令格式中直接采用位定义名称,这种方式只适用于可以位寻址的SFR,如MOV C,OV。6.0 6.0 复习2、 位操作指令 第9页/共53页1 1)位数据传送指)位数据传送指
6、令令 汇编指令格式 机器指令格式 操 作 MOV C,bit A2H bit C (bit) MOV bit,C 92H bit bit (C)2 2)位逻辑运算指令)位逻辑运算指令位逻辑“与”指令 汇编指令格式 机器指令格式 操 作 ANL C,bit 82H bit C (C)(bit) ANL C,/bit B0H bit C (C)(bit)位逻辑“或”指令 汇编指令格式 机器指令格式 操 作 ORL C,bit 72H bit C (C)(bit) ORL C,/bit A0H bit C (C)(bit)第10页/共53页3 3) 位清位清0 0、置、置1 1指指令令 位清0指令
7、汇编指令格式 机器指令格式 操 作 CLR C C3H C 0 CLR bit C2H bit bit 0位置1指令 汇编指令格式 机器指令格式 操 作 SETB C D3H C 1 SETB bit D2H bit bit 1位取反指令 汇编指令格式 机器指令格式 操 作 CPL C B3H C ( ) CPL bit B2H bit bit ( )第11页/共53页4 4)位条件转移类指)位条件转移类指令令 判位累加器C转移指令 汇编指令格式 机器指令格式 操 作 JC rel 40H rel PC (PC)+2 若(C)=1,则程序转移PC (PC)+rel 若(C)=0,则程序往下顺序
8、执行 JNC rel 50H rel PC (PC)+2 若(C)=0,则程序转移PC (PC)+rel 若(C)=1,则程序往下顺序执行判位变量转移指令 汇编指令格式 机器指令格式 操 作 JB bit,rel 30H bit rel PC (PC)+3 若(bit)=1,则程序转移 (PC)+rel 若(bit)=0,则程序往下顺序执行 JNB bit,rel 20H bit rel PC (PC)+3; 若(bit)=0,则程序转移PC (PC)+rel 若(bit)=1,则程序往下顺序执行第12页/共53页4 4)位条件转移类指)位条件转移类指令令 判位变量清0转移指令 汇编指令格式
9、机器指令格式 操 作 JBC bit,rel 10H bit rel PC (PC)+3 若(bit)=1,则程序转移PC(PC)+rel, 且bit0 若(bit)=0,则程序往下顺序执行第13页/共53页 1、试编程比较内部RAM 40H、41H单元的无符号数的大小,将较小的数存放在42H单元中。 ORG 0000H MOV A,40H ;取第一个数 CJNE A,41H,NEQU;比较,不相等转移至NEQU处 MOV 42H,40H ;相等, (40H)42H SJMP TOOFF;完成,转移至结尾退出NEQU: JNC LESS ;若CY=0,说明(40H) (41H)转移 MOV 4
10、2H,40H;(40H) (41H),(40H)42H SJMP TOOFF;完成,转移至结尾退出 LESS: MOV 42H,41H ;(40H)(41H),(41H)42HTOOFF: END6.0 6.0 复习练习第14页/共53页 2、使用位操作指令实现下列逻辑关系。 (1)P1.0=(10H) Pl.1)(ACC.0CY) (2)P1.3=(ACC.2P1.0)(ACC.1P1.1)(1)MOV 00H,C;CY保存起来存在00H MOV C,10H ORL C,P1.1;(10H)P1.1 MOV 01H,C;暂存在01H位 MOV C,00H;取出之前放在00H里的CY ORL
11、C, ACC.0 ;CYACC.0 ANL C,01H;(10HP1.1)(CYACC.0 ) MOV P1.0,C(2)略。6.0 6.0 复习练习第15页/共53页 2、 把片外数据存储器4020H单元中的数据读到累加器中,应用哪几条指令? MOV DPTR,#4020H MOVX A,DPTR 3、试编写程序将外部RAM 5000H单元内容传送至外部RAM 6030H单元。 MOV DPTR,#5000H MOVX A,DPTR MOV DPTR,#6030H MOVX DPTR,A6.0 6.0 复习练习第16页/共53页 4、试编程将内部RAM 30H3FH单元中的内容全部清0(利用
12、循环转移指令)。 ORG 0000HMOV R0,#10HMOV R1.#30HLP:MOV A,R1CLR AMOV R1,AINC R1DJNZ R0,LPEND6.0 6.0 复习练习第17页/共53页 设计一个水塔水位控制系统。晶振频率6MHz。 设计要求如下所示。 1.在水塔内三个不同的高度分别安装了一根固定不动的金属棒,正常情况下,塔内水位应保持在虚线之内,水位控制原理图如图所示。 2.A棒处于水位上限,B棒处于水位下限。当水位低于水位下限时,自动启动水泵电机给水塔供水;直到塔内水位达到水位上限,自动停止水泵电机转动。 3.塔内水位从水位上限下降到水位下限的过程中,水泵电机不会自动
13、启动。 4.水塔进水时,要有信号灯指示;水位监测发生故障时,要有故障灯指示并使水塔水位控制系统停止工作。6.1 6.1 任务引入及演示第18页/共53页6.1 6.1 任务引入及演示任务引入及演示1、实训任务v P1.0、P1.1脚分别做水位上限信号和水位下线信号的输入脚,本实训将以开关来模拟水位传感器。v P1.2脚作为控制水泵电机启动(P1.2=0)和停止(P1.2=1)的输出控制信号端,接电机(本实训里采用直流电机模拟);v P1.3做指示水泵电机运行状态的输出脚,接一只LED(P1.3=0时点亮);v P1.4作为水位监测系统故障状态信号的输出脚,接一只LED,(P1.4=0时点亮)。
14、第19页/共53页6.1 6.1 任务引入及演示任务引入及演示2、任务分析及演示:完成本任务需要解决哪些问题?硬件部分单片机控制电路的设计: (1)常用单片机的型号,作出本任务的选择;(2)8051最小系统;(3)模拟开关电路的设计,水泵电机的驱动电路设计,启动、停止、故障指示信号灯电路的设计;(4)整个设计系统电路。软件部分控制程序的设计:(1)如何通过程序去实现水塔水位的控制;(2)分支程序的设计;第20页/共53页6.1 6.1 任务引入及演示MOTORMOTORXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237
15、P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R2330R3330R4330R5330D1D2R110kC130pFC230pFC310
16、uFX1CRYSTALSW1SW-SPSTSW2SW-SPSTR63.3kRL15VD31N4001Q12N5551R73.6k12U2:A74LS04水位上限水位上限水位下限水位下限水泵运行水泵运行水泵报警水泵报警水泵电机水泵电机第21页/共53页6.1 6.1 任务引入及演示第22页/共53页表6-1 水位控制信号与水泵电机控制状态的对应关系表P1.1 P1.0控制状态控制状态P1.2 P1.3P1.400水泵电机启动水泵电机启动00101故障报警故障报警11010维持原来状态维持原来状态111水泵电机停止水泵电机停止111第23页/共53页主程序:地址地址机器码机器码源程序源程序注释注释
17、ORG 0000H0000H02 00 30LJMP MAINORG 0030H0030H43 90 03MAIN: ORL P1,#03H; 水位信号输入端做读入准备水位信号输入端做读入准备0033HF5 90 MOV A,P1; 读入水位监测信号读入水位监测信号0035H30 E1 08 JNB ACC.1,QDZB; P1.1=0,转移到启动准备转移到启动准备0038H20 E0 16 JB ACC.0,TZDJ; P1.0=1,转移到停止电机转移到停止电机003BH12 01 00 YS: LCALL DELAY; 延时延时20s003EH80 F0 SJMP MAIN0040H30
18、E0 08QDZB: JNB ACC.0,QDDJ; P1.0=0,转移到启动电机转移到启动电机0043HD2 92 SETB P1.2;停止电机;停止电机0045HD2 93 SETB P1.3;关闭电机运行指示;关闭电机运行指示0047HC2 94 CLR P1.4; 打开水位监测故障指示打开水位监测故障指示0049H80FE SJMP $004BHC2 92QDDJ: CLR P1.2; 启动电机启动电机004DHC2 93 CLR P1.3;打开电机运行指示;打开电机运行指示004FH80EA SJMP YS0051HD2 92TZDJ: SETB P1.2;停止电机;停止电机0053
19、HD2 93 SETB P1.30055H80 E4 SJMP YS第24页/共53页地址地址机器码机器码源程序源程序注释注释 ORG 0100H;20s延时子程序延时子程序0100H7B C8DELAY:MOV R3,#200;20s循环次数循环次数0102H7F C8 LP1:MOV R7,#200;100ms循环次数循环次数0104H7E 7B LP2:MOV R6,#123 ;0.5ms循环次数循环次数0106H00 NOP0107HDE FE LP3:DJNZ R6,LP30109HDF F9 DJNZ R7,LP2010BHDB F5DJNZ R3,LP1010DH22 RET;子
20、程序返回子程序返回 END延时子程序:第25页/共53页#include”reg51.h” /定义8051寄存器的头文件#define count 50000 /T0(MODE 1)的计数值,约0.05s#define TH_M1(65536-count)/256 /T0(MODE 1)计数高8位#define TL_M1(65536-count)%256 /T0(MODE 1)计数低8位void delay()int i;for(i=0;i9或AC=1,则(A0-3)+6A0-3l若(A4-7)9或CY=1,则(A4-7)+6A4-7 该操作影响标志位P。第35页/共53页6.2.5 6.2
21、.5 算术运算类指令应用实例算术运算类指令应用实例 【例1】 有两个BCD码表示的4位十进制数,分别存放在内部数据存储器的50H51H单元和60H61H单元,试编写程序求这两个数之和,并将结果存放在40H42H单元。解:求两个BCD数之和的运算程序如下: MOV A,50H;取第一个数低2位BCD码 ADD A,60H;加第二个数低2位BCD码 DA A;十进制调整 MOV 40H,A;保存结果的低2位 MOV A,51H;取高位BCD码 ADDC A,61H;高位相加 DA A;十进制调整 MOV 41H,A;保存结果的高2位 MOV A,#00H ADDC A,#00H;计算进位 MOV
22、42H,A;保存进位第36页/共53页6.2.5 6.2.5 算术运算类指令应用实例算术运算类指令应用实例 【例2】 试编程计算5678H1234H的值,结果保存在R6、R5中。解:减数和被减数都是16位二进制数,计算时要先进行低8位的减法,然后再进行高8位的减法,在进行低8位减法时,不需要考虑借位,所以要在减法指令之前将借位标志清0。程序如下: MOV A,#78H;被减数低8位送累加器 CLR C;清进位标志位CY SUBB A,#34H;减去减数 MOV R5,A;保存低8位 MOV A,#56H;被减数高8位送累加器 SUBB A,#12H;减去减数 MOV R6,A;保存高8位第37
23、页/共53页6.2.5 6.2.5 算术运算类指令应用实例算术运算类指令应用实例 【例3】 试分析执行下列指令以后,寄存器和内部RAM的状态。 MOV R0,#30H;数30H送入R0 MOV 30H,#40H;数40H送入片内RAM 30H单元 MOV 31H,#50H;数50H送入片内RAM 31H单元 INC R0;将片内RAM 30H单元中的内容 加1 INC R0;将R0中的内容加1 INC R0;将片内RAM 31H单元中的内容 加1解:分析结果:(R0)=31H (30H)=41H (31H)=51H 第38页/共53页 6.3.1 逻辑“与”、“或”、“异或”指令 6.3.2
24、清零、取反指令 6.3.3 循环移位指令 6.3.4 逻辑运算类指令应用实例 6.3 逻辑操作指令第39页/共53页6.3.1 6.3.1 逻辑逻辑“与与”、“或或”、“异或异或”指令指令1. 逻辑“与”指令 汇编指令格式 机器指令格式 操 作 ANL A,Rn 58H5FH A (A)(Rn) ANL A,direct 55H direct A (A)(direct) ANL A,Ri 56H57H A (A)(Ri) ANL A,#data 54H data A (A)#data ANL direct,A 52H direct direct (direct)(A) ANL direct,#
25、data 53H direct data direct (direct)#data注意:后2条指令若直接地址正好是I/O端口P0P3,则为端口的“读改写”操作。前4条指令的操作影响标志位P。 第40页/共53页6.3.1 6.3.1 逻辑逻辑“与与”、“或或”、“异或异或”指令指令2. 逻辑“或”指令 汇编指令格式 机器指令格式 操 作 ORL A,Rn 48H4FH A (A)(Rn) ORL A,direct 45H direct A (A)(direct) ORL A,Ri 46H47H A (A)(Ri) ORL A,#data 44H data A (A)#data ORL dire
26、ct,A 42H direct direct (direct)(A) ORL direct,#data 43H direct data direct (direct)#data注意:后2条指令若直接地址正好是I/O端口P0P3,则为端口的“读改写”操作。前4条指令的操作影响标志位P。 第41页/共53页6.3.1 6.3.1 逻辑逻辑“与与”、“或或”、“异或异或”指令指令3. 逻辑“异或”指令 汇编指令格式 机器指令格式 操 作 XRL A,Rn 68H6FH A (A)(Rn) XRL A,direct 65H direct A (direct)(A) XRL A,Ri 66H67H A
27、(A)(Ri) XRL A,#data 64H data A (A)#data XRL direct,A 62H direct direct (direct)(A) XRL direct,#data 63H direct data direct (direct)#data注意:后2条指令若直接地址正好是I/O端口P0P3,则为端口的“读改写”操作。前4条指令的操作影响标志位P。 第42页/共53页6.3.2 6.3.2 清零、取反指令清零、取反指令 1. 累加器A清0指令 汇编指令格式 机器指令格式 操 作 CLR A E4H A 0注意:该操作影响标志位P。2. 累加器A取反指令 汇编指令格
28、式 机器指令格式 操 作 CPL A F4H A ( )对累加器A的内容逐位取反,不影响标志位。 注意:该操作不影响标志位P。A第43页/共53页6.3.3 6.3.3 循环移位指令循环移位指令 1. 累加器A循环左移指令 汇编指令格式 机器指令格式 操 作 RL A23H 注意:该操作不影响PSW标志位。2. 累加器A循环右移指令 汇编指令格式 机器指令格式 操 作 RR A03H 注意:该操作不影响PSW标志位。第44页/共53页6.3.3 6.3.3 循环移位指令循环移位指令 3. 累加器A带进位循环左移指令 汇编指令格式 机器指令格式 操 作 RLC A 33H 注意:该操作影响标志位
29、P和CY。4. 累加器A带进位循环右移指令 汇编指令格式 机器指令格式 操 作 RRC A 23H 注意:该操作影响标志位P和CY 。第45页/共53页6.3.4 6.3.4 逻辑运算类指令应用实例逻辑运算类指令应用实例 【例16】 将P1口的P1.2、P1.3、P1.7清零,其余位不变。 解:相应的指令为: ANL P1,#01110011B【例17】 利用逻辑运算指令将P1口的P1.1、P1.3、P1.5置1,其余位保持不变。 解:相应的指令为: ORL P1,#00101010B【例18】 利用逻辑运算指令,将内部RAM中40H单元的1、3、5、7位取反,其他位保持不变。 解:相应指令为: XRL 40H,#0AAH;0AAH=10101010B第46页/共53页6.3.4 6.3.4 逻辑运算类指令应用实例逻辑运算类指令应用实例 【例19】 利用逻辑运算指令将当前工作寄存器设定为第3组工作寄存器。 解:相应指令为: ORL PSW,#00011000B【例20】 无符号8位二进制数(A)=00111101B=3DH,CY=0。试分析执行“RLC A”指令后累加器A的内容。 解:执行指令“RLC A”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年10月25日重庆事业单位联考《职业能力倾向测验(D类)》试题及答案
- 2026 年办公耗材缺货应急采购机制汇报材料
- 2026年度合作协议续签确认函7篇
- 2026年成人高考专升本政治时政基础试题及答案
- 2026年共青团入团考试入团准则试题与答案解析
- 心理健康课:调节情绪的方法小学生必知的小学主题班会课件
- 2026年共青团入团特训刷题考试题库附答案
- 2026年共青团入团考点考试题库及答案
- 2026年消防应急救援指挥培训考试题库消防安全管理信息化安全风险及答案
- 2025年口腔科牙科技师口腔诊疗设备操作技能考核模拟测验答案及解析
- 2025机修工劳动合同样本
- 智慧树知道网课《动物生理学(华南农业大学)》课后章节测试答案
- 2024八年级道德与法治上册知识点
- 2025 年小升初济南市初一新生分班考试数学试卷(带答案解析)-(人教版)
- 技改大修工程项目管理手册与实践经验分享
- 【初中数学】学霸笔记手写版
- 金华市开发区数学试卷
- 部编版六年级下册教案设计(全册)
- 低碳烯烃生产技术
- 小学作业公示管理制度
- 2025年高压电工作业模拟考试题库试卷及答案
评论
0/150
提交评论