单片机程序设计例题.ppt

上传人:sh****n 文档编号:6352965 上传时间:2020-02-23 格式:PPT 页数:13 大小:286.36KB
返回 下载 相关 举报
单片机程序设计例题.ppt_第1页
第1页 / 共13页
单片机程序设计例题.ppt_第2页
第2页 / 共13页
单片机程序设计例题.ppt_第3页
第3页 / 共13页
点击查看更多>>
资源描述
单片机程序设计例题主讲 钱锐 一 基本结构程序例1假定在外部RAM中有ST1 ST2和ST3共3个连续单元 其中ST1 ST2单元中分别存放着两个8位无符号数 要求找出其中的大数并存入ST3单元 分析 两个无符号数的大小比较可利用两数相减是否有借位来判断 流程图和程序如下所示 例1参考程序如下 START CLRCMOVDPTR ST1MOVXA DPTRMOVR7 AINCDPTRMOVXA DPTRSUBBA R7JCBIG1MOVXA DPTRSJMPBIG2BIG1 XCHA R7BIG2 INCDPTRMOVX DPTR ASJMP 例2计算50个8位二进制数 单字节 之和 要求 50个数存放在30H开头的内部RAM中 和放在R6R7中 分析 采用DJNZ循环体的流程框图如下页所示 在参考程序中 R0为数据地址指针 R2为减法循环计数器 需要指出的是 在使用DJNZ控制时 循环计数器初值不能为0 当为0时 第一次进入循环执行到DJNZ时 减1使R2变为FFH 循环次数成了256 显然不合题意 例2流程 程序如下 START MOVR6 0MOVR7 0MOVR2 50MOVR0 30HLOOP MOVA R7ADDA R0MOVR7 ACLRAADDCA R6MOVR6 AINCR0DJNZR2 LOOPSJMP 例3设计1秒延时子程序 假设fosc 12MHz 分析 软件延时与指令的执行时间关系密切 在使用12MHz晶振时 一个机器周期的时间为1us 执行一条DJNZ指令的时间为2us 我们可以采用三重循环的方法写出延时1秒的子程序流程 程序如下图所示 例3的流程 程序如下DELAY MOVR7 10 DL3 MOVR6 200 DL2 MOVR5 250 DL1 DJNZR5 DL1 DJNZR6 DL2 DJNZR7 DL3 RET 例4把内部RAM中从ST1地址开始存放的数据传送到以ST2开始的存储区中 数据块长度未知 但已知数据块的最后一个字节内容为00H 而其它字节均不为0 并设源地址与目的地址空间不重复 分析 显然 我们可以利用判断每次传送的内容是否为0这一条件来控制循环 也可用CJNE来比较与0是否相等设计 利用判A转移控制的循环流程图如下图所示 例4参考程序如下 START MOVR0 ST1MOVR1 ST2LOOP MOVA R0JZENTMOV R1 AINCR0INCR1SJMPLOOPENT RET 二 控制流程设计单片机的控制系统中 为了实现系统的自动控制 必须将控制现场的信息输入到单片机 经过计算机的处理以后以被控对象能够接受的形式输出到执行机构 实现对现场的控制 例5电机的简单起停控制 其框图如下页图a所示1 分析 简单的电机起动停止控制 其控制的示意图及I O分配如图b所示 输入信号 启动按钮SB1 停止按钮SB2输出信号 继电器KA 假定 按下按钮 相应的接口信号为低电平 P1 1 0 时 若 程序使P1 3 1 即KA 1 则 电机启动 2 按照上述的控制思路 我们可以方便的画出流程图 如下图所示 ORG1000HSTR MOVP1 00000110BWT1 JBP1 1 WT1 启动 SETBP1 3 电机启动WT2 JBP1 2 WT2 停止 CLRP1 3 电机停止SJMPWT1END 谢谢各位
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!