单片机汇编语言的循环程序设计

上传人:猪** 文档编号:243322913 上传时间:2024-09-20 格式:PPT 页数:19 大小:317KB
返回 下载 相关 举报
单片机汇编语言的循环程序设计_第1页
第1页 / 共19页
单片机汇编语言的循环程序设计_第2页
第2页 / 共19页
单片机汇编语言的循环程序设计_第3页
第3页 / 共19页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机汇编语言的循环程序设计,复习,顺序程序设计,程序,按顺序一条一条,地执行指令,。,分支程序设计,程序分支是通过,条件转移指令,实现的,即根据条件对程序的执行进行判断、,满足条件,则进行程序,转移,,,不满足条件,就,顺序,执行程序。例如:,JZ KS,循环程序设计,在程序运行时,有时需要,连续重复执行某段程序,,可以使用循环程序。,例如,延时程序,若单片机的晶振频率为,12MHz,,则一个机器周期为,1s,。执行一条,DJNZ,指令,需要,2,个机器周期,即,2s,。循环执行,DJNZ,指令,可实现一定时间的延时。,MOV R6,,,#50,DJNZ R6,,,DEL1,DEL1,:,;,1us,;,2us*50=100us,本段程序延时时间为,:,1+100=101us,单循环最长延时时间为:,1+256*2=,513us,片内,RAM,片外,RAM,buffer,a,b,s,r,t,$,data,数据块传送程序,a,b,s,r,t,buffer,循环程序结构包括四部分:,1,、置循环初值,2,、循环体(循环工作部分),3,、修改控制变量,4,、循环控制部分,其组织方式如图所示。,1,、置循环初值,对于循环程序中所使用的工作单元,在循环开始时应置初值。,例如,,工作寄存器设置计数初值,累加器,A,清,0,,以及设置地址指针、长度等。,延时程序中:,MOV R6,,,#50,数据块传送程序中:,MOV R0,,,#data,MOV DPTR,,,#buffer,2,、循环体(循环工作部分),重复执行的,程序段,部分,分为,循环工作,部分和,循环控制,部分。,延时程序中:,DEL1,:,DJNZ R6,,,DEL1,数据块传送程序中:,MOVX,DPTR,,,A,3,、修改控制变量,在循环程序中,必须给出循环结束条件。,常见的是,计数循环,,当循环了一定的次数后,就停止循环。,在单片机中,一般用一个工作寄存器,Rn,作为计数器,,对该计数器赋初值作为循环次数。每循环一次,计数器的值减1,即修改循环控制变量,当计数器的值减为0时,就停止循环。,延时程序中:,DEL1,:,DJNZ R6,,,DEL1,数据块传送程序中:,INC R0,INC DPTR,3,、修改控制变量,4,、循环控制部分,根据循环结束条件,判断是否结束循环。,循环控制部分,每循环一次,,检查,结束条件,,当满足条件时,就停止循环,往下继续执行其他程序,89C51,可采用,DJNZ,指令,来自动修改控制变量并能结束循环。,延时程序中:,DEL1,:,DJNZ R6,,,DEL1,数据块传送程序中:,MOV A,,,R0,4,、循环控制部分,CJNE A,,,#,?,,,LOOP1,CJNE A,,,#,24H,,,LOOP1,置初值,循环体,循环修改,循环结束否?,退出循环,否,是,(,a,)先执行后判断,置初值,循环体,循环修改,循环结束否?,退出循环,否,是,(,b,)先判断后执行,循环组织方式流程图,一、先执行后判断,例,1,编程实现,50ms,的延时程序。,采用循环计数法实现延时,循环次数可以通过计算获得,并选择,先执行后判断,的循环结构。,50ms,延时程序如下页:,分析计算计数器初始值,50ms=50000,s,=,(,250200,),s,令(,R7,),=200,,假设,(R6)=N,则根据程序结构,则,1,+(2N)+,2,s,=250,s,则,N=123,则,1,+,1,+(2N)+,2,s,=250,s,即(,R6,),=123,一、先执行后判断,DEL,:,MOV R7,,,#200,;,1,s,DEL1,:,DJNZ R6,,,DEL1,;,2s,,计(,2N,),s,DJNZ R7,,,DEL2,;,2s,RET,;,2s,共计,1,+,(,1,1,2123,2,),200+,2,s,,,即,50.003ms,双重循环,最长延时时间为:,1+,(,2256,2,2,),256+2,s,即,132.099ms,DEL2,:,MOV R6,,,#123,;,1,s,NOP,;,1,s,DEL2,:,MOV R6,,,#N,;,1,s,DEL1,:,DJNZ R6,,,DEL1,;,2s,,计(,2123,),s,NOP,;,1,s,二、先判断后执行,例,2,将内部,RAM,中起始地址为,data,的数据串传送到外部,RAM,中起始地址为,buffer,的存储区域内,直到发现,$ ,字符停止传送。,程序段如下页:,分析:结合前述循环程序的四个组成部分,由于,循环次数事先不知道,,但循环条件可以测试到。所以,采用,先判断后执行,的结构比较适宜。,MOV R0,,,#data,MOV DPTR,,,#buffer,LOOP0,:,MOV A,,,R0,SJMP,LOOP2,;是,$ ,字符,转其它程序,CJNE A,,,#24H,,,LOOP1,;判断是否为,$ ,字符,LOOP1,:,MOVX DPTR,,,A,;不是,$ ,字符,执行传送,INC R0,INC DPTR,SJMP,LOOP0,;传送下一数据,LOOP2,:, ,小结,循环程序的结构,循环程序组织方式,作业:,1.,编一段,10ms,的延时子程序,2.,编,程序实现统计片内,RAM,中以,data,为首地址存放的一个以,$ ,字符为结尾的 字符串的长度并送,NUM,单元,谢谢各位!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


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

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


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