




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1/20版权所有。版权所有。http:/单片机原理及应用2/20版权所有。版权所有。http:/单片机原理及应用 一般来说,在汇编语言源程序中用一般来说,在汇编语言源程序中用MSC-51MSC-51指令助记指令助记符编写的程序,都可以一一对应的产生目标程序。但还符编写的程序,都可以一一对应的产生目标程序。但还有一些指令,例如指定目标程序或数据存放的起始地址,有一些指令,例如指定目标程序或数据存放的起始地址,给一些指定的标号赋值,在内存中予留工作单元,表示给一些指定的标号赋值,在内存中予留工作单元,表示源程序结束等等。这些指令并不产生目标程序,不影响源程序结束等等。这些指令并不产生目标程序,不影
2、响程序的执行,仅仅产生供汇编用的某些指令,以便在汇程序的执行,仅仅产生供汇编用的某些指令,以便在汇编时执行一些特殊操作,称之为伪指令。编时执行一些特殊操作,称之为伪指令。 3/20版权所有。版权所有。http:/单片机原理及应用 ORG nn ORG nn ORG ORG伪指令总是出现在每段源程序或数据块的开始。它可使程序伪指令总是出现在每段源程序或数据块的开始。它可使程序员把程序、子程序或数据块存放在存贮器的任何位置。员把程序、子程序或数据块存放在存贮器的任何位置。 ORG 2000H ORG 2000H MOV A, 20H MOV A, 20H 表示后续目标程序从表示后续目标程序从200
3、02000H H单元开始存放。一般要求单元开始存放。一般要求ORGORG定义空定义空间地址由小到大,且不能重叠间地址由小到大,且不能重叠 。 4/20版权所有。版权所有。http:/单片机原理及应用标号:标号: DB DB 项或项表项或项表 其中项或项表是指一个字节,数或字符串,或以引号括起来的其中项或项表是指一个字节,数或字符串,或以引号括起来的ASCASC码字符串(一个字符用码字符串(一个字符用ASCASC码表示,相当于一个字节)。该码表示,相当于一个字节)。该指令的功能是把项或项表的数值(字符则用它的指令的功能是把项或项表的数值(字符则用它的ASCASC码)存入从标码)存入从标号开始的连
4、续单元中。号开始的连续单元中。 SEG1 SEG1: DB 53H,74H,78H,1,2 DB 53H,74H,78H,1,2 SEG2 SEG2: DB 23H,DAY DB 23H,DAY则:则: (10001000H H)=53H=53H (1001H1001H)=74H=74H (1002H1002H)=78H=78H (1003H1003H)=31H =31H 数字数字1 1的的ASCASC码码 (10041004H H)=32H =32H 数字数字2 2的的ASCASC码码 (10051005H H)=23H=23H (1006H1006H)=44H=44H (1007H1007
5、H)=41H=41HDAY DAY 的的ASCASC码码 (10081008H H)=59H=59H5/20版权所有。版权所有。http:/单片机原理及应用标号:标号: DW DW 项或项表项或项表 DW DW的基本含义与的基本含义与DBDB相同,但相同,但DBDB一般用于定义一般用于定义8 8位数位数据(一个字节),而据(一个字节),而DWDW则定义则定义1616位数据,即一个字(规位数据,即一个字(规定为两个字节,即一个字为定为两个字节,即一个字为1616位二进制数)。在执行汇位二进制数)。在执行汇编程序时,机器会自动按高位字节在前,低位字节在后编程序时,机器会自动按高位字节在前,低位字节
6、在后的格式排列(与程序中的地址规定一致)。的格式排列(与程序中的地址规定一致)。 例:例: ABC ABC: DW 1234H, 08H DW 1234H, 08H ABC ABC: DB 12H ,34H,00H,08H DB 12H ,34H,00H,08H上两条指令是等价的。上两条指令是等价的。6/20版权所有。版权所有。http:/单片机原理及应用标号:标号: EQU nnEQU nn或表达式或表达式其功能是将语句操作数的值赋于本语句的标号。故又称其功能是将语句操作数的值赋于本语句的标号。故又称为等值指令。如:为等值指令。如:BLKBLK: EQU 1000H EQU 1000H 即给
7、标号即给标号BLKBLK赋以地址值赋以地址值10001000H H。需要注意的是,在需要注意的是,在同一程序中,用同一程序中,用EQUEQU伪指令对标号赋值后,该标号的值在伪指令对标号赋值后,该标号的值在整个程序中不能再改变。整个程序中不能再改变。 7/20版权所有。版权所有。http:/单片机原理及应用格式:格式: 符号名符号名 DATA DATA 表达式表达式 DATA DATA 指令用于将一个内部指令用于将一个内部 RAM RAM 的地址赋给指定的的地址赋给指定的符号名。符号名。 数值表达式的值在数值表达式的值在00H00H0FFH0FFH之间,表达式必须是一之间,表达式必须是一个简单表
8、达式。如:个简单表达式。如: BUFFER DATA 40H BUFFER DATA 40H8/20版权所有。版权所有。http:/单片机原理及应用格式:格式: 符号名符号名 XDATA XDATA 表达式表达式 XDATA XDATA 指令用于将一个外部指令用于将一个外部 RAM RAM 的地址赋给指定的的地址赋给指定的符号名。符号名。 数值表达式的值在数值表达式的值在0000H0000H0FFFFH0FFFFH之间,表达式必须之间,表达式必须是一个简单表达式。如:是一个简单表达式。如: MYDATA XDATA 0400H MYDATA XDATA 0400H9/20版权所有。版权所有。h
9、ttp:/单片机原理及应用格式:格式: 字符名称字符名称 BIT BIT 位地址位地址 用于给字符名称定义位地址。如:用于给字符名称定义位地址。如: DOGOUT BIT P3.4 DOGOUT BIT P3.4 经定义后,允许在指令中用经定义后,允许在指令中用DOGOUTDOGOUT代替代替P3.4P3.4。10/20版权所有。版权所有。http:/单片机原理及应用标号:标号: END END 表达式表达式 END END语句是一个结束标志,它告诉汇编程序,该程序语句是一个结束标志,它告诉汇编程序,该程序段已结束。因此,该语句必须放在整个程序(包括伪指段已结束。因此,该语句必须放在整个程序(
10、包括伪指令)之后。若令)之后。若ENDEND语句出现在代码块中间,则汇编程序将语句出现在代码块中间,则汇编程序将不汇编不汇编ENDEND后面的语句。后面的语句。11/20版权所有。版权所有。http:/单片机原理及应用1、汇编语言程序设计的一般步骤、汇编语言程序设计的一般步骤1 1)分析课题,确定算法或解题思路;)分析课题,确定算法或解题思路;2 2)根据算法或思路画出流程图;)根据算法或思路画出流程图;3 3)根据流程图编写程序;)根据流程图编写程序;4 4)上机调试源程序,进而确定源程序。)上机调试源程序,进而确定源程序。12/20版权所有。版权所有。http:/单片机原理及应用 ORG
11、ORG0000H0000H LJMP LJMPMAINMAIN; ;跳转到主程序跳转到主程序 ORG ORG0003H0003H LJMP LJMPINT_0INT_0 ; ;外部中断外部中断0 0入口入口 ORGORG000BH000BH LJMP LJMPINT_T0;INT_T0;定时器定时器0 0中断入口中断入口 ORGORG0013H0013H LJMP LJMPINT_1INT_1 ; ;外部中断外部中断1 1入口入口 ORGORG001BH001BH LJMP LJMPINT_T1;INT_T1;定时器定时器1 1中断入口中断入口 ORGORG0023H0023H LJMP LJ
12、MPINT_SINT_S ; ;串行通讯中断入口串行通讯中断入口 ORGORG0100H0100HMAIN:MAIN: MOVMOVSP,#70HSP,#70H ; ;初始化内存区域内容初始化内存区域内容 ; ;设置特殊功能寄存器(设置特殊功能寄存器(SFRSFR)的控制字的控制字 ; ;开放相应的中断控制开放相应的中断控制 ; ;进入主程序循环进入主程序循环13/20版权所有。版权所有。http:/单片机原理及应用; ;下面是各个中断服务子程序的入口下面是各个中断服务子程序的入口INT_0: ;INT_0: ;外部中断外部中断0 0服务子程序服务子程序 ; ;根据需要填入适当的内容根据需要填
13、入适当的内容 RETIRETIINT_1: ;INT_1: ;外部中断外部中断1 1服务子程序服务子程序 ; ;根据需要填入适当的内容根据需要填入适当的内容 RETIRETIINT_T0: ;INT_T0: ;定时器定时器0 0中断服务子程序中断服务子程序 ; ;根据需要填入适当的内容根据需要填入适当的内容 RETIRETIINT_T1: ;INT_T1: ;定时器定时器1 1中断服务子程序中断服务子程序 ; ;根据需要填入适当的内容根据需要填入适当的内容 RETIRETIINT_S: ;INT_S: ;串行通讯中断服务子程序串行通讯中断服务子程序 ; ;根据需要填入适当的内容根据需要填入适当
14、的内容 RETIRETI; ;下面可以编写其他子程序或者定义程序中所用的常数下面可以编写其他子程序或者定义程序中所用的常数 END END 14/20版权所有。版权所有。http:/单片机原理及应用例例1 1 延时程序(时钟为延时程序(时钟为6 6MHzMHz ) 入口:设延时时间入口:设延时时间N N(以毫秒为单位)送入以毫秒为单位)送入R0R0。 出口:延时到,退出程序,无参数传递。出口:延时到,退出程序,无参数传递。DELAY: MOV A,#0A6H ;DELAY: MOV A,#0A6H ;当时钟为当时钟为6MHz6MHz,A A计计数到数到166166,约延时,约延时1ms1ms
15、LOOP: DEC A LOOP: DEC A JNZ LOOPJNZ LOOP DJNZ R0,DELAYDJNZ R0,DELAY RETRET15/20版权所有。版权所有。http:/单片机原理及应用 例例2 2 多字节无符号加法子程序多字节无符号加法子程序入口:被加数低字节地址在入口:被加数低字节地址在R0R0,加数低字节地址在加数低字节地址在R1R1,字节数在字节数在R2R2。出口:和的低字节地址在出口:和的低字节地址在R0R0,字节数在字节数在R3R3。MPADDMPADD: PUSH PSW ; PUSH PSW ;保护标志寄存器内容。保护标志寄存器内容。 CLR CCLR C
16、; ;进位为清零进位为清零 MOV R3,#00H MOV R3,#00H ADD10ADD10: MOV A,R0 ; MOV A,R0 ;相加相加 ADDC A,R1ADDC A,R1 MOV R0,A MOV R0,A INC R0 ; INC R0 ;地址值增地址值增1 1 INC R1INC R1 INC R3 ; INC R3 ;字节数增字节数增1 1 DJNZ R2,ADD10DJNZ R2,ADD10 ; ;所有字节未加完继续。所有字节未加完继续。 JNC ADD20 ;JNC ADD20 ;无进位去无进位去ADD20ADD20。 MOV R0,#01MOV R0,#01 ;
17、;和最高字节地址内容为和最高字节地址内容为0101H H INC R3 ; INC R3 ;字节数增字节数增1 1ADD20ADD20: POP PSW ; POP PSW ;恢复标志寄存器内容恢复标志寄存器内容 RET ;RET ;返主返主16/20版权所有。版权所有。http:/单片机原理及应用Keil uVision2集成开发环境简介集成开发环境简介 Keil uVision2 Keil uVision2 集成开发环境(集成开发环境(IDEIDE,以下简称以下简称uVision2uVision2)是一个基于是一个基于WindowsWindows的的开发平台,包含高效的编辑器、项目管理器和
18、开发平台,包含高效的编辑器、项目管理器和MAKEMAKE工具。工具。uVision2uVision2支持所有的支持所有的KEIL KEIL 80518051工具,包括工具,包括C C编译器、宏汇编器连接编译器、宏汇编器连接/ /定位器、目标代码、到定位器、目标代码、到HEXHEX的转换器。的转换器。uVision2uVision2通过以下特性加速嵌入式系统(单片机应用系统)的开发过程:通过以下特性加速嵌入式系统(单片机应用系统)的开发过程:全功能的源代码编辑器全功能的源代码编辑器器件库用来配置开发工具设置器件库用来配置开发工具设置项目管理器用来创建和维护项目项目管理器用来创建和维护项目 集成的
19、集成的MAKEMAKE工具可以汇编编译和连接用户的嵌入式应用工具可以汇编编译和连接用户的嵌入式应用所有开发工具的设置都是对话框形式的所有开发工具的设置都是对话框形式的真正的源代码级的对真正的源代码级的对CPUCPU和外围器件的调试器和外围器件的调试器高级高级GDIAGDIGDIAGDI接口用来在目标硬件上进行软件调试以及和接口用来在目标硬件上进行软件调试以及和Monitor-51Monitor-51进行通信进行通信与开发工具手册和器件数据手册和用户指南有直接的链接与开发工具手册和器件数据手册和用户指南有直接的链接17/20版权所有。版权所有。http:/单片机原理及应用Keil uVision
20、2的安装的安装18/20版权所有。版权所有。http:/单片机原理及应用Keil uVision2Keil uVision2集成开发环境中调试集成开发环境中调试80518051单片单片机汇编语言程序的方法机汇编语言程序的方法 uVision2 uVision2集成开发环境中包括一个项目管理器,它可集成开发环境中包括一个项目管理器,它可以使以使80518051应用系统设计变得简单。要创建一个应用,需要应用系统设计变得简单。要创建一个应用,需要按下列步骤进行操作:按下列步骤进行操作: 1 1)启动)启动uVision2uVision2,新建一个项目文件并从器件库中选择新建一个项目文件并从器件库中选
21、择一个器件一个器件 2 2)新建一个源文件并把它加入到项目中)新建一个源文件并把它加入到项目中 3 3)针对目标硬件设置工具选项)针对目标硬件设置工具选项 4 4)编译项目并生成可以编程到程序存储器的)编译项目并生成可以编程到程序存储器的HEXHEX文件文件 5 5)下载到单片机中进行仿真调试)下载到单片机中进行仿真调试19/20版权所有。版权所有。http:/单片机原理及应用 【例例5-15-1】 假设晶振频率为假设晶振频率为6MHz6MHz。将片内。将片内RAM30HRAM30H3FH3FH单元的内容清零,然单元的内容清零,然后循环从后循环从P1.0P1.0输出输出1ms1ms方波。方波。
22、 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 0100H ORG 0100HMAIN: MOV SP,#70H ;MAIN: MOV SP,#70H ;设置堆栈指针设置堆栈指针 MOV R0,#30HMOV R0,#30H MOV R2,#10H MOV R2,#10H CLR A CLR ALOOP1: MOV R0,ALOOP1: MOV R0,A INC R0 INC R0 DJNZ R2,LOOP1 ; DJNZ R2,LOOP1 ;将将30H3FH30H3FH单元的内容清零单元的内容清零 SETB P1.0SETB P1.0LOOP2: CPL P1.0LOOP2: CPL P1.0 LCALL DELAY1MS LCALL DELAY1MS LJMP LOOP2 ; LJMP LOOP2 ;输出方波输出方波DELAY1MS: ;1msDELAY1MS: ;1ms延时子程序延时子程序 MOV A,#0A6HMOV A,#0A6HLOOP: DEC ALOOP: DEC A JNZ LOOP JNZ LOOP NOP NOP RET RET END END 请看详细的调试过程请看详细的调试过程20/20版权所有。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国氧化锡项目投资计划书
- 拆迁合同补偿协议书范本
- 柔性电子材料项目创业计划书
- 淘宝客服2025年工作计划书(新版)
- 文化墙制作合同协议书
- 简单工程合同协议书范本
- 滤油机维修合同协议书
- 意向协议书是预约合同
- 2025年汽车检具市场调查报告
- 简单员工合同协议书下载
- 福建省莆田市2025届高三下学期第四次教学质量检测试生物试题(含答案)
- 2025年4月自考00522英语国家概况答案及评分参考
- 2025人教版三年级下册数学第七单元达标测试卷(含答案)
- 2025年安全生产月主题培训课件:如何查找身边安全隐患
- 2024年宁夏银川公开招聘社区工作者考试试题答案解析
- 2025年注册建筑师建筑防水设计试题试卷
- 大巴车驾驶员安全培训
- 量化投资与多资产组合管理-全面剖析
- 夜间行车培训课件
- 楼房分层使用协议书
- 模块二 专题三 电学专题(四):电学比值类计算 课件北京东直门中学2025年中考物理一轮复习
评论
0/150
提交评论