单片机程序设计ppt课件

上传人:仙*** 文档编号:189526816 上传时间:2023-02-22 格式:PPT 页数:35 大小:973.50KB
收藏 版权申诉 举报 下载
单片机程序设计ppt课件_第1页
第1页 / 共35页
单片机程序设计ppt课件_第2页
第2页 / 共35页
单片机程序设计ppt课件_第3页
第3页 / 共35页
资源描述:

《单片机程序设计ppt课件》由会员分享,可在线阅读,更多相关《单片机程序设计ppt课件(35页珍藏版)》请在装配图网上搜索。

1、内容提要:内容提要:3-1 程序设计简介3-2 顺序程序的设计3-3 分支程序的设计3-4 循环程序的设计3-5 常用子程序引见3-6 查表程序的设计工程引入工程引入1.工程描画工程描画将将09这十个数循环送这十个数循环送P1口七段口七段LED上显示上显示。2.硬件电路与任务原理硬件电路与任务原理让学生根据义务分析硬件要求,画出详细电路,让学生根据义务分析硬件要求,画出详细电路,并在实验开发板上接线并在实验开发板上接线3.程序设计给出控制程序程序设计给出控制程序 8051 START:ORG 0100H MAIN:MOV R0,#00H MOV DPTR,#TABLE DISP:MOV A,R

2、0 MOVC A,A+ADPTR MOV P1,A ACALL DELAY INC R0 CJNE R0,#0AH,DISP AJMP MAIN DELAY:MOV R1,#0FFH LOOP0:MOV R2,#0FFH LOOP1:DJNZ R2,LOOP1 DJNZ R1,LOOP0 RET TABLE:DB 0C0H,0F9H,DB 0A4H,0B0H DB 99H,92H DB 82H,0F8H DB 80H,90H END LED显示电路控制程序单片机汇编言语程序设计的根本步骤如下:1 题意分析。熟习并了解汇编言语指令的根本格式和主要特点,明确被控对象对软件的要求,设计出算法等。2

3、画出程序流程图。编写较复杂的程序,画出程序流程图是非常必要的。程序流程图也称为程序框图,是根据控制流程设计的,它可以使程序明晰,构造合理,便于调试。3 分配内存任务区及有关端口地址。分配内存任务区,要根据程序区、数据区、暂存区、堆栈区等估计所占空间大小,对片内外存储区进展合理分配并确定每个区域的首地址,便于编程运用。3-1 3-1 程序设计简介程序设计简介4 编制汇编源程序。5 仿真、调试程序。6 固化程序。程序编写做到:占用存储空间少;运转时间短;程序的编制、调试及排错所需时间短;构造明晰,易读、易于移植。按构造化程序设计思想,任何复杂程序都可由按构造化程序设计思想,任何复杂程序都可由顺序构

4、造、顺序构造、分支构造、分支构造、循环构造等构成。循环构造等构成。语句 3语句 2顺序构造顺序构造 入口入口语句 1 出口出口分支构造分支构造入口入口条件满足否?分支 1 出口出口YN 分支 2循环构造循环构造入口入口 处置 修正条件条件满足否?Y 出口出口N 简单程序也就是顺序程序,它是最简单、最根本的程序构造,其特点是按指令的陈列顺序一条条地执行,直到全部指令执行终了为止。不论多么复杂的程序,总是由假设干顺序程序段所组成的。本节经过实例引见简单程序的设计方法。例3.1 4字节双字加法。将内部RAM 30H开场的4个单元中存放的4字节十六进制数和内部RAM 40H单元开场的4个单元中存放的4

5、字节十六进制数相加,结果存放到40H开场的单元中。3-2 3-2 简单顺序程序的设计简单顺序程序的设计 1 题意分析。题意分析。标题的要求如图标题的要求如图3.1所示。所示。30H31H33H32H43H42H41H40H4FH23HABHA0H 7BH 56H 80H E8H加数 1 存放处加数 2 存放处43H42H41H40HCAH79H2BH89H相加结果存放处A 0A B 234FE880567B892B 79C A1图图3.1 例例3.1题意分析表示图题意分析表示图 ORG 0000H LJMP MAIN MAIN:ORG 0080HMOV A,30HADD A,40HMOV 40

6、H,A;最低字节加法并送结果MOV A,31HADDCA,41HMOV 41H,A;第二字节加法并送结果2 汇编言语源程序。汇编言语源程序。按照双字节加法的思绪,实现按照双字节加法的思绪,实现4字节加法字节加法的源程序如下:的源程序如下:MOV A,32HADDC A,42HMOV 42H,A;第三字节加法并送结果MOV A,33HADDCA,43HMOV 43H,A;第四字节加法并送结果,进位 SJMP$;位在CY中END例例3.2、设在外、设在外RAM的的60H单元存有单元存有1个字节个字节代码,要求将其分解成两个代码,要求将其分解成两个4位字段,高位字段,高4位存位存入原单元的低入原单元

