程序设计概要.pptx
《程序设计概要.pptx》由会员分享,可在线阅读,更多相关《程序设计概要.pptx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、支持写入单片机或仿真调试的目标程序有两种文件格式:支持写入单片机或仿真调试的目标程序有两种文件格式:BINBIN文件和文件和 HEXHEX文件文件 BINBIN文件是由编译器生成的二进制文件,是程序的机器码,文件是由编译器生成的二进制文件,是程序的机器码,HEXHEX文文件件是是由由INTERINTER公公司司定定义义的的一一种种格格式式,这这种种格格式式包包括括地地址址、数数据据和和校校验验码码,并并用用ASCIIASCII码码来来存存储储,可可供供显显示示和和打打印印。HEXHEX文文件件需需通通过过符符号号转转换换程程序序OHS51OHS51进进行行转换转换 两种语言的操作过程见图两种语
2、言的操作过程见图3-13-1。第1页/共54页连接连接/定位器定位器L51汇编语言汇编语言源程序源程序汇编器汇编器A51符号转换程序符号转换程序OHS51绝对地址绝对地址目标程序目标程序.BINC语言程序语言程序浮浮动动地地址址目目标标程程序序编译器编译器C51HEX图图3-1两种语言源程序转换成目标程序两种语言源程序转换成目标程序第2页/共54页 目目前前很很多多公公司司将将编编辑辑器器、汇汇编编器器、编编译译器器、连连接接/定定位位器器、符符号号转转换换程程序序做做成成集集成成软软件件包包,用用户户进进入入该该集集成成环环境境,编编辑辑好好程程序序后后,只只需需点点击击相相应应菜菜单单就就
3、可可以以完完成成上上述述的的各各步步,如如WAVEWAVE、KEIL KEIL,WAVEWAVE集集成成软软件件的使用见附录。的使用见附录。汇编:将汇编语言源程序转换成机器语言汇编:将汇编语言源程序转换成机器语言目标程序的过程称为汇编。目标程序的过程称为汇编。汇编程序:能将汇编语言源程序转换成机汇编程序:能将汇编语言源程序转换成机器语言目标程序的系统软件称为汇编程序。器语言目标程序的系统软件称为汇编程序。第3页/共54页汇编的方法:汇编的方法有两种汇编的方法:汇编的方法有两种1.1.手工汇编:手工汇编:人人工工查查指指令令表表,查查出出程程序序中中每每条条指指令对应的机器代码。早期的计算机使用
4、。令对应的机器代码。早期的计算机使用。2.2.机器汇编:机器汇编:用用计计算算机机中中的的汇汇编编程程序序对对用用户户源源程程序进行汇编。序进行汇编。用用机机器器汇汇编编要要提提供供给给汇汇编编一一些些信信息息,遵遵循循汇汇编编程程序序的的一一些些约约定定。这这些些由由伪伪指指令指定。令指定。第4页/共54页3)提供错误信息4)提供目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)地址 机器码 源程序 ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6 MOV A,R0 汇编的主要任务汇编的主要任务1)确定程序中每条汇编语言指令的指令机器
5、码2)确定每条指令在存储器中的存放地址第5页/共54页1.机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被CPU执行。2.伪指令:汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。一.汇编语言指令类型3.宏指令 宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替代被定义的程序段(宏调用)。第6页/共54页宏定义过程宏调用过程:宏指令名 实际参数 宏指令名 实际参数宏指令名 MACRO 形式参数 ;被定义的程序段 ENDM第7页/共54页二伪指令二伪指令 常用伪指令及功能常用伪指令及功能1.1.起始指令起
6、始指令 ORG nnORG nn功能:定义程序或数据块的起始地址。指示此语句功能:定义程序或数据块的起始地址。指示此语句后面的程序或数据块以后面的程序或数据块以nnnn为起始地址,连续存放在为起始地址,连续存放在程序存储器中。程序存储器中。指令地址指令地址 机器码机器码源程序源程序 ORG 2000HORG 2000H 2000H 78 30 2000H 78 30 MAIN MAIN:MOV R0MOV R0,#30H#30H 2002H E6 2002H E6 MOV A MOV A,R0R0 ORG 3000H 3000H 23 TAB:DB 23H,100,A 3001H 64 300
7、2H 41第8页/共54页2.字节定义 标号:DB(字节常数,或字符或表达式)功能:指示在程序存储器中以标号为起始地址的单元里存放的数为字节数据(八位二进制数)。例如 LN:DB 32,C,25H,-1LNLN+3 地址单元依次存放20H,43H,25H,FFH地址地址数据数据LN20LN+143LN+225LN+3FF3.3.字定义字定义 标号:标号:DW DW(字常数或表达式)(字常数或表达式)作用:作用:指示在程序存储器中以标号为指示在程序存储器中以标号为起始地址的单元里存放的数为字数据起始地址的单元里存放的数为字数据(即(即1616位的二进制数),例如:位的二进制数),例如:GH GH
8、:DW 1234HDW 1234H,5678H5678H,0808GH1234GH+25678GH+40008第9页/共54页 5 5.等值指令等值指令 标号标号 EQUEQU(数值表达式)(数值表达式)表示表示EQUEQU两边的量等值,用于为标号或标识符赋两边的量等值,用于为标号或标识符赋值。值。例如:例如:X1 EQU 2000HX1 EQU 2000H X2 EQU 0FH X2 EQU 0FH MAIN:MOV DPTR MAIN:MOV DPTR,#X1 ;DPTR=2000H#X1 ;DPTR=2000H ADD A ADD A,#X2 ;A=A+0FH#X2 ;A=A+0FH4.
9、4.保留字节保留字节 标号:标号:DS DS(数值表达式)(数值表达式)作用:指示在程序存储器中保留以标号为起始地作用:指示在程序存储器中保留以标号为起始地址的若干字节单元,其单元个数由数值表达式指定。址的若干字节单元,其单元个数由数值表达式指定。例如例如 L1L1:DS 32;DS 32;从从L1L1地址开始保留地址开始保留3232个存储单元。个存储单元。第10页/共54页6.6.位定义位定义 标号标号 BIT BIT 位地址位地址 作用:作用:同同EQUEQU指令,不过定义的是位操作地址。指令,不过定义的是位操作地址。例如例如 AIC BIT P1.1AIC BIT P1.1。7.7.汇编
10、结束汇编结束 ENDEND作用:作用:指示源程序段结束。指示源程序段结束。ENDEND指令放在程序的最后。指令放在程序的最后。A51A51汇编程序还有一些其它的伪指令,列在教材汇编程序还有一些其它的伪指令,列在教材表表3-13-1中,以备查阅。中,以备查阅。第11页/共54页3-2 3-2 汇编语言程序设计步骤汇编语言程序设计步骤一一.确定方案和计算方法确定方案和计算方法二二.了解应用系统的硬件配置、性能指标了解应用系统的硬件配置、性能指标三三.建立系统数学模型,确定控制算法和操作步骤建立系统数学模型,确定控制算法和操作步骤四四.合理分配存储器单元和了解合理分配存储器单元和了解I/OI/O接口
11、地址接口地址五.编制源程序1.按功能设计程序,明确各程序之间的相互关系2.用流程图表示程序结构和功能3.程序中用注释说明指令在程序中的作用,方便阅读、调试和修改第12页/共54页顺序程序设计顺序程序设计例例3-1 3-1 编程将外部数据存编程将外部数据存储器的储器的000EH000EH和和000FH000FH单元单元的内容相换。的内容相换。常用程序结构常用程序结构 顺序程序、分支程序顺序程序、分支程序 循环程序、子程序循环程序、子程序000EH000FH000EH000FH000EH000FH000EH000FH分析分析:外部数据存储器的数据外部数据存储器的数据操作只能用操作只能用MOVXMO
12、VX指令,且只能指令,且只能和和A A之间传送,因此必须用一个之间传送,因此必须用一个中间环节作暂存,设用中间环节作暂存,设用20H20H单元。单元。用用R0R0、R1R1指示两单元的低八位指示两单元的低八位地址,高八位地址由地址,高八位地址由P2P2指示指示。编程过程如下:编程过程如下:000EH000FH000EH000FH000EH000FH第13页/共54页 ORG 0000H MOV P2,#00H ;送地址高八位至P2口 MOV R0,#0EH ;R0=0EH MOV R1,#0FH ;R1=OFH MOVX A,R0 ;A=(000EH)MOV 20H,A ;(20H)=(000
13、EH)MOVX A,R1 ;A=(000FH)XCH A,20H ;A=(000EH),(20H)=(000FH)MOVX R1,A MOV A,20H MOVX R0,A ;交换后的数送各单元 SJMP$END第14页/共54页3-3 3-3 顺序程序顺序程序顺序程序顺序程序(简单程序简单程序),程序走向只有一条路径,程序走向只有一条路径例3-2:将R4R5双字节符号数求补码程序。ORG 0000H MOV A,R4 JB ACC.7,CPLL;判符号位 SJMP$;正数的补码原码CPLL:MOV A,R5 ;取低字节 CPL A ADD A,#1 ;低字节变补 MOV R5,A MOV A
14、,R4 ;取高字节 CPL A ADDC A,#0 ;高字节变补 ORL A,#80H ;恢复负号 MOV R4,A SJMP$第15页/共54页地址数据TAB0TAB+1 1TAB+2 4TAB+3 9TAB+4 16TAB+5 25例例3-5 3-5 设变量放在片内设变量放在片内RAMRAM的的20H20H单元单元,其值为其值为00H-05H00H-05H之间之间,要求编查表程序要求编查表程序,查出变量的平方值查出变量的平方值,并放入片内并放入片内RAMRAM的的21H21H单元。单元。ORG 0000H ORG 0000H MOV DPTR,#TAB MOV DPTR,#TAB MOV
15、A,20H MOV A,20H MOVC A,A+DPTR;MOVC A,A+DPTR;查表查表 MOV 21H,AMOV 21H,A SJMP$SJMP$TAB:DB 0,1,4,9,16,25 TAB:DB 0,1,4,9,16,25 END END分析分析 :在程序存储器安排一张平方表,首地址为:在程序存储器安排一张平方表,首地址为TABTAB,以,以DPTRDPTR指向指向表首址,表首址,A A存放变量值,利用查表指令存放变量值,利用查表指令MOVC AMOVC A,A+DPTRA+DPTR,即可求得,即可求得表中数据用表中数据用BCDBCD码存放合乎人们的习惯码存放合乎人们的习惯.如
16、果平方值为两个字节,程序应如何编。如果平方值为两个字节,程序应如何编。DPTRA第16页/共54页 ORG 0000H MOV A,R2 JNB ACC.7,N ;为正数?CPL A ;负数变补 INC A MOV R2,AN:SJMP$;结束3.4 分支程序的设计由条件转移指令构成程序判断框部分,形成分支结构3.4.1 单分支程序一个判断决策框,两种分支结构图。条件满足条件满足?N影响条件影响条件Y处理处理1处理处理2例1 求8位有符号数的绝对值。方法:正数不变,负数变补条件满足条件满足?N影响条件影响条件Y处理段处理段第17页/共54页 例例2 2 用单片机加重力传感器作磅秤,称出重量后算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 概要
限制150内