第4章80C51单片机汇编语言程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章80C51单片机汇编语言程序设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 80 C51 单片机 汇编语言 程序设计 课件
- 资源描述:
-
1、课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础第第4 4章章 MCS-51MCS-51汇编语言程序设计汇编语言程序设计教学基本要求教学基本要求:(1 1)、了解)、了解MCS-51MCS-51汇编语言程序设计的特点;汇编语言程序设计的特点;(2 2)、熟悉)、熟悉MCS-51MCS-51汇编语言伪指令的功能及用法;汇编语言伪指令的功能及用法;(3 3)、掌握顺序、分支、循环程序的设计方法;)、掌握顺序、分支、循环程序的设计方法;(4 4)、掌握)、掌握KEILKEIL软件的使用方法。软件的使用方法。教学重点教学重点:(1 1)、)、KEIL软件的使用方法软件的使用方法;(2
2、 2)、分支、循环程序的设计方法;)、分支、循环程序的设计方法;(3 3)、定时、查表程序的设计方法;)、定时、查表程序的设计方法;教学难点教学难点:(1 1)、)、KEIL软件调试程序的方法软件调试程序的方法;(2 2)、利用)、利用JMP A+DPTRJMP A+DPTR指令实现程序多分支;指令实现程序多分支;(3 3)、查表程序的设计方法;)、查表程序的设计方法;(4 4)、子程序结构与堆栈的关系。)、子程序结构与堆栈的关系。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础4.1 单片机程序程序设计语言概述4.1.1 4.1.1 机器语言和机器语言和汇编语言汇编语言4.
3、1.2 4.1.2 单片机使用的高级语言单片机使用的高级语言(1 1)BASICBASIC语言语言(2 2)C C语言语言(3 3)PL/MPL/M语言语言 4.1.3 80C514.1.3 80C51单片机汇编语言的语句格式单片机汇编语言的语句格式课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础汇编语言程序设计汇编语言程序设计必须注意如下特点:必须注意如下特点:(1 1)设计人员必须详细了解单片机的硬件结构,以便在程序设)设计人员必须详细了解单片机的硬件结构,以便在程序设计中熟练使用;计中熟练使用;(2 2)必须熟悉汇编语言指令的功能和用法;)必须熟悉汇编语言指令的功能和用
4、法;(3 3)在程序设计前,必须分析设计任务,确定所用算法,确定)在程序设计前,必须分析设计任务,确定所用算法,确定程序结构,确定数据的类型、数据的结构,必须对数据的存放、程序结构,确定数据的类型、数据的结构,必须对数据的存放、寄存器和工作单元的使用以及所用硬件资源等作出具体安排;寄存器和工作单元的使用以及所用硬件资源等作出具体安排;(4 4)根据分析,画出程序设计流程图;)根据分析,画出程序设计流程图;(5 5)根据程序设计流程图编写程序。)根据程序设计流程图编写程序。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础4.2 汇编语言程序的基本结构形式 单片机单片机汇编语言程
5、序设计的基本结构形式一般分为以下汇编语言程序设计的基本结构形式一般分为以下4 4种种形式,即顺序结构、分支结构、循环结构和子程序结构。形式,即顺序结构、分支结构、循环结构和子程序结构。4.2.1 4.2.1 顺序程序结构顺序程序结构 顺序程序是顺序程序是最简单的程序结构,在最简单的程序结构,在顺序顺序程序中程序中,既无分支,既无分支,循环,也循环,也不调用不调用子程序,程序执行时一条一条子程序,程序执行时一条一条地地按顺序执行指令按顺序执行指令 例:假定三字节无符号数相加,其中一个加数在内部例:假定三字节无符号数相加,其中一个加数在内部RAMRAM的的50H50H、51H51H和和52H52H
6、单元中,另一个加数在内部单元中,另一个加数在内部RAMRAM的的53H53H、54H54H和和55H55H单元中,要求把相加之和存放在单元中,要求把相加之和存放在50H50H、51H51H和和52H52H单元中,进位存单元中,进位存放在位寻址区的放在位寻址区的00H00H位中。位中。解解:(:(1 1)分析任务:求两数之和)分析任务:求两数之和 (2 2)算法:加法运算()算法:加法运算(ADDADD或或ADDCADDC)课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 (3 3)程序结构:顺序或循环结构)程序结构:顺序或循环结构 (4 4)数据类型:三字节、二进制、无符号数
7、)数据类型:三字节、二进制、无符号数 (5 5)数据结构:升序或降序排列)数据结构:升序或降序排列 (6 6)RAMRAM单元安排单元安排:(内部(内部RAMRAM字节单元、位地址空间字节单元、位地址空间)(7 7)采用寄存器间接寻址方式()采用寄存器间接寻址方式(R0R0、R1R1)加数(N1N1)高字节(8 8位)中字节(8 8位)低字节(8 8位)加数(N2N2)高字节(8 8位)中字节(8 8位)低字节(8 8位)加数(N1N1)加数(N2N2)和(N3N3)52H52H单元低字节(8 8位)55H55H单元 低字节(8 8位)52H52H单元 低字节(8 8位)51H51H单元中字节
8、(8 8位)54H54H单元 中字节(8 8位)51H51H单元 中字节(8 8位)50H50H单元高字节(8 8位)52H52H单元 高字节(8 8位)50H50H单元 高字节(8 8位)00H00H位进位位课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 (8 8)程序设计流程框图;)程序设计流程框图;常常用用流流程程框框图图符符号号开开始始结结束束进进程程判判断断判判断断开开始始加加数数N N1 1和和加加数数N N2 2的的低低字字节节相相加加加加数数N N1 1和和加加数数N N2 2的的高高字字节节相相加加加加数数N N1 1和和加加数数N N2 2的的中中字字节
9、节相相加加处处理理进进位位位位结结束束开开始始取取N N1 1低低字字节节取取N N2 2低低字字节节N N1 1和和N N2 2低低字字节节相相加加保保存存N N1 1和和N N2 2低低字字节节和和取取N N1 1中中字字节节取取N N2 2中中字字节节N N1 1和和N N2 2中中字字节节相相加加保保存存N N1 1和和N N2 2中中字字节节和和取取N N1 1高高字字节节取取N N2 2高高字字节节N N1 1和和N N2 2高高字字节节相相加加保保存存N N1 1和和N N2 2高高字字节节和和处处理理进进位位位位结结束束课程:单片机技术课程:单片机技术 教材:单片机基础教材:单
10、片机基础 (9 9)程序清单;)程序清单;ORG 1000HORG 1000H MOV RO MOV RO,#52H#52H;加数;加数N1N1的低字节地址送地址指针的低字节地址送地址指针R0R0 MOV R1 MOV R1,#55H#55H;加数;加数N2N2的低字节地址送地址指针的低字节地址送地址指针R1R1 MOV A MOV A,R0R0;取取N1N1的低字节的低字节 ADD AADD A,R1R1;N1N1、N2N2低字节相加低字节相加 MOV R0MOV R0,A A;保存保存N1N1、N2N2低字节和低字节和 DEC R0DEC R0;修改加数修改加数N1N1的地址指针内容的地址
11、指针内容 DEC R1DEC R1;修改加数修改加数N2N2的地址指针内容的地址指针内容 MOV AMOV A,R0R0;取取N1N1的中间字节的中间字节 ADDC AADDC A,R1R1;N1N1、N2N2中间字节带低字节和进位相加中间字节带低字节和进位相加 MOV R0MOV R0,A A;保存保存N1N1、N2N2中间字节和中间字节和 DEC R0DEC R0;修改加数修改加数N1N1的地址指针内容的地址指针内容课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 DEC R1 DEC R1;修改加数修改加数N2N2的地址指针内容的地址指针内容 MOV AMOV A,R0
12、R0;取取N1N1的高字节的高字节 ADDC AADDC A,R1R1;N1N1、N2N2高字节带中间字节和进位相加高字节带中间字节和进位相加 MOV R0MOV R0,A A;保存保存N1N1、N2N2高字节和高字节和 MOV 00HMOV 00H,C C;高字节和的高字节和的进位送进位送00H00H位保存位保存 ENDEND 思考题:思考题:1 1)上述程序中,如果只采用)上述程序中,如果只采用ADDCADDC指令,应如何修改程序?指令,应如何修改程序?2 2)如果)如果N1N1、N2N2,N3N3均为十进制数,应如何修改程序?均为十进制数,应如何修改程序?3 3)如果加数)如果加数N1N
13、1在内部在内部RAM RAM 50H50H、51H51H和和52H52H单元中单元中,而,而加数加数N2N2与与和和N3N3均均在外部在外部RAM00RAM0053H53H、0054H0054H和和0055H0055H单元中,单元中,其它条件不变,其它条件不变,应如何修改程序?应如何修改程序?4 4)如果)如果N1N1、N2N2,N3N3均存放在外部均存放在外部RAMRAM单元,应如何修改程序?单元,应如何修改程序?课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础例:设内部例:设内部RAM 40HRAM 40H,41H41H单元中分别存放单元中分别存放8 8位二进制数,位二进
14、制数,现分别现分别取取这这两个单元中的半两个单元中的半个个字节,合并成一个字节,合并成一个新新字节存放在字节存放在42H42H单元单元中中。要求如下:要求如下:42H42H单元单元新字节的低半字节取自新字节的低半字节取自40H40H单元的低半字单元的低半字节,而高半字节取自节,而高半字节取自41H41H单元的低半字节。单元的低半字节。解解:(:(1 1)分析任务:拆字、合字)分析任务:拆字、合字内内部部R RA AM MN N1 14 40 0H H单单元元N N2 2内内部部R RA AM MN N4 44 42 2H H单单元元N N2 2内内部部R RA AM MN N3 34 41 1
15、H H单单元元N N4 4课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 (2 2)算法:逻辑运算)算法:逻辑运算 (3 3)程序结构:顺序)程序结构:顺序 (4 4)数据类型:单字节、二进制、无符号数)数据类型:单字节、二进制、无符号数 (5 5)数据结构:升序或降序排列)数据结构:升序或降序排列 (6 6)程序设计流程框图;)程序设计流程框图;开开始始取取4 40 0H H单单元元内内容容取取4 41 1H H单单元元内内容容保保留留4 40 0H H单单元元低低半半字字节节保保留留4 41 1H H单单元元低低半半字字节节结结束束合合字字并并保保存存课程:单片机技术课
16、程:单片机技术 教材:单片机基础教材:单片机基础 (7 7)程序清单;)程序清单;ORG 2000HORG 2000H S START:MOV R1TART:MOV R1,#40H#40H;初始化数据指针;初始化数据指针R1R1的内容的内容 MOV AMOV A,R1R1;取取40H40H单元内容送单元内容送A A ANL A ANL A,#0FH#0FH;保留;保留40H40H单元内容低单元内容低4 4位位 INC R1INC R1;修改数据指针修改数据指针R1R1的内容的内容 XCH AXCH A,R1R1;(A)(A)与与R1R1内容互换内容互换 ANL AANL A,#0FH#0FH;
17、保留;保留41H41H单元内容低四位单元内容低四位 SWAP ASWAP A;41H41H单元内容高低半字节互换单元内容高低半字节互换 ORL AORL A,R1R1;合字生成新字节合字生成新字节 INC R1INC R1;修改数据指针修改数据指针R1R1的内容的内容 MOV R1MOV R1,A A;新字节送新字节送42H42H单元保存单元保存 ENDEND作业题:作业题:上例中其它条件不变,要求如下:上例中其它条件不变,要求如下:42H42H单元单元新字节的低半字节新字节的低半字节取自取自40H40H单元的低半字节,而高半字节取自单元的低半字节,而高半字节取自41H41H单元的高半字节。单
18、元的高半字节。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(1 1)单分支程序)单分支程序 单分支程序单分支程序是通过条件转移指令实现的,即根据条件对程序是通过条件转移指令实现的,即根据条件对程序的执行进行判断,满足条件则进行程序转移,不满足条件程序就的执行进行判断,满足条件则进行程序转移,不满足条件程序就顺序执行。顺序执行。在在MCS-51MCS-51指令系统中,可利用指令系统中,可利用JZJZ,JNZJNZ,CJNECJNE,DJNZDJNZ,JCJC,JNCJNC,JBJB,JNBJNB,JBCJBC等指令,完成为等指令,完成为0 0、为为1 1、为正为正、为负以及
19、相为负以及相等等、不相等等各种条件判断。不相等等各种条件判断。例:两个例:两个8 8位无符号二进制数比较大小。位无符号二进制数比较大小。假假设设在外部在外部RAMRAM中有中有ST1ST1、ST2ST2和和ST3ST3共共3 3个连续单元(单元地址从小到大),其个连续单元(单元地址从小到大),其中中ST1ST1、ST2ST2单元中单元中存放存放着着两个两个8 8位位无符号二进制数无符号二进制数N1N1,N2N2,要求,要求找出其找出其中中的的大数大数并并存存入入ST3ST3单元单元中中。4.2.2 分支程序结构课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础解解:(:(1 1
20、)分析任务:比较两个数的大小)分析任务:比较两个数的大小 (2 2)算法:算术运算、控制转移)算法:算术运算、控制转移 (3 3)程序结构:单分支)程序结构:单分支 (4 4)数据类型:单字节、二进制、无符号数)数据类型:单字节、二进制、无符号数 (5 5)数据结构:单元地址升序排列)数据结构:单元地址升序排列 (6 6)RAMRAM单元安排单元安排:外部:外部RAMRAM单元单元 (7 7)采用寄存器间接寻址方式()采用寄存器间接寻址方式(R0R0、R1R1或或DPTRDPTR)(8 8)程序设计流程框图程序设计流程框图;(9 9)程序清单程序清单;思考题(补充作业题):思考题(补充作业题)
21、:上例中,如果采用上例中,如果采用CJNE ACJNE A,directdirect,relrel指令,应如何修改指令,应如何修改程序?程序?课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础开开 始始设设 置置 数数 据据 指指 针针取取 数数 据据 N N2 2取取 数数 据据 N N1 1并并 暂暂 存存结结 束束N N1 1保保 存存 于于 A A中中N N2 2 N N1 1修修 改改 数数 据据 指指 针针保保 存存 大大 数数N N2 2保保 存存 于于 A A中中Y YN N返回课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 ORG 8000
22、H ORG 8000H START:CLR C START:CLR C;进位清;进位清0 0 MOV DPTR MOV DPTR,#ST1#ST1;设数据指针设数据指针 MOVX AMOVX A,DPTRDPTR;AA(ST1ST1),取),取N1N1 MOV R2 MOV R2,A A;暂存暂存N1N1 INC DPTR INC DPTR;DPTR ST2DPTR ST2(指向(指向N2N2单元)单元)MOVX AMOVX A,DPTRDPTR;取取N2N2存于存于A A中中 SUBB ASUBB A,R2R2;N1N1,N2N2比较(比较(N2-N1N2-N1,差在,差在A A中)中)JN
23、C BIG1JNC BIG1;N2N1N2N1,转,转BIG1BIG1,N2N2N1N1,顺序执行,顺序执行 XCH AXCH A,R2R2;N1N1,N2N2互换,互换,A N1A N1 SJMP BIG0 SJMP BIG0 BIG1:MOVX A BIG1:MOVX A,DPTRDPTR;A N2A N2 BIGO:INC DPTR BIGO:INC DPTR;DPTR ST3DPTR ST3(指向(指向N3N3单元)单元)MOVX DPTRMOVX DPTR,A A;ST3 ST3 大数大数 ENDEND返回返回 课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(2
24、2)多分支程序)多分支程序 假设多分支程序中,分支序号的最大值为假设多分支程序中,分支序号的最大值为n n,则多分支转移,则多分支转移结构如图所示:结构如图所示:MCS-51MCS-51指令系统指令系统没有没有多分支多分支转移转移指令,无法使用指令,无法使用单单条指令完条指令完成多分支转移成多分支转移。要实现多分支转移,。要实现多分支转移,可采用以下几种方法:可采用以下几种方法:K K=?转转向向分分支支转转向向n n分分支支转转向向n n-1 1分分支支转转向向1 1分分支支K K=0 0K K=n nK K=n n-1 1K K=1 1课程:单片机技术课程:单片机技术 教材:单片机基础教材
25、:单片机基础 假设分支序号值保存在累加器假设分支序号值保存在累加器A A中,则可使用中,则可使用CJNE ACJNE A,#data#data,relrel指令,其分支流程如图所示:指令,其分支流程如图所示:(A A)=0 0?转转向向0 0分分支支(A A)=1 1?(A A)=2 2?转转向向2 2分分支支转转向向1 1分分支支Y YY YY YN NN NN N(a)使用多条CJNE指令,通过逐次比较,实现分支程序转移课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础例:例:已知已知:127127X X-128-128,求,求Y Y。设设X X,Y Y分别分别存存放在外部
展开阅读全文