7、的低4位,其低位,其低4位存入位存入61H单元的低单元的低4位,且要求这两个单元的高位,且要求这两个单元的高4位均为位均为0,试编,试编制完好程序。制完好程序。分析:#¥ORG 0000HLJMP MAINORG 0030HMAIN:MOV R0,#30HMOV R1,#40HMOV R7,#08HLOOP:MOV A,R0MOV R1,AINC R0INC R1DJNZ R7,LOOPSJMP$解:中心指令 ANL ORG 1000H MODE:MOV R0,#60H MOVX A,R0 MOV B,A ANL A,#0F0H SWAP A MOVX R0,A MOV A,B ANL A,#

8、0FH INC R0 MOVX R0,A SJMP$END一、分支构造与分支程序设计一、分支构造与分支程序设计构造:根据不同的条件,进展相应的处置。构造:根据不同的条件,进展相应的处置。通常用条件转移指令构成简单分支构造。通常用条件转移指令构成简单分支构造。如:如:判判A=Z 或或 NZ,转移,转移 判判CY=1 或或 0 ,转移,转移 判判bit=1 或或 0 ,转移,转移 CJNE 比较不相等转移比较不相等转移 3-3 3-3 分支程序的设计分支程序的设计例例3.3、设、设a存放在累加器存放在累加器A中,中,b存放在存放存放在存放器器B中,要求按下式中,要求按下式 计算计算Y值,并将结果值

9、,并将结果Y存于累加器存于累加器A中,中,试编写程序。试编写程序。a-b a0 Y=a+b a 0 解:此题关键是判解:此题关键是判a是正数,还是负数;由是正数,还是负数;由ACC.7便知。便知。ORG 1000H BR:JB ACC.7,MINUS CLR C SUBB A,B SJMP DONE MINUS:ADD A,B DONE:SJMP END 分支程序实例分支程序实例 1两分支程序设计两分支程序设计 例例3.4 两个无符号数比较两分支。内部两个无符号数比较两分支。内部RAM的的20H单元和单元和30H单元各存放了一个单元各存放了一个8位无符号数,请比较这位无符号数,请比较这两个数的

10、大小,比较结果显示在实验板上:两个数的大小,比较结果显示在实验板上:假设假设20H30H,那么,那么P1.0管脚衔接的管脚衔接的LED发发光;光;假设假设20H30H,那么,那么P1.1管脚衔接的管脚衔接的LED发发光。光。如何让如何让LED发光?给该引脚送低电平即可。发光?给该引脚送低电平即可。1 题意分析。题意分析。本例是典型的分支程序,根据两个无符号数的比较结果本例是典型的分支程序,根据两个无符号数的比较结果判别条件,程序可以选择两个流向之中的某一个,分别点判别条件,程序可以选择两个流向之中的某一个,分别点亮相应的亮相应的LED。比较两个无符号数常用的方法是将两个数相减,然后判别比较两个

11、无符号数常用的方法是将两个数相减,然后判别有否借位有否借位CY。假设。假设CY=0,无借位,那么,无借位,那么XY;假设;假设CY=1,有借位,那么有借位,那么XY。程序的流程图如图。程序的流程图如图3.2所示。所示。XY开始结束XY,P1.0灯亮CY1 XY,P1.1 灯亮YN图图3.2 两数比较流程图两数比较流程图 2 汇编言语源程序。汇编言语源程序。X DATA 20H;数据地址赋值伪指令;数据地址赋值伪指令DATA Y DATA 30H ORG0080H MOV A,X;X A CLRC;CY=0 SUBBA,Y;带借位减法,;带借位减法,A-Y-CYA JC L1 ;CY=1,转移到

12、,转移到 L1 CLR P1.0 ;CY=0,20H30H,点亮,点亮P1.0衔接的衔接的LED SJMP FINISH ;直接跳转到终了等待;直接跳转到终了等待 L1:CLR P1.1 ;20H30H,点亮,点亮P1.1衔接的衔接的LED FINISH:SJMP$例例3.53.5:内部:内部RAM30HRAM30H和和31H31H中分别存有中分别存有2 2个个8 8位无符号数,位无符号数,编程找出其中的大数存入内部编程找出其中的大数存入内部32H32H单元中。单元中。ORG ORG0040H0040H MOV MOV A,30H A,30H CLR CLR C C SUBB SUBBA,31

13、HA,31H JC L1 JC L1 ;CY=1CY=1,转移到,转移到 L1 L1 ADD A,31H ADD A,31H MOV 32H,A MOV 32H,ASJMPSJMP FINISH FINISH ;直接跳转到终了等待;直接跳转到终了等待 L1:MOV A,31H L1:MOV A,31H MOV 32H,A MOV 32H,A FINISH:SJMP$FINISH:SJMP$3 执行结果。执行结果。执行该程序之前,利用单片机开发系统先往内部执行该程序之前,利用单片机开发系统先往内部RAM的的20H和和30H单元存放两个无符号数可以恣意设定,执行单元存放两个无符号数可以恣意设定,执

