5项目二51单片机编程语言和仿真调试知识的学习课件电子教案幻灯片.ppt
-
资源ID:88683688
资源大小:111KB
全文页数:23页
- 资源格式: PPT
下载积分:9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
5项目二51单片机编程语言和仿真调试知识的学习课件电子教案幻灯片.ppt
项目二 51单片机编程语言和仿真调试知识的学习项目目标项目目标了解单片机的编程语言知识了解单片机的编程语言知识了解了解51单片机的汇编语言及指令系统单片机的汇编语言及指令系统了解单片机了解单片机C语言特点及编程知识语言特点及编程知识了解单片机的开发与仿真方法了解单片机的开发与仿真方法学习学习Keil与与Proteus联调单片机的开发与仿真方法联调单片机的开发与仿真方法项目任务项目任务熟悉单片机的编程语言熟悉单片机的编程语言掌握单片机掌握单片机C语言语句特点语言语句特点能够使用能够使用Keil软件进行软件进行C语言编程并正确设置软件语言编程并正确设置软件能够用能够用Proteus软件绘制硬件电路图软件绘制硬件电路图能够利用能够利用Keil软件和软件和Proteus软件进行系统联调。软件进行系统联调。项目背景项目背景单片机的编程语言常用的有二种,分别是汇编语言和单片机的编程语言常用的有二种,分别是汇编语言和 C 语语言。言。汇编语言是是面向机器的程序设计语言,也是能直接控制汇编语言是是面向机器的程序设计语言,也是能直接控制硬件的语言。在汇编语言中,用助记符硬件的语言。在汇编语言中,用助记符(Memoni)代替操作代替操作码,用地址符号码,用地址符号(Symbol)或标号或标号(Label)代替地址码。代替地址码。汇编语言的机器代码生成效率很高但可读性不强,复杂一汇编语言的机器代码生成效率很高但可读性不强,复杂一点的程序就更是难读懂,而点的程序就更是难读懂,而C语言在大多数情况下其机器语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且在使用远超过汇编语言,而且在使用C语言编程时还可以嵌入汇语言编程时还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用中大型的软件编写用C语言的开发周期通常要小于汇编语语言的开发周期通常要小于汇编语言很多。言很多。由德国由德国Keil software 公司推出的公司推出的C51Keil C51,Keil C51由于编译速度快,代码效率高,并配有由于编译速度快,代码效率高,并配有Keil vision 集成开发平台,得到了广泛的应用。集成开发平台,得到了广泛的应用。项目背景项目背景Keil Vision4软件支持基于软件支持基于MCS51架构的架构的51系列单片机系列单片机芯片,同时还支持芯片,同时还支持PLM,汇编和,汇编和C语言的程序设计;集成语言的程序设计;集成了文件编辑处理、编译链接、项目管理、窗口、工具引用了文件编辑处理、编译链接、项目管理、窗口、工具引用和软件仿真调试等多种功能。并且界面友好、易学易用,和软件仿真调试等多种功能。并且界面友好、易学易用,在调试程序、软件仿真等方面具有强大的功能。在调试程序、软件仿真等方面具有强大的功能。Proteus软件是英国软件是英国Labcenter electronics公司出版的公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有工具软件(该软件中国总代理为广州风标电子技术有限公司),它不仅具有其它限公司),它不仅具有其它EDA工具软件的仿真功能,还工具软件的仿真功能,还能仿真单片机及外围器件。从原理图布图、代码调试到单能仿真单片机及外围器件。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到片机与外围电路协同仿真,一键切换到PCB设计,真正实设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30、AVR、ARM、8086和和MSP430等,等,即将增加即将增加Cortex和和DSP系列处理器,并持续增加其他系列系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持处理器模型。在编译方面,它也支持IAR、Keil和和MPLAB等多种编译器。等多种编译器。单片机的编程语言单片机的编程语言1汇编语言汇编语言(Assembly Language)汇编语言是面向具体机型的,它离不开具体计算汇编语言是面向具体机型的,它离不开具体计算机的指令系统,对于不同型号的计算机,有着不机的指令系统,对于不同型号的计算机,有着不同结构的汇编语言。各大类单片机的指令系统是同结构的汇编语言。各大类单片机的指令系统是由单片机生产厂家规定的,所以用户必须遵循厂由单片机生产厂家规定的,所以用户必须遵循厂家规定的标准,才能达到应用单片机的目的。家规定的标准,才能达到应用单片机的目的。汇编语言比机器语言易于读写、调试和修改,同汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。接在不同处理器体系结构之间移植。1汇编语言汇编语言(Assembly Language)汇编语言程序的特点汇编语言程序的特点:1)面向机器的低级语言,通常是为特定的)面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。计算机或系列计算机专门设计的。2)保持了机器语言的优点,具有直接和简)保持了机器语言的优点,具有直接和简捷的特点。捷的特点。3)可有效地访问、控制计算机的各种硬件)可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、设备,如磁盘、存储器、CPU、I/O端口等。端口等。4)目标代码简短,占用内存少,执行速度)目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。快,是高效的程序设计语言。2C 语言语言掌握用掌握用C语言对单片机编程很重要,可以大大提语言对单片机编程很重要,可以大大提高开发的效率。总的来说,单片机编程要灵活使高开发的效率。总的来说,单片机编程要灵活使用汇编语言与用汇编语言与C语言,让单片机的强大功能以最语言,让单片机的强大功能以最高是效率展示给用户。高是效率展示给用户。C 语言程序特点语言程序特点1)简洁、紧凑,使用方便、灵活。相对其他计算)简洁、紧凑,使用方便、灵活。相对其他计算机语言而言源程序较短,因此输入程序时工作量机语言而言源程序较短,因此输入程序时工作量少。少。2)既具有高级语言的特点,又具有低级语言的一)既具有高级语言的特点,又具有低级语言的一些功能,可以直接对硬件进行操作。些功能,可以直接对硬件进行操作。2C 语言语言3)C 语言是一种结构化程序设计语言,它具有结构化控语言是一种结构化程序设计语言,它具有结构化控制语句。因此,制语句。因此,C 语言十分有利于实现结构化、模块化程语言十分有利于实现结构化、模块化程序设计。序设计。4)C 语言的运算符丰富,表达式类型多样化。灵活使用语言的运算符丰富,表达式类型多样化。灵活使用各种各种 C 语言的运算符可以实现在其他高级语言中难以实现语言的运算符可以实现在其他高级语言中难以实现的运算。的运算。5)数据类型丰富,能用来实现各种复杂的数据结构。因)数据类型丰富,能用来实现各种复杂的数据结构。因此,此,C 语言具有很强的数据处理能力。语言具有很强的数据处理能力。6)程序中可以使用某些编译预处理语句,有利于提高程)程序中可以使用某些编译预处理语句,有利于提高程序质量和软件开发的工作效率。序质量和软件开发的工作效率。7)生成的代码质量高。)生成的代码质量高。C 语言代码效率只比汇编语言代语言代码效率只比汇编语言代码效率低码效率低 1020。8)程序不依赖于机器硬件系统,从而便于在硬件结构不)程序不依赖于机器硬件系统,从而便于在硬件结构不同的机种间和各种操作系统中实现程序的移植。同的机种间和各种操作系统中实现程序的移植。学习任务学习任务1 汇编语言指令系统有关知识的学习汇编语言指令系统有关知识的学习学习内容学习内容汇编语言指令格式汇编语言指令格式指令字节、寻址方式、常用符号、常用伪指令等指令中指令字节、寻址方式、常用符号、常用伪指令等指令中常用的概念常用的概念单片机指令系统说明单片机指令系统说明51单片机具体指令功能学习单片机具体指令功能学习学习目标学习目标掌握汇编语言指令格式掌握汇编语言指令格式掌握指令字节、寻址方式、常用符号、常用伪指令等书掌握指令字节、寻址方式、常用符号、常用伪指令等书写规范写规范了解了解51单片机指令系统单片机指令系统了解了解51单片机具体指令的功能单片机具体指令的功能一、汇编语言指令格式一、汇编语言指令格式51单片机采用助记符表示的汇编语言指令格式如下:单片机采用助记符表示的汇编语言指令格式如下:标号标号:操作码:操作码 操作数或操作数地址操作数或操作数地址;注释;注释其中标号是程序员根据编程需要给指令设定的符号地址,其中标号是程序员根据编程需要给指令设定的符号地址,通常由通常由1-8个字符组成,并且第一个字符必须是英文字,个字符组成,并且第一个字符必须是英文字,标号后必须用冒号,一般在功能程序段的开始以程序段名标号后必须用冒号,一般在功能程序段的开始以程序段名称作为标号,注意标号不能以寄存器名称、指令助记符命称作为标号,注意标号不能以寄存器名称、指令助记符命名。名。操作码表示指令的操作种类,如操作码表示指令的操作种类,如MOV表示数据传送操作等。表示数据传送操作等。操作数或操作数地址表示参加运算的数据或数据的有效地操作数或操作数地址表示参加运算的数据或数据的有效地址,与具体的指令和操作数的寻址方式有关。址,与具体的指令和操作数的寻址方式有关。注释是对指令的解释说明,用以提高程序的可读性,注释注释是对指令的解释说明,用以提高程序的可读性,注释前必须加分号。在简单的程序段中注释可不写。前必须加分号。在简单的程序段中注释可不写。二、指令字节二、指令字节指令字节是指指令被编译为相应的操作代码(机器码或称指令字节是指指令被编译为相应的操作代码(机器码或称机器语言)后占用的字节数。机器语言)后占用的字节数。51单片机指令系统中有单字节指令、双字节指令和三字节单片机指令系统中有单字节指令、双字节指令和三字节指令三种格式。指令越短,占用程序存储器的空间越少。指令三种格式。指令越短,占用程序存储器的空间越少。一字节指令一字节指令一字节指令只有一个字节,操作码和操作数信息同在其中。一字节指令只有一个字节,操作码和操作数信息同在其中。51单片机指令系统中,共有一字节指令单片机指令系统中,共有一字节指令49条。条。二字节指令二字节指令二字节指令包括二个字节,其中第一个字节为操作码,第二字节指令包括二个字节,其中第一个字节为操作码,第二个字节为操作数。二个字节为操作数。51单片机指令系统中,共有二字节指单片机指令系统中,共有二字节指令令45条。条。三字节指令三字节指令三字节指令中,操作码占一个字节,操作数占两个字节,三字节指令中,操作码占一个字节,操作数占两个字节,其中操作数可能是数据,也可能是地址。其中操作数可能是数据,也可能是地址。51单片机指令系单片机指令系统中,共有三字节指令统中,共有三字节指令17条。条。三、寻址方式三、寻址方式对指令中操作数的表达方式称为寻址方式。对指令中操作数的表达方式称为寻址方式。操作数是指令的重要组成部分,一条指令操作数是指令的重要组成部分,一条指令采用什么样的寻址方式由指令的功能决定,采用什么样的寻址方式由指令的功能决定,寻址方式越多,指令功能越强。寻址方式越多,指令功能越强。51单片机的指令系统使用单片机的指令系统使用7种寻址方式,包种寻址方式,包括寄存器寻址、直接寻址、立即数寻址、括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址和寄存器间接寻址、变址寻址、相对寻址和位寻址等。位寻址等。1寄存器寻址方式寄存器寻址方式寄存器寻址方式是一种简单快捷的寻址方式,操寄存器寻址方式是一种简单快捷的寻址方式,操作数在寄存器中,在指令中使用寄存器的符号表作数在寄存器中,在指令中使用寄存器的符号表示目标操作数的寻址方式。示目标操作数的寻址方式。寄存器寻址方式的寻址范围包括通用寄存器和部寄存器寻址方式的寻址范围包括通用寄存器和部分专用寄存器,指令中可以引用的寄存器及其符分专用寄存器,指令中可以引用的寄存器及其符号名称如下:号名称如下:8位寄存器有:位寄存器有:A、B、Rn及特殊功能寄存器及特殊功能寄存器PSW、DPH和和DPL等。等。例:例:MOV A,Rn;其功能是将寄存器;其功能是将寄存器Rn的内容的内容送到累加器送到累加器A中,操作数在中,操作数在Rn中。中。2直接寻址方式直接寻址方式直接寻址方式是操作数存放在内存单元中,指令直接寻址方式是操作数存放在内存单元中,指令中直接以该内存单元的有效地址表达出操作数的中直接以该内存单元的有效地址表达出操作数的寻址方式。在这种寻址方式中,操作数项给出的寻址方式。在这种寻址方式中,操作数项给出的是参与运算的是操作数的地址,面不是操作数本是参与运算的是操作数的地址,面不是操作数本身。身。直接寻址只能用来表示特殊功能寄存器、内部数直接寻址只能用来表示特殊功能寄存器、内部数据存储器及位地址空间。据存储器及位地址空间。例:例:MOV A,30H;其功能是将;其功能是将30H单元中的数单元中的数送入送入A寄存器,寄存器,30H是操作数所在的单元地址,而是操作数所在的单元地址,而并非操作数。并非操作数。3寄存器间接寻址方式寄存器间接寻址方式寄存器间接寻址方式指寄存器存放的是操作数的寄存器间接寻址方式指寄存器存放的是操作数的地址,即操作数是通过寄存器间接得到的,因此地址,即操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。称为寄存器间接寻址。寄存器间接寻址必须以寄存器符号的形式表示。寄存器间接寻址必须以寄存器符号的形式表示。51单片机的指令系统规定工作寄存器的单片机的指令系统规定工作寄存器的R0、R1或或DPTR作为间接寻址寄存器,用于寻址内部或作为间接寻址寄存器,用于寻址内部或外部数据存储器单元。外部数据存储器单元。为了区别寄存器寻址和寄存器间接寻址,在寄存为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方式中,在寄存器的名称前面加前缀器间接寻址方式中,在寄存器的名称前面加前缀标志标志“”。寄存器间接寻址方式寻址范围为内部寄存器间接寻址方式寻址范围为内部RAM低低128单元(通用形式为单元(通用形式为Ri(i=0或或1)和外部)和外部RAM中中64KB(通用形式为(通用形式为DPTR)。)。例:例:MOV A,R0;指令以;指令以R0寄存器内容寄存器内容为地址,把该地址单元的内容送累加器为地址,把该地址单元的内容送累加器A;MOVX A,DPTR;其功能是把;其功能是把DPTR指定指定的外部的外部RAM单元的内容送累加器单元的内容送累加器A。外部外部RAM中低中低256单元是一个特殊的寻址区,单元是一个特殊的寻址区,除使用除使用DPTR做间址寄存器寻址外,还可使做间址寄存器寻址外,还可使用用R0或或R1作间址寄存器寻址。作间址寄存器寻址。3寄存器间接寻址方式寄存器间接寻址方式4立即寻址方式立即寻址方式立即寻址方式指操作数在指令中直接给出,立即寻址方式指操作数在指令中直接给出,出现在指令中的操作数称为立即数,为了出现在指令中的操作数称为立即数,为了与直接寻址指令中的直接地址区别,在立与直接寻址指令中的直接地址区别,在立即数前面加即数前面加“#”标志。标志。例:例:MOV A,#05H;其功能是把立即数;其功能是把立即数05H送送A寄存器。寄存器。5变址寻址方式变址寻址方式变址寻址方式指以变址寻址方式指以DPTR或或PC做基址寄存做基址寄存器,以累加器器,以累加器A做为变址寄存器,并以两者做为变址寄存器,并以两者内容相加形成内容相加形成16位地址做为操作数的地址。位地址做为操作数的地址。例:例:JMP A+DPTR;其功能是把;其功能是把DPTR和和A的内容相加,得到的数据作为跳的内容相加,得到的数据作为跳转指令的目的地址。转指令的目的地址。6相对寻址方式相对寻址方式相对寻址是以当前程序计数器相对寻址是以当前程序计数器PC的内容为基址,的内容为基址,加上指令给出的操作数(偏移量)形成新的加上指令给出的操作数(偏移量)形成新的PC值,值,作为跳转指令的转移地址(也称目的地址)的寻作为跳转指令的转移地址(也称目的地址)的寻址方式称为相对寻址。址方式称为相对寻址。相对转移以转移指令所在地址为基点,向前最大相对转移以转移指令所在地址为基点,向前最大可转移(可转移(127+转移指令字节数)个单元,向后最转移指令字节数)个单元,向后最大可转移(大可转移(128-转移指令字节数)个单元。转移指令字节数)个单元。例:例:SJMP rel(标号);该跳转指令的目的地(标号);该跳转指令的目的地址是由当前的址是由当前的PC值与偏移量值与偏移量rel相加得到。相加得到。7位寻址方式位寻址方式51单片机有位处理功能,对位地址中的内容进行单片机有位处理功能,对位地址中的内容进行位操作的寻址方式成为位寻址。位操作的寻址方式成为位寻址。由于单片机中只有内部由于单片机中只有内部RAM和特殊功能寄存器的和特殊功能寄存器的部分单元有位地址,因此位寻址只能对有位地址部分单元有位地址,因此位寻址只能对有位地址的这两个空间进行寻址操作。位寻址是一种直接的这两个空间进行寻址操作。位寻址是一种直接寻址方式,由指令给出直接位地址。与直接寻址寻址方式,由指令给出直接位地址。与直接寻址不同的是,位寻址只给出位地址,而不是字节地不同的是,位寻址只给出位地址,而不是字节地址。址。例:例:ANL C,30H;指令功能是累加位;指令功能是累加位C的状态的状态和地址为和地址为30H的位状态进行逻辑与操作,并把结的位状态进行逻辑与操作,并把结果保存在果保存在C中。中。四、单片机指令系统说明四、单片机指令系统说明51单片机共有单片机共有111条指令,按其功能可分为条指令,按其功能可分为5类类 数据传送类指令(共数据传送类指令(共29条)。分为片内条)。分为片内RAM、片外、片外RAM、程序存储器的传送指令、交换及堆栈操作指令。、程序存储器的传送指令、交换及堆栈操作指令。算数运算类指令(共算数运算类指令(共24条)。分为加、带进位加、减、条)。分为加、带进位加、减、乘、除、加乘、除、加1、减、减1指令。指令。逻辑运算及移位类指令(共逻辑运算及移位类指令(共24条)。分为逻辑与、或、条)。分为逻辑与、或、异或、移位指令。异或、移位指令。布尔变量操作类指令(共布尔变量操作类指令(共17条)。分为位变量传送、条)。分为位变量传送、位变量与、或、位测试转移指令。位变量与、或、位测试转移指令。控制转移类指令(共控制转移类指令(共17条)。分为无条件转移、调用、条)。分为无条件转移、调用、条件转移和空操作指令。条件转移和空操作指令。五、五、常常用用符符号号Rn 工作寄存器工作寄存器R0 R7 Ri 间接寻址寄存器间接寻址寄存器R0、R1 Direct 直接地址,包括内部直接地址,包括内部128B RAM单元地址、单元地址、26个个SFR地址地址#data 8位常数位常数#data 16 16位常数位常数 addr 16 16位目的地址位目的地址 addr 11 11位目的地址位目的地址 rel 8位带符号的偏移地址位带符号的偏移地址 DPTR 16位外部数据指针寄存器位外部数据指针寄存器 bit 可直接位寻址的位可直接位寻址的位 A 累加器累加器 B 寄存器寄存器B C 进、借位标志位,或位累加器进、借位标志位,或位累加器 间接寄存器或基址寄存器的前缀间接寄存器或基址寄存器的前缀 /指定位求反指定位求反(x)x中的内容中的内容(x)x中的地址中的内容中的地址中的内容 当前指令存放的地址当前指令存放的地址:传送方向。:传送方向。六、常用伪指令六、常用伪指令在编程过程中为了做一些标记、规定程序段的起始地址和在编程过程中为了做一些标记、规定程序段的起始地址和标记程序结束等用处常使用一些伪指令,伪指令一般不属标记程序结束等用处常使用一些伪指令,伪指令一般不属于指令系统,不产生机器代码,但编译软件在编译程序时于指令系统,不产生机器代码,但编译软件在编译程序时却有实际意义,同时也为识读程序提供了方便。却有实际意义,同时也为识读程序提供了方便。介绍几个常用的伪指令。介绍几个常用的伪指令。ORG:程序段起始地址伪指令,用来规定汇编语言程:程序段起始地址伪指令,用来规定汇编语言程序段在程序存储器中存放的起始地址,格式如下:序段在程序存储器中存放的起始地址,格式如下:ORG 16位地址位地址例:例:ORG 0100H表示下面的程序地址从表示下面的程序地址从0100H开始。开始。在一个源程序中,可多次使用在一个源程序中,可多次使用ORG指令,规定不同程序段指令,规定不同程序段的起始位置。的起始位置。END:程序结束伪指令,用在程序的末尾,表示程序:程序结束伪指令,用在程序的末尾,表示程序已结束。汇编程序对已结束。汇编程序对END以后的指令不再汇编。以后的指令不再汇编。EQU:赋值伪指令。:赋值伪指令。DB:定义字节伪指令,常用于定义数据常数表。:定义字节伪指令,常用于定义数据常数表。BIT:位定义伪指令。:位定义伪指令。七、七、51单片机具体指令功能单片机具体指令功能51单片机具体指令具体功能见教材列表: