单片机原理及应用第4章-80C51单片机的软件基础课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机原理及应用第4章-80C51单片机的软件基础课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 80 C51 软件 基础 课件
- 资源描述:
-
1、12:401第第4章章 80C51单片机的单片机的软软件件基础基础3.780C51单片机的指令系统单片机的指令系统4.1C51程序设计基础程序设计基础4.2C51语言的语句语言的语句4.3 C51的函数的函数4.4 C51的程序结构的程序结构4.512:402 单片机应用系统单片机应用系统是由是由硬件和软件硬件和软件共同组成的。要使单片机共同组成的。要使单片机实现所需要的控制功能,必须有控制软件,实现所需要的控制功能,必须有控制软件,没有控制软件没有控制软件的单片机是毫无用处的的单片机是毫无用处的。机器语言机器语言是计算机唯一能识别的语言,是计算机唯一能识别的语言,用汇编语言和高级用汇编语言和
2、高级语言编写的程序语言编写的程序(称为源程序称为源程序)最终都必须翻译成机器语言最终都必须翻译成机器语言的程序的程序(称为目标程序称为目标程序),计算机才能识别。,计算机才能识别。汇编语言汇编语言是能够利用单片机所有特性直接控制硬件的语言,是能够利用单片机所有特性直接控制硬件的语言,它直接使用它直接使用CPU的指令系统和寻址方式,从而得到占用空的指令系统和寻址方式,从而得到占用空间小、执行速度快的高质量程序。间小、执行速度快的高质量程序。对于一些实时控制要求对于一些实时控制要求高的场合,汇编语言是必不可少的。高的场合,汇编语言是必不可少的。但对于较复杂的单片但对于较复杂的单片机应用系统,它的编
3、写效率很低。机应用系统,它的编写效率很低。第第4章章 80C51单片机的单片机的软软件基础件基础12:403 为了提高软件的开发效率,编程人员采用高级语言为了提高软件的开发效率,编程人员采用高级语言C语语言来开发单片机应用程序。言来开发单片机应用程序。目前许多软件公司致力于单片机目前许多软件公司致力于单片机C编译器的开发研究,编译器的开发研究,许多许多C编译器的效率已接近汇编语言的水平,编译器的效率已接近汇编语言的水平,对于较复杂对于较复杂的应用程序,的应用程序,C语言产生的代码效率甚至超出了汇编语言。语言产生的代码效率甚至超出了汇编语言。同时目前单片机片内程序存储器的发展十分迅速,许多型同时
4、目前单片机片内程序存储器的发展十分迅速,许多型号的单片机片内号的单片机片内ROM已经达到已经达到64KB甚至更大,且具备在甚至更大,且具备在系统编程系统编程(ISP)功能,进一步推动了功能,进一步推动了C语言在单片机应用系语言在单片机应用系统开发中的应用。统开发中的应用。在学习在学习C语言之前,语言之前,了解汇编语言,能读懂汇编语言程了解汇编语言,能读懂汇编语言程序,并且会编中、小规模的汇编语言程序是十分必要的。序,并且会编中、小规模的汇编语言程序是十分必要的。12:4044.1 80C51单片机的指令系统单片机的指令系统4.1.1 指令格式指令格式一条汇编语言指令中最多包含一条汇编语言指令中
5、最多包含4个字段,其格式为:个字段,其格式为:标号标号:操作码操作码 目的操作数,源操作数;注释目的操作数,源操作数;注释例:例:LOOP:ADD A,10H ;A(A)+10H 根据设计使某台计算机具有的指令的集合便构成了这根据设计使某台计算机具有的指令的集合便构成了这一计算机的指令系统。一计算机的指令系统。80C51系列单片机的指令系统共有系列单片机的指令系统共有111条指令。条指令。12:4051.标号标号标号标号是用户定义的一个符号,是用户定义的一个符号,表示指令或数据的存储单元地址。表示指令或数据的存储单元地址。标号由以英文字母开始的标号由以英文字母开始的18个字母或数字串组成,以冒
6、号个字母或数字串组成,以冒号“:”结尾。不能用指令助记符、伪指令或寄存器名来做标号。一旦结尾。不能用指令助记符、伪指令或寄存器名来做标号。一旦使用了某标号定义一地址单元,在程序的其它地方就不能随意使用了某标号定义一地址单元,在程序的其它地方就不能随意修改这个定义,也不能重复定义。修改这个定义,也不能重复定义。一条指令中的标号代表该指令所存放的第一个字节存储单元的一条指令中的标号代表该指令所存放的第一个字节存储单元的地址,地址,故标号又称为符号地址,故标号又称为符号地址,在汇编时,把该地址赋值给该在汇编时,把该地址赋值给该标号。标号。12:4062.操作码操作码操作码操作码是用是用英文缩写的指令
7、或伪指令功能助记符英文缩写的指令或伪指令功能助记符,用来表示指,用来表示指令的性质或功能。如令的性质或功能。如MOV表示传送操作,表示传送操作,ADD表示加法操作。表示加法操作。12:4073.操作数操作数操作数字段给出参与操作的数据或数据所在单元的地址。操作数字段给出参与操作的数据或数据所在单元的地址。操作数字段的内容复杂多样,它可能为以下几种情况之一:操作数字段的内容复杂多样,它可能为以下几种情况之一:(1)工作寄存器名工作寄存器名(2)特殊功能寄存器名特殊功能寄存器名(3)标号名标号名(4)常数常数(5)$(6)表达式表达式 12:408(1)工作寄存器名工作寄存器名由由PSW.3和和P
8、SW.4规定的当前工作寄存器区中的规定的当前工作寄存器区中的R0R7都可以都可以出现在操作数字段中。出现在操作数字段中。(2)特殊功能寄存器名特殊功能寄存器名8051中的中的21个特殊功能寄存器的名字都可以作为操作数使用。个特殊功能寄存器的名字都可以作为操作数使用。(3)标号名标号名可以在操作数字段中引用的标号包括:可以在操作数字段中引用的标号包括:赋值标号:赋值标号:由汇编伪指令由汇编伪指令EQU等赋值的标号可以作为操作数。等赋值的标号可以作为操作数。指令标号:指令标号:指令标号虽未被赋值,但这条指令的第一字节地址指令标号虽未被赋值,但这条指令的第一字节地址就是这个标号的值,在以后指令操作数
9、字段中可以引用。就是这个标号的值,在以后指令操作数字段中可以引用。12:409(4)常数常数为了方便用户,汇编语言指令允许以各种数制表示常数,即常为了方便用户,汇编语言指令允许以各种数制表示常数,即常数可以写成二进制、十进制或十六进制等形式。数可以写成二进制、十进制或十六进制等形式。(5)$操作数字段中还可以使用一个专门符号操作数字段中还可以使用一个专门符号“$”,用来表示程序计数,用来表示程序计数器的当前值。这个符号最常出现在转移指令中,如器的当前值。这个符号最常出现在转移指令中,如“SJMP$”,该指令表示继续执行该指令,在原地循环。该指令表示继续执行该指令,在原地循环。12:4010(6
10、)表达式表达式 汇编程序允许把表达式作为操作数使用。在汇编时,计算出表汇编程序允许把表达式作为操作数使用。在汇编时,计算出表达式的值,并把该值填入目标码中。例如:达式的值,并把该值填入目标码中。例如:MOV A,SUM+l。12:40114.注释注释注释是对指令或程序段的简要功能说明,以方便阅读与调试程注释是对指令或程序段的简要功能说明,以方便阅读与调试程序。序。12:40124.1.2 指令系统的寻址方式指令系统的寻址方式寻找操作数所在单元的地址称为寻找操作数所在单元的地址称为寻址寻址;确定操作数所在单元;确定操作数所在单元地址的方法称为地址的方法称为寻址方式寻址方式。80C51单片机指令系
11、统中的寻址方式共有七类,分别为单片机指令系统中的寻址方式共有七类,分别为立即寻址、立即寻址、寄存器寻址、寄存器寻址、寄存器间接寻址、寄存器间接寻址、直接寻址、直接寻址、变址寻址、变址寻址、相对寻址、相对寻址、位寻址。位寻址。12:40131.立即寻址立即寻址操作数就跟在操作码的后面,可以立即参与指令所规操作数就跟在操作码的后面,可以立即参与指令所规定的操作,不须另去寄存器或存储器等处寻找和取数。定的操作,不须另去寄存器或存储器等处寻找和取数。例:例:MOV A,#30H ;A30H MOV DPTR,#2000H ;DPTR2000H书写单片机指令时,为了辨识是立即数,规定在它的书写单片机指令
12、时,为了辨识是立即数,规定在它的前面加一个前面加一个“#”号作为前缀。号作为前缀。12:40142.寄存器寻址寄存器寻址 寻址某工作寄存器,自该寄存器读取或存放操作数,寻址某工作寄存器,自该寄存器读取或存放操作数,以完成指令所规定的操作。以完成指令所规定的操作。例例 MOV R3,A ;R3(A)ADD A,R2 ;A(A)+(R2)可以寻址的寄存器种类有工作寄存器可以寻址的寄存器种类有工作寄存器R0R7、累加器、累加器A、寄存器、寄存器B、数据指针、数据指针DPTR、位累加器、位累加器Cy。12:40153.寄存器间接寻址寄存器间接寻址寄存器中存放的是地址而不是操作数,寻找到该工作寄存器寄存
13、器中存放的是地址而不是操作数,寻找到该工作寄存器后,以其内容为地址,去寻找所指的后,以其内容为地址,去寻找所指的RAM单元以读取或存放单元以读取或存放操作数,称为寄存器间接寻址。操作数,称为寄存器间接寻址。例例 设设R1的内容为的内容为40H,则,则MOV A,R1;A片内片内RAM(40H)的内容的内容。图图4-1 MOV A,R1指令执行过程指令执行过程 H00H400R1R3FHH401AHXXA1AH12:4016说明说明:(1)对于对于51子系列单片机来说,寄存器间接寻址可用于访问内部子系列单片机来说,寄存器间接寻址可用于访问内部RAM的的128个存储单元(个存储单元(00H7FH)
14、,对于),对于52子系列单片机子系列单片机芯片则可以访问内部芯片则可以访问内部RAM的的256个单元个单元(00HFFH)。(2)只能用只能用R0或或R1间接寻址,对外部间接寻址,对外部RAM,当地址值,当地址值256B时,时,用用DPTR间接寻址。间接寻址。(3)书写单片机指令时,为了辨识是间接地址,规定在寄存器的书写单片机指令时,为了辨识是间接地址,规定在寄存器的前面加一前面加一作为前缀作为前缀。(4)此方式也可用于访问外部此方式也可用于访问外部RAM的的64KRAM。(5)此方式不可以用于访问特殊功能寄存器此方式不可以用于访问特殊功能寄存器。12:401751子系列的RAM编址图52子系
15、列的RAM编址图MOV指令,间接寻址方式(用R0或R1间接寻址)MOVX指令,间接寻址方式(用DPTR间接寻址,低256B用R0或R1间接寻址)MOVX指令,间接寻址方式(用DPTR间接寻址,低256B用R0或R1间接寻址)MOV指令,直接或间接寻址方式(用R0或R1间接寻址)MOV指令,直接或间接寻址方式(用R0或R1间接寻址)12:40184.直接寻址直接寻址直接给出操作数所在的存储单元地址,以供寻址取数直接给出操作数所在的存储单元地址,以供寻址取数或存放的寻址方式称为直接寻址。或存放的寻址方式称为直接寻址。对于对于80C51系列单片机,直接寻址可用于访问程序存储系列单片机,直接寻址可用于
16、访问程序存储器,也可用于访问数据存储器。器,也可用于访问数据存储器。12:4019(1)访问程序存储器的转移类指令访问程序存储器的转移类指令。长转移长转移 LJMP addrl6绝对转移绝对转移 AJMP addr11长调用长调用 LCALL addrl6绝对调用绝对调用 ACALL addrll执行这些指令后,执行这些指令后,PC整整16位或低位或低11位地址将更换为指令直接给位地址将更换为指令直接给出的地址,机器将改为访问以所给地址为起始地址的存储器区出的地址,机器将改为访问以所给地址为起始地址的存储器区间,取指令间,取指令(或取数或取数)依次执行依次执行。12:4020(2)访问数据存储
17、器的含访问数据存储器的含direct的各条指令的各条指令。例例 MOV A,direct MOV Rn,direct MOV direct1,direct212:4021说明:说明:1)direct是一个是一个8位地址,称为直接寻址字节。它的值如位地址,称为直接寻址字节。它的值如小于等于小于等于127,可用于访问片内,可用于访问片内RAM的低的低128个单元,它的值个单元,它的值如大于如大于127,专用于访问特殊功能寄存器。,专用于访问特殊功能寄存器。2)直接寻址是访问特殊功能寄存器的唯一方法。特殊功能寄存直接寻址是访问特殊功能寄存器的唯一方法。特殊功能寄存器占用的是片内器占用的是片内RAM自
18、自80HFFH间的地址,对于间的地址,对于51子系列,子系列,片内片内RAM只有只有128个单元,它与特殊功能寄存器没有地址重个单元,它与特殊功能寄存器没有地址重叠。对于叠。对于52子系列,片内子系列,片内RAM有有256个单元,其高个单元,其高128个单元个单元与特殊功能寄存器间有重叠了。为了避免混乱,设计时规定与特殊功能寄存器间有重叠了。为了避免混乱,设计时规定了直接寻址指令不能访问片内了直接寻址指令不能访问片内RAM的高的高128个单元,要访问个单元,要访问这些单元,只能用寄存器间址指令。这些单元,只能用寄存器间址指令。12:402251子系列的RAM编址图直接寻址方式52子系列的RAM
19、编址图直接寻址方式12:40235.变址寻址变址寻址(或称基址加变址寄存器间接寻址或称基址加变址寄存器间接寻址)这种寻址方式只用于访问程序存储器,当然只能读这种寻址方式只用于访问程序存储器,当然只能读取,不能存放,它主要用于查表性质的访问。取,不能存放,它主要用于查表性质的访问。以程序计数器以程序计数器PC或数据指针或数据指针DPTR作为基址寄存器,作为基址寄存器,以累加器以累加器A作为变址寄存器,把它们的和作为程序存储作为变址寄存器,把它们的和作为程序存储器的地址,再寻址该单元,读取数据。器的地址,再寻址该单元,读取数据。指令指令 MOVC A,A+DPTR MOVC A,A+PC12:40
20、24例如:例如:MOVC A,A+DPTR;A(A)+(DPTR)设设(A)=10H,(DPTR)=2000H,程序存储器的,程序存储器的(2010H)=36H,则,则上面语句的功能是将上面语句的功能是将A的内容与的内容与DPTR的内容相加,形成操作数的内容相加,形成操作数的地址的地址2010H,把该地址中的数据传送到累加器,把该地址中的数据传送到累加器A。即。即(DPTR)+(A)A。结果。结果(A)=36H。图4-2 MOVC A,A+DPTR的执行示意图12:40256.相对寻址相对寻址在相对转移指令中采用相对寻址方式,在指令的操作数部分给在相对转移指令中采用相对寻址方式,在指令的操作数
21、部分给出地址的相对偏移量。相对偏移量为一个带符号的出地址的相对偏移量。相对偏移量为一个带符号的8位二进制数。位二进制数。将相对转移指令所在的地址称为源地址;转移后的地址称为目将相对转移指令所在的地址称为源地址;转移后的地址称为目的地址。的地址。目的地址目的地址=源地址源地址+转移指令字节数转移指令字节数+相对偏移量。相对偏移量。12:4026例例 SJMP 50H设指令所在设指令所在PC值为值为2000H,而指令的机器码为,而指令的机器码为2字节字节80H、50H,则转移去的地址则转移去的地址=2000H+02H+50H=2052H,故指令执行后,故指令执行后,PC的值变为的值变为2052H,
22、程序下一次执行的地址为,程序下一次执行的地址为2052H。在实际编程中,往往已知源地址和目的地址,从而计算偏移量在实际编程中,往往已知源地址和目的地址,从而计算偏移量。在在80C51中,常用中,常用“rel”表示为相对偏移量。表示为相对偏移量。rel计算方法:计算方法:rel=目的地址目的地址(源地址源地址+转移指令字节数转移指令字节数)12:40277.位寻址位寻址80C51单片机设有独立的位处理器单片机设有独立的位处理器(布尔处理器布尔处理器),位寻址时,可以,位寻址时,可以对内部对内部RAM和特殊功能寄存器的某些位寻址单元进行寻址。和特殊功能寄存器的某些位寻址单元进行寻址。区分位地址与字
23、节地址的方法:主要看是位操作指令还是其它指区分位地址与字节地址的方法:主要看是位操作指令还是其它指令,若为位操作指令,则操作数中的地址一定是位地址,反之则令,若为位操作指令,则操作数中的地址一定是位地址,反之则为字节地址。为字节地址。例:例:SETB 30H;(;(30H)1 12:4028寻址方式总结:寻址方式总结:MCS-51系统的各寻址方式对应不同的存储器空间,系统的各寻址方式对应不同的存储器空间,使用时要特别注意在各种不同的存储器中采用什么寻使用时要特别注意在各种不同的存储器中采用什么寻址方式。址方式。12:4029 51子系列的ROM编址图1.直接寻址方式(转移指令)2.变址寻址方式
24、(MOVC指令)3.相对寻址方式(SJMP指令)片内数据存储器1.直接寻址方式2.间接寻址方式3.位寻址1.直接寻址方式2.位寻址间接寻址方式片外数据存储器间接寻址方式80HFFHSFR00H7FH片内RAM80HFFH片内RAM8032805212:403080C51系列单片机的指令系统包括系列单片机的指令系统包括数据传送、数据传送、算术运算、算术运算、逻辑运算、逻辑运算、控制转移、控制转移、位操作位操作五大类指令。五大类指令。分类介绍指令之前,先介绍描述指令的一些符号的意义。分类介绍指令之前,先介绍描述指令的一些符号的意义。Rn:表示通用寄存器表示通用寄存器R0R7。Ri:表示通用寄存器中
25、可间接寻址表示通用寄存器中可间接寻址(即用做即用做8位地址指针位地址指针)的寄的寄存器存器R0和和R1。#data8:表示表示8位立即数。位立即数。#data16:表示表示16位立即数。位立即数。4.1.3 指令系统指令系统12:4031direct:表示表示8位片内位片内RAM或或SFR区的直接地址。区的直接地址。addr16/addr11:表示外部程序寄存器的表示外部程序寄存器的16位或位或11位地址。位地址。rel:表示表示8位偏移量。位偏移量。bit:表示直接位地址。表示直接位地址。:间接寻址寄存器或基址寄存器的前缀,如间接寻址寄存器或基址寄存器的前缀,如Ri,DPTR/:位操作数的前
展开阅读全文