14、行后察看点亮的后察看点亮的LED能否和存放的数据大小相一致。能否和存放的数据大小相一致。可以经过伟福仿真软件看到程序执行的结果。必需留意:可以经过伟福仿真软件看到程序执行的结果。必需留意:要有初始值。要有初始值。循环构造不但使程序简练,而且大大节省存储空间。循环构造不但使程序简练,而且大大节省存储空间。循环程序包含四部分:循环程序包含四部分:、初始化部分循环计数器、地址指针初始化、初始化部分循环计数器、地址指针初始化、循环处置部分主体,需求反复执行的部分、循环处置部分主体,需求反复执行的部分 、循环控制部分修正地址指针、修正变量、检测、循环控制部分修正地址指针、修正变量、检测循环终了条件循环终

15、了条件、循环终了部分对结果分析、处置,存放结果、循环终了部分对结果分析、处置,存放结果3-4 3-4 循环程序的设计循环程序的设计先处置,后判别:先处置,后判别:开场初始化部分处置部分修正变量循环终了?终了部分终了先判别,后处置:先判别,后处置:开场初始化部分修正变量循环终了?终了部分终了处置部分循环有:单循环、多重循环。循环有:单循环、多重循环。循环次数,可用计数器控制循环次数;循环次数,可用计数器控制循环次数;循环次数未知,按问题条件控制循环能否终了。循环次数未知,按问题条件控制循环能否终了。1、单循环程序、单循环程序1循环次数是的程序循环次数是的程序例例3.6、片内、片内RAM的的40H

16、单元开场依次存放单元开场依次存放10个个8位无符号二位无符号二进制数,要求找出其中的最大数存入进制数,要求找出其中的最大数存入3FH单元中,试编程。单元中,试编程。解:先将第一个数和第二个数比较,大者送入累加器解:先将第一个数和第二个数比较,大者送入累加器A中,然中,然后拿累加器中后拿累加器中A的数与第三个数比较,依次比较下去。最后累的数与第三个数比较,依次比较下去。最后累加器加器A中剩下的是最大数。中剩下的是最大数。比较大小用减法指令,留意恢复累加器比较大小用减法指令,留意恢复累加器A中的原来的大数。中的原来的大数。START:MOV R2,#09H;循环计数初值循环次数;循环计数初值循环次

17、数 MOV R0,#40H ;地址指针初值;地址指针初值 MOV A,R0 ;取数;取数 LOOP:INC R0;调整地址指针;调整地址指针 CLR C SUBB A,R0 JC NEXT1 ;CY1后者大转后者大转NEXT1 ADD A,R0;恢复;恢复A中的原来大数中的原来大数 SJMP NEXT2 NEXT1:MOV A,R0;大数送给大数送给A NEXT2:DJNZ R2,LOOP;控制循环次数控制循环次数 MOV 3FH,A SJMP$P101页延时程序例子页延时程序例子延时50毫秒的子程序。DEL:MOV R7,#200DEL1:MOV R6,#123 NOP DEL2:DJNZ

18、R6,DEL2;2001232us 49.2ms DJNZ R7,DEL1 RETDEALY:MOV R7,#20DEL3:MOV R6,#123DEL2:MOV R5,#200 NOP DEL1:DJNZ R5,DEL1 DJNZ R6,DEL2 DJNZ R7,DEL3 RET约为延时1秒子程序START:MOV R2,#08H;设置循环次数;设置循环次数 MOV A,#0FEH;从;从P1.0P1.7使使LED逐逐 ;个亮过去;个亮过去NEXT:MOV P1,A ;点亮;点亮LED LCALL DEALY RL A DJNZ R2,NEXT;次数减;次数减1,不为零,继续,不为零,继续

19、;点亮下一个;点亮下一个LED SJMP STARTDEALY:MOV R7,#20HP1口循环点亮发光二极管程序口循环点亮发光二极管程序3-5 3-5 常用子程序引见常用子程序引见步骤:1、确定子程序称号,即入口标号。2、确定子程序的输入/输出参数。3、确定所用的存放器和存储单元,以便现场维护。断点维护由指令自动完成。4、确定子程序的算法,编写源程序。例3.7:多字节BCD数加法。子程序:ADDB:PUSH PSW PUSH ACC CLR CLOOP:MOV A,R0 ADDC A,R1 DA A MOV R0,A INC R0 INC R1 DJNZ R2,LOOP POP ACC PO

20、P PSW RET4字节字节BCD数相加主程序:数相加主程序:MOVR0,#20HMOVR1,#30HMOVR2,#04HLCALLADDB3-6 3-6 查表程序查表程序1、查表用指令 MOVC A,A+DPTR MOVC A,A+PC例3.8:用查表发求09的平方MOV DPTR,#TABMOVC A,A+DPTRRETTAB:DB 00,01,04,09,16DB 25,36,49,64,81ADD A,#1MOVC A,A+PCRETTAB:DB 00,01,04,09,16DB 25,36,49,64,81本章小结本章小结1、汇编程序的三种根本构造和各自特点2、分支程序常用的判别语句3、循环程序设计的思绪和组成4、延时程序设计的思绪作业作业P1182、5、7、8、9、16

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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