单片机例题课件

上传人:风*** 文档编号:242762642 上传时间:2024-09-03 格式:PPT 页数:20 大小:600.96KB
返回 下载 相关 举报
单片机例题课件_第1页
第1页 / 共20页
单片机例题课件_第2页
第2页 / 共20页
单片机例题课件_第3页
第3页 / 共20页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机设 计 例 题,单片机设 计 例 题,1,一、基本结构程序,例1 假定在外部,RAM,中有,ST1、ST2,和,ST3,共3个连续单元,其中,ST1、ST2,单元中分别存放着两个8位无符号数,要求找出其中的大数并存入,ST3,单元。,分析:两个无符号数的大小比较可利用两数相减是否有借位来判断,流程图和程序如下所示:,一、基本结构程序,2,例1参考程序如下:,START: CLRC,MOV DPTR,#ST1,MOVX A,DPTR,MOV R7,A,INC DPTR,MOVX A,DPTR,SUBB A,R7JC BIG1MOVX A,DPTR,SJMPBIG2,BIG1:XCH A,R7,BIG2:INC DPTR,MOVX DPTR,A,SJMP ,例1参考程序如下:,3,例,2,、多字节无符号数的加法。设两个被加数已分别存放于以,ADR1,与,ADR2,为首地址的片内数据存贮器中,自低字节起由低至高依次存放。设它们的字节数为,L,,要求和存放于原放被加数的单元。,例2、多字节无符号数的加法。设两个被加数已分别存放于以ADR,4,解:,核心指令,ADDC,MOV R0,#ADR1,MOV R1,,,#ADR2,MOV R2,,,#L,CLR C,LOOP,:,MOV A,,,R0,ADDC A,,,R1,MOV R0,,,A,INC R0,INC R1,DJNZ R2,,,LOOP,问题:使用指令,ADD,也可以吗?,;?,解:核心指令 ADDC问题:使用指令ADD,5,例3、设,a,存放在累加器,A,中,,b,存放在寄存器,B,中,要求按下式,计算,Y,值,并将结果,Y,存于累加器,A,中,试编写程序。,a-b (a0),Y =,a+b (a NB,时,将内部,RAM,的42,H,单元清0;否则,将该单元置成全1,试编程。,解法,I:,因为无16位数的比较指令,所以,只能用8位数的比较,指令。,(画出流程框图),例4、设有两个16位无符号数NA,NB分别存放在8031单片,7,解:,ORG 2000H,CMP:MOV A,50H,CJNE A,40H,CMP1,MOV A,51H,CJNE A,41H,CMP1,SJMP NHIGHE,CMP1:JC HIGHE,NHIGHE:MOV 42H,#0FFH,SJMP DONE,HIGHE:MOV 42H,#00H,DONE:SJMP ,END,解:ORG 2000H,8,解法,II:,先假设,NA NB,,再来判断是否,NA NB,ORG 3000H,CMP2:MOV R0,#00H,MOV A,50H,CJNE A,40H,CMP3,MOV A,51H,CJNE A,41H,CMP3,SJMP NHIGHE,CMP3:JC HIGHE,NHIGHE:MOV R0,#0FFH ;,不大于标志,HIGHE:MOV 42H,R0,SJMP ,END,解法II:先假设NA NB,再来判断是否NA NB,9,例,5,:找最大数,(,单字节无符号数,),编制说明,R0,:存放一批数的首址指针;,R2,字节数,解:,MAX: MOVA,,,R0,;存首址指针,MOVR1,,,A,DECR2,;,?,MOVA,,,R1,LP0,:,MOVR3,,,A,DECR1,CLRC,SUBBA,,,R1,;比较,JNCLP1,MOVA,,,R1,;换最大数,SJMPLP2,开始,取表首单元作为最大数,R3,表中顺序取一个数,(R3),大?,大数换入,R3,比较结束?,存最大数,返回,Y,N,例5:找最大数(单字节无符号数)编制说明开始取表首单元作为最,10,LP1,:,MOVA,,,R3,LP2,:,DJNZR2,,,LP0,MOVR0,,,A,RET,LP1:MOVA,R3,11,例,6,:单字节无符号数的排序程序,编制说明:,R0,:存放一批数据的首址指针;,R2,:字节数,将这批数按从小到大的次序排列。,00H,位为发生交换的标志,只有当没有发生交换时,才算排序结束。,例6:单字节无符号数的排序程序编制说明:,12,开始,交换标志清零,顺序取一个数,指针加一,再顺序取一个数,后数小?,交换,交换标志置位,比较一遍?,有交换标志?,返回,N,Y,N,开始交换标志清零顺序取一个数指针加一再顺序取一个数后数小?交,13,ROLE1,:,MOVA,,,R0,MOVR1,,,A,MOVA,,,R2,MOVR5,,,A,CLR00H,DECR5,MOVA,,,R1,LP0,:,MOVR3,,,A,INCR1,CLRC,;比较,MOVA,,,R1,SUBBA,,,R3,JNCLP1,SETB00H,MOVA,,,R3,XCHA,,,R1,DECR1,XCHA,,,R1,INCR1,LP1,:,MOVA,,,R1,DJNZR5,,,LP0,JB00H,,,ROLE1,RET,CLRC;比较,14,例,7,计算50个8位二进制数(单字节)之和。,要求:,50个数存放在30,H,开头的内部,RAM,中,和放在,R6R7,中。,分析:,采用,DJNZ,循环体的流程框图如下页所示,在参考程序中,,R0,为数据地址指针,,R2,为减法循环计数器。,需要指出的是,在使用,DJNZ,控制时,循环计数器初值不能为0,当为0时,第一次进入循环执行到,DJNZ,时,减1使,R2,变为,FFH,,循环次数成了256,显然不合题意。,例7 计算50个8位二进制数(单字节)之和。,15,例,8,把内部,RAM,中从,ST1,地址开始存放的数据传送到以,ST2,开始的存储区中,数据块长度未知,但已知数据块的最后一个字节内容为00,H,,而其它字节均不为0。并设源地址与目的地址空间不重复。 分析:显然,我们可以利用判断每次传送的内容是否为 0 这一条件来控制循环。也可用,CJNE,来比较与0是否相等设计。 利用判,A,转移控制的循环流程图如下图所示。,例8 把内部RAM中从ST1地址开始存放的数据传送到以ST,16,例,8,参考程序如下:,START:MOVR0,#ST1,MOV R1,#ST2,LOOP:MOV A,R0,JZ ENT,MOV R1,A,INC R0,INC R1,SJMP LOOP,ENT:RET,例8 参考程序如下:,17,二、控制流程设计,单片机的控制系统中,为了实现系统的自动控制,必须将控制现场的信息输入到单片机,经过计算机的处理以后以被控对象能够接受的形式输出到执行机构,实现对现场的控制。,例,9,电机的简单起停控制;其框图如下页图,a,所示,1,)分析:,简单的电机起动停止控制,其控制的示意图及,I/O,分配如图,b,所示。,输入信号:,启动按钮,SB1,、,停止按钮,SB2,输出信号:,继电器,KA,二、控制流程设计,18,假定:按下按钮,相应的接口信号为低电平,(,P1.1=0),时;,若,:程序使,P1.3=1,,即,KA = 1,;,则,:电机启动。,2),按照上述的控制思路,我们可以方便的画出流程图,如下图所示。,假定:按下按钮,相应的接口信号为低,19,ORG 1000H,STR: MOVP1,#00000110B,WT1:JB P1.1,WT1;,启动?,SETB P1.3;,电机启动,WT2:JB P1.2,WT2;,停止?,CLR P1.3;,电机停止,SJMP WT1,END,ORG 1000H,20,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


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

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


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