单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt

上传人:b****1 文档编号:13495074 上传时间:2022-10-11 格式:PPT 页数:72 大小:909.50KB
下载 相关 举报
单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt_第1页
第1页 / 共72页
单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt_第2页
第2页 / 共72页
单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt_第3页
第3页 / 共72页
单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt_第4页
第4页 / 共72页
单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt

《单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt(72页珍藏版)》请在冰豆网上搜索。

单片机原理与接口技术(第3版)-第4章C程序设计 PPT文件格式下载.pptPPT文件格式下载.ppt

59,使用汇编语言设计一个程序,大致可分为以下几个步骤:

1)分析题意,明确要求。

2)确定算法。

3)画程序流程图,用图解来描述和说明解题步骤。

4)分配内存单元,确定程序与数据区的存放地址。

5)编写源程序。

6)程序优化。

7)上机调试、修改和最后确定源程序。

4.1.1程序设计的步骤,7,05:

59,4.1.2程序设计的方法,1模块化程序设计2尽量采用循环及子程序结构3自上而下的程序设计,8,05:

59,4.1.3汇编语言的规范,汇编语言源程序由汇编指令和伪指令两者构成。

用汇编语言编写的源程序通常需经过微机汇编程序编译(汇编)成机器码后才能被单片机执行。

为了对源程序汇编,在源程序中必须使用一些“伪指令”。

伪指令是便于程序阅读和编写的指令,它即不控制机器的操作也不能被汇编成机器代码,只是为汇编程序所识别的常用符号,并指导汇编如何进行,故称为伪指令。

9,05:

59,标号:

助记符操作数1,操作数2,操作数3;

注释标号:

标号是指令地址的标识符号。

有了标号,程序中的其它语句才能访问该语句。

有关标号的规定如下。

1)标号由18个ASCII字符组成。

第一个字符必须是字母,其余字符可以是字母、数字或其它特定字符;

2)标号不能使用该汇编语言已经定义了的符号。

如指令助记符、伪指令以及寄存器符号名称等;

3)标号后边必须跟以冒号。

1汇编指令格式,4.1.3汇编语言的规范,-标号,10,05:

59,操作数:

操作数用于给指令的操作提供数据或地址。

在一条汇编语句中操作数可能是空白的,也可能包括两项或三项。

各操作数间用逗号分隔。

操作数字段的内容可能包括工作寄存器、特殊功能寄存器、标号、常数和表达式。

注释:

对程序加以说明,是不可执行部分。

注释字段必须以分号“;

”开头,长度不限,当一行书写不下时,可以换行接着书写,但换行时应注意在开头使用分号“;

”。

4.1.3汇编语言的规范,-操作数,11,05:

59,MCS-51系列单片机的常用伪指令有:

ORG、END、EQU、DB、DW、DS和BIT等。

2伪指令,4.1.3汇编语言的规范,-伪指令ORG,格式:

标号:

ORG16位地址功能:

规定程序块或数据块存放的起始地址。

如:

ORG8000H;

规定下面的第一条指令从地址8000H单元开始存放,即标号START的值为8000HSTART:

MOVA,#30H.,

(1)汇编起始伪指令ORG,12,05:

59,格式:

END表达式功能:

结束汇编。

汇编程序遇到END伪指令后即结束汇编。

处于END之后的程序,汇编程序不予处理。

(2)汇编结束伪指令END,4.1.3汇编语言的规范,-伪指令END,如:

ORG2000HSTART:

MOVA,#00HENDSTART;

表示标号START开始的程序段结束。

13,05:

字符名称EQU操作数功能:

将操作数赋予规定的字符名称。

(3)等值伪指令EQU,4.1.3汇编语言的规范,-伪指令EQU,如:

ABEQU16HDELYEQU1234HMOVA,ABLCALLDELY,14,05:

DB8位二进制数表功能:

DB指令是在程序存储器(ROM)中,从指定的地址单元开始,定义若干个8位内存单元的内容。

用来在程序存储器的某一部分存入一组8位二进制数,或者是将一个数据表格存入程序存储器。

这个伪指令在汇编以后,将影响程序存储器的内容。

(4)定义字节伪指令DB,4.1.3汇编语言的规范,-伪指令DB,15,05:

59,以上伪指令经汇编以后,将从1010H开始的若干内存单元赋值:

(1010H)=20H(1011H)=43H(1012H)=25H(1013H)=FFH,其中43H是字符C的ASCII码,FFH是数值-1的补码,十进制数32也换算为16进制数20H。

4.1.3汇编语言的规范,-伪指令DB的应用,如:

ORG1010HTAB:

DB32,C,25H,-1,16,05:

DW16位二进制数表功能:

DW指令是在程序存储器(ROM)中,从指定的地址单元开始,定义若干个16位数据。

一个16位数要占两个存储单元,其中高8位存入低地址单元,低8位存入高地址单元。

例如:

ORG1100HTAB:

DW1234H,0ABH10以上伪指令经汇编以后,将对从1100H开始的若干内存单元赋值。

(5)定义字伪指令DW,4.1.3汇编语言的规范,-伪指令DW,17,05:

59,(1100H)=12H(1101H)=34H(1102H)=00H(1103H)=ABH(1104H)=00H(1105H)=0AH,其数据存储格式如右表所示。

DB、DW伪指令都只对程序存储器(ROM)起作用,不能对数据存储器(RAM)的内容进行赋值或进行初始化工作。

例如:

