收藏 分销(赏)

任务四-消防水箱水位的控制PPT课件.ppt

上传人:胜**** 文档编号:10289626 上传时间:2025-05-16 格式:PPT 页数:59 大小:597KB
下载 相关 举报
任务四-消防水箱水位的控制PPT课件.ppt_第1页
第1页 / 共59页
任务四-消防水箱水位的控制PPT课件.ppt_第2页
第2页 / 共59页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,.,*,3.5,单片机控制水箱水位,学习目标,:通过学习任务的完成方法,学习MCS-51单片机的位操作指令。,任务描述,:,消防水箱总是要保证有一定的水位,以防火灾发生,如果单纯靠人工操作,时间不允许,而且还会有险情发生。如果用单片机来代替人工就可以解决这个问题。,1,.,硬件电路,2,.,电路中:,1),输出:,P1.0=1时,M放水;P1.0=0时,M关,2),输入:,水位B,T1、T2导通,P1.1=0,P1.2=0,A水位0,Y=100X=0,X X0,求出Y值,将Y值存入31H单元。,解:根据数据的符号位判别该数的正负,若最高位为0,再判别该数是否为0。程序流程如图4-4所示。,38,.,A为负数?,取数,A(30H),开始,结束,A=0?,Y,N,N,A,X,A64H,A,X+2,存数,(31H),A,图4-4 例4.3程序流程图,Y,39,.,ORG 2000H,MOVA,30H;取数,JBACC.7,NEG;负数,转NEG,JZZER0 ;为零,转ZER0,ADDA,#02H;为正数,求X+2,AJMP SAVE;转到SAVE,保存数据,ZER0:MOVA,#64H ;数据为零,Y=100,AJMP SAVE ;转到SAVE,保存数据,NEG:CPL A ;求X,SAVE:MOV31H,A ;保存数据,SJMP ;暂停,END,返回本节,40,.,3.循环结构,(1)循环程序的结构(如图,4-5,所示),循环程序一般包括如下四个部分:,初始化,循环体,循环控制,结束,循环程序按结构形式,有单重循环与多重循环。,在多重循环中,只允许外重循环嵌套内重循环。,不允许循环相互交叉,也不允许从循环程序的外部跳入循环程序的内部(如图,4-6,所示)。,41,.,(a)当型循环结构,(b)直到型循环结构,循环结束?,循环体,Y,N,初始化,修改循环参数,结束部分,开始,结束,循环结束?,循环体,Y,初始化,修改循环参数,结束部分,开始,N,结束,图4-5 循环结构程序流程图,返回,42,.,外循环,中循环,内循环,外循环,内循环,外循环,内循环,内循环,(a)嵌套正确,(b)嵌套正确,(c)交叉不正确,图4-6 多重循环示意图,返回,43,.,(2)循环结构程序设计举例,【例4.5】试编程实现将单片机的2000H,20FFH单元内容清零。,解:设置一个计数器R1控制循环次数,每清零一次,计数器加1。程序流程如下图所示。,44,.,45,.,ORG 0100H,MOV DPTR,#2000H,MOV R0,#00H,MOV A,#00H,L1:MOVX DPTR,A,INC DPTR,INC R0,CJNE R0,#00H,L1,SJMP$,END,46,.,【例4.5】在单片机内部RAM50H60H单元中,存放一组数,试编程找出其中最大数,并将该数送2FH单元中。,解:设置一个计数器R1控制循环次数,每处理完一个数据,计数器减1。程序流程如图4-7所示。,47,.,图4-7 例4.5的程序流程图,48,.,ORG 1000H,MOV R0,#50H,MOV R1,#10H,MOV A,R0,INC R0,MOV 40H,R0,MOV B,A,CLR C,SUBB A,40H,JNC LOOP1,MOV A,40H,SJMP LOOP2,LOOP1:MOV A,B,LOOP2:DJNZ R1,LOOP,MOV 2FH,A,SJMP$,END,LOOP:,49,.,【例4.6】已知在ROM1000H104FH单元中存,放一组各不相同的8位二进制数,试,编写程序找出其中是否有数据为,88H,若有,将该数所在存储单元的,地址送入R1、R0中,否则R1、R0清,零。,解:程序流程如图4-8所示。,50,.,图4-8 例4.6的程序流程图,51,.,ORG 0000H,LJMP MAIN,ORG 0100H,MAIN:MOV DPTR,#1000H,MOV R2,#50H,AGAIN:MOV A,#00H,MOVC A,A+DPTR,CJNE A,#88H,LOOP,MOV R1,DPH,MOV R0,DPL,SJMP L1,LOOP:INC DPTR,DJNZ R2,AGAIN,MOV R0,#00H,MOV R1,#00H,L1:SJMP L1,END,52,.,【例4.7】50ms延时,设晶振频率为12MHZ,则一个机器周期为1,s,执行一条DJNZ指令需要2个机器周期。,解:MOV R7,#200,DEL1:MOV R6,#123,NOP,DEL2:DJNZ R6,DEL2;2*123+2 s,DJNZ R7,DEL1;(248+2)*200+1 s,(248+2)*200+1=50.001s,返回本节,53,.,4.子程序,(1)子程序概念,将在程序中可能多次出现的操作,用独立的、标,准化的通用程序段表示。,所谓调用子程序,暂时中断主程序的执行,而转,到子程序的入口地址去执行子程序。如图,4-9,所,示。,调用子程序应注意:,子程序占用的存储单元和寄存器。,参数的传递。,子程序经过调用后得到的数据来完成程序之间的,参数传递。,嵌套调用与递归调用。如图,4-10,所示。,54,.,RET,LCALL SUB,图4-9 子程序的调用与返回,返回,55,.,LCALL A,RET,RET,LCALL B,图4-10 子程序的嵌套调用与返回,返回,56,.,(2)子程序设计举例,【例4.7】编写程序,实现c=a,2,+b,2,,设a,b,c分别,存于DA,DB,DC单元中。,解:ORG1000H,MOVA,DA,ACALL SQR,MOV R1,A,MOV A,DB,ACALL SQR,57,.,ADD A,R1,MOV DC,A,SJMP$,SQR:MOV DPTR,#AA,MOVC A,A+DPTR,RET,AA:DB 0,1,4,9,16,DB 25,36,49,64,81,END,返回本节,58,.,作业 P73 6、8,思考题,什么是伪指令?常用的伪指令有哪些,并指出相应的功能。,本章思考题与作业,59,.,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服