




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.,3.5 单片机控制水箱水位,学习目标: 通过学习任务的完成方法,学习MCS-51单片机的位操作指令。 任务描述: 消防水箱总是要保证有一定的水位,以防火灾发生,如果单纯靠人工操作,时间不允许,而且还会有险情发生。如果用单片机来代替人工就可以解决这个问题。,.,硬件电路,.,电路中: 1)输出:P1.0=1时,M放水; P1.0=0时,M关 2)输入:水位B, T1、T2导通 P1.1=0,P1.2=0 A水位0 Y = 100 X=0 X X0 求出Y值,将Y值存入31H单元。 解:根据数据的符号位判别该数的正负,若最高位为0,再判别该数是否为0。程序流程如图4-4所示。,.,图4-4 例
2、4.3程序流程图,Y,.,ORG 2000H MOV A,30H ;取数 JB ACC.7,NEG;负数,转NEG JZ ZER0 ;为零,转ZER0 ADD A,#02H ;为正数,求X+2 AJMP SAVE ;转到SAVE,保存数据 ZER0:MOV A,# 64H ;数据为零,Y=100 AJMP SAVE ;转到SAVE,保存数据 NEG:CPL A ;求X SAVE:MOV 31H,A ;保存数据 SJMP ;暂停 END,返回本节,.,3. 循环结构,(1)循环程序的结构(如图4-5所示) 循环程序一般包括如下四个部分: 初始化 循环体 循环控制 结束 循环程序按结构形式,有单重
3、循环与多重循环。 在多重循环中,只允许外重循环嵌套内重循环。 不允许循环相互交叉,也不允许从循环程序的外部跳入循环程序的内部(如图4-6所示)。,.,图4-5 循环结构程序流程图,返回,.,图4-6 多重循环示意图,返回,.,(2)循环结构程序设计举例,【例4.5】试编程实现将单片机的2000H 20FFH单元内容清零。 解:设置一个计数器R1控制循环次数,每清零一次,计数器加1。程序流程如下图所示。,.,.,ORG 0100H MOV DPTR,#2000H MOV R0,#00H MOV A,#00H L1:MOVX DPTR,A INC DPTR INC R0 CJNE R0,#00H,
4、L1 SJMP $ END,.,【例4.5】在单片机内部RAM50H60H单元中 存放一组数,试编程找出其中最大数 并将该数送2FH单元中。 解:设置一个计数器R1控制循环次数,每处理完一个数据,计数器减1。程序流程如图4-7所示。,.,图4-7 例4.5的程序流程图,.,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 S
5、JMP $ END,LOOP :,.,【例4.6】已知在ROM1000H104FH单元中存 放一组各不相同的8位二进制数,试 编写程序找出其中是否有数据为 88H,若有,将该数所在存储单元的 地址送入R1、R0中,否则R1、R0清 零。 解:程序流程如图4-8所示。,.,图4-8 例4.6的程序流程图,.,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:
6、 INC DPTR DJNZ R2,AGAIN MOV R0,#00H MOV R1,#00H L1:SJMP L1 END,.,【例4.7】50ms延时 设晶振频率为12MHZ,则一个机器周期为1s,执行一条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,返回本节,.,4. 子程序,( 1)子程序概念 将在程序中可能多次出现的操作,用独立的、标 准化的通用程序段表示。 所谓调用子
7、程序,暂时中断主程序的执行,而转 到子程序的入口地址去执行子程序。如图4-9所 示。 调用子程序应注意: 子程序占用的存储单元和寄存器。 参数的传递。 子程序经过调用后得到的数据来完成程序之间的 参数传递。 嵌套调用与递归调用。如图4-10所示。,.,图4-9 子程序的调用与返回,返回,.,图4-10 子程序的嵌套调用与返回,返回,.,(2)子程序设计举例 【例4.7】编写程序,实现c=a2+b2,设a,b,c分别 存于DA,DB,DC单元中。 解:ORG 1000H MOV A,DA ACALL SQR MOV R1,A MOV A,DB ACALL SQR,.,ADD A,R1 MOV DC,A SJMP $ SQR:MOV DPTR,#AA MOVC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业员工收礼管理办法
- 保安月度奖金管理办法
- 2025年内蒙古商贸职业学院单招职业倾向性测试题库荐含答案
- 卫生健康综合监督课件
- 2025年青岛市税务系统遴选面试真题附解析含答案
- 2025年浙江出租车上岗证模拟考试含答案
- 儿童练字教学课件图片
- 2025年度南漳县招聘高中笔试备考试题含答案详解(培优a卷)
- 脓毒血症病例分析总结
- 婴幼儿护理与喂养指南
- 2025年河南省中考数学真题试卷及答案解析
- 2025春季学期国开电大专科《建筑施工技术》一平台在线形考(形考任务1至4)试题及答案
- 2025贵州省水利投资(集团)有限责任公司招聘84人笔试备考题库附答案详解(模拟题)
- 驻场运维合同协议书
- 2025年电动叉车项目立项申请报告范文
- T/CGAS 026.1-2023瓶装液化石油气管理规范第1部分:安全管理
- 2025年数字化营销考试试卷及答案的建议
- 陕投集团招聘笔试题库2025
- 辽宁省文体旅集团所属两家企业招聘笔试题库2025
- DB3205T 1174-2025学龄儿童青少年视力筛查及建档规范
- 公考宪法知识试题及答案
评论
0/150
提交评论