ORG1100HTAB:

DW1234H,0ABH10,4.1.3汇编语言的规范,-伪指令DW的应用,18,05:

DS表达式功能:

从指定(标号)地址开始(无标号时从顺序地址开始),保留指定数目(表达式的值)的字节单元作为备用存储区,供程序运行使用(用于程序存储器)。

这些单元的初值均为0。

例如:

ORG2000HTAB:

DS05H经汇编后,从地址2000H开始预留5个存储单元。

(6)定义存储区伪指令DS,4.1.3汇编语言的规范,-伪指令DS,19,05:

59,字符名称BIT位地址功能:

将位地址赋给字符名称。

SBITP1.0经汇编后,S符号的值是P1.0的地址90H。

(7)位定义伪指令BIT,4.1.3汇编语言的规范,-伪指令BIT,20,05:

59,4.1.4汇编语言程序编辑和汇编,1汇编语言源程序编辑,-编写规范,DATA0EQU30H;

将30H赋予字符名称DATA0ORG4000H;

规定下面程序从4000H单元开始存放MOVR0,#DATA0;

30HR0MOVR1,DATA0;

(30H)R1CJNER1,#00H,NEXT;

R1000H,则转NEXTHERE:

SJMPHERENEXT:

CLRA;

0ALOOP:

INCR0;

(R0)+1R0ADDA,R0;

(A)+(R0)ADJNZR1,LOOP;

(R1)-1R1,R10,则转LOOPSJMPHEREEND;

汇编到此结束,21,05:

59,源程序地址目标码DATA0EQU30HORG4000HMOVR0,#DATA0;

40007830MOVR1,DATA0;

4002A930CJNER1,#00H,NEXT;

4004B90002HERE:

SJMPHERE;

400780FENEXT:

4009E4LOOP:

400A08ADDA,R0;

400B26DJNZR1,LOOP;

400CD9FCSJMPHERE;

400E80F7END,2汇编语言源程序的汇编,4.1.4汇编语言程序编辑和汇编,-源程序汇编,22,05:

59,4.2结构化程序设计方法,在汇编语言程序设计中,普遍采用结构化程序设计方法。

采用这种设计方法的主要依据是任何复杂的程序都可由顺序结构、分支结构及循环结构程序等构成。

每种结构只有一个入口和出口,整个程序也只有一个入口和出口。

结构程序设计的特点是程序的结构清晰、易于读写和验证、可靠性高。

下面主要介绍结构化程序设计的基本程序设计方法。

-程序结构,23,05:

59,4.2.1顺序结构程序,例4-1将片内RAM的20H单元中的压缩BCD码拆成两个ACSII码存入21H、22H单元。

低4位存在21H单元,高4位存在22H单元。

-顺序结构实例,ORG2000HMOVA,20HMOVB,#10H;

除以10HDIVABORLB,#30H;

低4位BCD码转换为ASCII码MOV21H,BORLA,#30H;

高4位BCD码转换为ASCII码MOV22H,AEND,24,05:

59,例4-2设有16位二进制数存放在内部RAM的50H及51H单元中,要求将其算术左移一位(即原数各位均向左移1位,最低位移入0)后仍存放在原单元。

试编制相应的程序。

4.2.1顺序结构程序,-顺序结构实例,ORG4000HBIHROL:

CLRC;

Cy清零MOVA,51H;

低8位向左环移1位RLCAMOV51H,AMOVA,50H;

高8位向左环移1位RLCAMOV50H,AEND,25,05:

59,4.2.2分支程序,分支程序可根据要求无条件或有条件地改变程序执行流向。

编写分支程序主要在于正确使用转移指令。

分支程序有:

单分支结构、双分支结构、多分支结构(散转)。

编写程序,根据x的值求y的值,并放回原单元中。

-分支结构,例4-3设变量x以补码形式存放在片内RAM的30H单元中,变量y与x的关系是:

26,05:

59,4.2.2分支程序,-分支结构实例,ORG1000HSTART:

MOVA,30HJZNEXT;

x=0,转移ANLA,#80H;

保留符号位JZED;

x0,转移MOVA,#05H;

x0,不转移ADDA,30HMOV30H,ASJMPEDNEXT:

MOV30H,#20HED:

SJMP$,程序如下:

27,05:

59,例4-4128种分支转移程序。

根据入口条件转移到128个目的地址。

入口:

(R3)转移目的地址的序号00H7FH。

出口:

转移到相应于程序入口。

4.2.2分支程序,-分支结构实例,JMP-128:

MOVA,R3RLAMOVDPTR,#JMPTABJMPA+DPTRJMPTAB:

AJMPROUT00;

128个子程序首址AJMPROUT01AJMPROUT7F,28,05:

59,4.2.3循环程序,典型循环程序包含四部分:

初始化部分、循环处理部分、循环控制部分和循环修改部分。

下面分别介绍这四个组成部分。

1)初始化部分:

设置循环开始的初始值,为循环做准备。

2)循环处理部分:

循环程序中重复执行的内容。

3)循环控制部分:

判断是否结束循环。

4)循环修改部分:

修改循环参数,为执行下一次循环做准备。

-循环结构,29,05:

59,-循环结构,4.2.3循环程序,先执行后判断,先判断后执行,30,05:

59,例4-5设有一带符号的数组存放在内部RAM以20H为首址的连续单元中,其长度为90,要求找出其中的最大值,并将其存放到内部RAM的1FH单元中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1