《单片机原理与应用技术》课件第4章.pptVIP

《单片机原理与应用技术》课件第4章.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

10.利用查表技术将累加器A中的一位BCD码转换为相应的十进制数的7段码,结果仍放在A中(设显示0~9的7段码为40H,79H,24H,30H,19H,12H,02H,78H,00H,1BH)。

11.按下面公式编写程序,x为无符号数(x<128),存放在内部30H单元,y存放在31H单元。本程序将条件(A)>14H转换为(A)≥15H。

例:按下面公式编写程序,x为无符号数(x<128),存放在内部20H单元,y存放在21H单元。源程序如下:3.散转程序

散转程序是分支结构程序中的一种并行分支程序。它是根据某种输入或运算结果,分别转向各个处理程序。在MCS-51单片机中,散转指令为JMP@A?+?DPTR,它按照程序运行时决定的地址执行间接转移指令。例:根据R7中的内容,转向各个子程序。说明:

(1)采用AJMP即把PC指向子程序的起始地址;

(2)??R7+R7=R7×2,与AJMP的机器码匹配,因n<128,不会进位;

(3)如用LJMP,则需R7×3,程序需要作相应修改。图4.2散转程序流程图4.2.3循环程序设计

循环是CPU重复多次地执行一串指令的基本程序结构。它有助于缩短程序,提高程序质量。

循环程序一般由四个部分组成,即循环初始化、循环体、循环控制和循环结束处理部分。其流程图如图4.3所示。

循环初始化:在程序进入循环体之前,需设置某些条件,如循环次数、工作单元清0、变量设置等。图4.3循环程序流程图循环体:循环完成某种功能的主体部分。

循环控制:根据对循环控制变量的修改和判断,确定程序是否继续或结束。

循环结束处理:对循环程序的结果进行存储和进一步处理。

循环控制变量有两种。一是条件控制,它需设置一个变量的给定值作为条件,当计算结果达到条件时结束循环,这时循环次数是不确定的,最常用的指令是CJNE。另一种是递减计数,它首先置一个计数值,每执行一次循环计数值减1,直到计数值为0时结束循环,最常用的指令是DJNZ。

例1:对内部RAM50H开始的10个无符号数求和。

求n个数的和的计算公式为:根据这个公式,很容易设计一种递推算法,其流程图如图4.4(a)所示,两数相加过程如图4.4(b)所示,源程序如下:图4.4递推算法流程图(a)求和程序流程图;(b)两数相加过程说明:程序中以下三条指令所起的作用主要是实现低8位向高8位的进位。

CLR A

ADDCA,R3

?MOVR3,A

例2:多重循环程序。延时50ms子程序(12MHz晶振)。

源程序如下:

DEL:MOV R7,#200

DEL1: MOV R6,#125

DEL2: DJNZ R6,DEL2 ;2μs*125=250μs

DJNZ R7,DEL1 ;0.25ms*200?=50ms

RET说明:以上延时不大精确,它没有考虑到除DJNZR6,DEL2指令外的其它指令。

使用12MHz晶振时,一个机器周期为1μs,执行DJNZ指令为2μs,加其它指令的时间,精确延时应为:

(250+1+2)*200?+?2?=?50.602ms

如将R6的初始值改为123后,则延时为50.002ms。例3:从内部RAM22H单元开始存有一个无符号数数据块,长度n存于21H中。求出数据块中的最小数,存于20H中。

有哪些信誉好的足球投注网站最小值的方法很多,最基本的方法是比较和交换依次进行。即先读第一个数与第二个数进行比较,并把前一个数作为基准数。比较结果若基准数小,则不进行交换,再取下一个数进行比较;若基准数大,则将小数取代原基准数,即作一次交换,然后再以新的基准数与下一个数进行比较。直至全部数据块比较完毕,基准数为最小数。此算法的流程图如图4.5所示。图4.5求最小数算法程序流程图式图4.6求最小数程序流程图源程序如下:4.2.4查表程序设计

在用汇编语言设计程序时,有时直接通过查表方式求得变量值,要比通过运算来的简单、方便。MCS-51系列单片机专门提供了两条查表指令:

MOVCA,@A?+?DPTR

MOVCA,@A?+?PC

例1:设有一个巡回检测报警装置,需对16路输入进行控制,每路有一个最大允许值(为双字节)。控制时需根据测量的通道,找出每路的最大值,高、低8位分放于R3、R4。例2:根据A(小于10)中的内容,用PC指针查0~

文档评论(0)

酱酱 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档