第4章80C51的汇编与C语言程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章80C51的汇编与C语言程序设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 80 C51 汇编 语言程序设计 课件
- 资源描述:
-
1、第第4章章80C51的汇编与的汇编与C语言程序设语言程序设计计2023-1-252v 单片机应用系统由硬件系统和应用程序构成单片机应用系统由硬件系统和应用程序构成v 汇编语言汇编语言v 高级语言高级语言v 应用程序设计方法应用程序设计方法 汇编语言,生成的目标程序占内存空间少、运行速度快,具有效率高、实时性强。汇编语言,生成的目标程序占内存空间少、运行速度快,具有效率高、实时性强。高级语言,对系统的功能描述与实现简单,程序阅读、修改和移植方便,适合于编写复杂的程高级语言,对系统的功能描述与实现简单,程序阅读、修改和移植方便,适合于编写复杂的程序。如序。如C51C51 4.1 单片机汇编及单片机
2、汇编及C语言概述语言概述 2023-1-253汇编语言的语句格式汇编语言的语句格式v非数字字符开头,后跟字母、数字、非数字字符开头,后跟字母、数字、“-”、“?”等等v不能用已定义的保留字(指令助记符、伪指令等)不能用已定义的保留字(指令助记符、伪指令等)v后跟英文冒号后跟英文冒号“:”KeilKeil的汇编器的汇编器A51A51可以识别的语句形式为:可以识别的语句形式为:v 标号(即符号地址)标号(即符号地址)标号:指令助记符指令助记符 操作数1,操作数2,操作数3,;注释v 指令助记符指令助记符是指令功能的英文缩写。是指令功能的英文缩写。4.1 单片机汇编语言概述单片机汇编语言概述 80C
3、5180C51的汇编语言程序设计的汇编语言程序设计-自学自学2023-1-2544.1 单片机单片机C语言概述语言概述 4.1.1 C514.1.1 C51程序开发过程程序开发过程 v 编译器能自动完成变量的存储单元的分配编译器能自动完成变量的存储单元的分配v 对常用功能模块和算法编制相应的函数,方便移植对常用功能模块和算法编制相应的函数,方便移植v 采用采用C51C51的优点的优点 C C语言具有良好的可读性、可移植性和基本的硬件操作能力语言具有良好的可读性、可移植性和基本的硬件操作能力 。v C51C51程序开发过程程序开发过程 v 编写源程序编写源程序v 建立工程,加入源程序建立工程,加
4、入源程序v 编译生产目标程序编译生产目标程序v 仿真调试、写存储器仿真调试、写存储器2023-1-2552023-1-2564.1.2 C514.1.2 C51程序结构程序结构#include#include#include#include void delayms(unsigned)void delayms(unsigned);void main(void)void main(void)unsigned char i unsigned char i;P1=0 x01P1=0 x01;dodo for(i=0for(i=0;i=7i=7;i+)i+)delayms(5000)delayms(5
5、000);P1=P11P1=P11;if(P1=0 x0)P1=0 x01if(P1=0 x0)P1=0 x01;while(1)while(1);void delayms(unsigned x)void delayms(unsigned x)unsigned char j unsigned char j;while(x-)while(x-)for(j=0 for(j=0;j123j123;j+)j+);2023-1-2574.2.1 C514.2.1 C51的数据类型的数据类型4.2 C51的数据类型与运算的数据类型与运算 数据类型决定其取值范围、占用存储器的大小及可参与哪种运算。数据类型决
6、定其取值范围、占用存储器的大小及可参与哪种运算。数据类型数据类型长度长度(位位)取值范围取值范围字符型字符型signed char8-128127unsigned char80255整整 型型signed int16-3276832767unsigned int16065535长整型长整型signed long32-2147488364821474883647unsigned long3204294967295浮点型浮点型float321.75494E-383.402823E+38位位 型型bit10,1sbit10,1访问访问SFRsfr80255sfr16160655352023-1-25
7、8v尽可能采用无符号格式尽可能采用无符号格式vbitbit用于定义位变量的名字,编译器会对其分配地址(用于定义位变量的名字,编译器会对其分配地址(RAMRAM的的20H20H2FH 2FH 区域)区域)vsbitsbit用于定义位变量的名字和地址,地址是确定的且不用编译器分配(用于定义位变量的名字和地址,地址是确定的且不用编译器分配(SFRSFR及及RAMRAM的的20H20H2FH 2FH 区域)区域)vC51C51编译器在编译时会自动进行类型转换编译器在编译时会自动进行类型转换 几点说明:几点说明:2023-1-2594.2.2 C514.2.2 C51数据的存储类型数据的存储类型vC51
8、C51的存储器类型的存储器类型存储器类型存储器类型长度(位)长度(位)对应单片机存储器对应单片机存储器bdata1片内片内RAM位寻址区,共位寻址区,共128位。(亦能字节访问)位。(亦能字节访问)data8直接寻址,共直接寻址,共128字节。字节。idata8间接寻址,共间接寻址,共256字节。字节。pdata8片外片外 RAM分页间址,共分页间址,共256字节。(字节。(MOVX Ri)xdata16间接寻址,共间接寻址,共64k字节。(字节。(MOVX DPTR)code16ROM间接寻址,共间接寻址,共64k字节。(字节。(MOVC A,A+DPTR)2023-1-2510v经常使用的
9、变量应该置于片内经常使用的变量应该置于片内RAMRAM中,要用中,要用bdatabdata、datadata、idataidata来定义来定义v不经常使用的变量或规模较大的变量应该置于片外不经常使用的变量或规模较大的变量应该置于片外RAMRAM中,要用中,要用pdatapdata、xdataxdata来定义来定义v默认存储器类型由编译控制命令的存储模式指令限制默认存储器类型由编译控制命令的存储模式指令限制 存储模式存储模式默认默认存储类型存储类型特特 点点SMALL data小模式。小模式。变量默认在片内变量默认在片内RAM。空间小,速度块。空间小,速度块。COMPACTpdata紧凑模式。变
10、量默认在片外紧凑模式。变量默认在片外RAM的页(的页(256字节,页号由字节,页号由P2口决定)。口决定)。LARGExdata大模式。大模式。变量默认在片外变量默认在片外RAM的的64KB范围。空间大,速度慢。范围。空间大,速度慢。2023-1-25114.2.3 80C514.2.3 80C51硬件结构的硬件结构的C51C51定义定义v特殊功能寄存器的声明特殊功能寄存器的声明 sfr sfr 特殊功能寄存器名特殊功能寄存器名 =地址常数;地址常数;格式:格式:例如:例如:sfr SCON=0 x90sfr SCON=0 x90;sfr P0=0 x80sfr P0=0 x80;2023-1
11、-2512v特殊功能寄存器中特定位的声明特殊功能寄存器中特定位的声明 vsbit sbit 位变量名位变量名=特殊功能寄存器名特殊功能寄存器名 位的位置(位的位置(0 07 7)例如:例如:sfr PSW=0 xD0sfr PSW=0 xD0;sbit OV=PSW2 sbit OV=PSW2;vsbit sbit 位变量名位变量名 =字节地址字节地址 位的位置(位的位置(0 07 7)例如:例如:sbit OV=0 xD02sbit OV=0 xD02;sbit CY=0 xD07 sbit CY=0 xD07;vsbit sbit 位变量名位变量名 =位地址位地址 例如:例如:sbit O
12、V=0 xD2sbit OV=0 xD2;sbit CY=0 xD7 sbit CY=0 xD7;2023-1-2513v内部内部RAMRAM中可位寻址对象的定义中可位寻址对象的定义 v先定义变量的数据类型和存储类型先定义变量的数据类型和存储类型 例如:例如:int bdata ibaseint bdata ibase;char bdata array4 char bdata array4;v再利用再利用sbitsbit进行声明进行声明 例如:例如:sbit mybit0=ibase0sbit mybit0=ibase0;sbit mybit15=ibase15 sbit mybit15=ib
13、ase15;sbit ary07=array07sbit ary07=array07;访问示例:访问示例:ibase=-1ibase=-1;array2=array2=a a;2023-1-2514v算术运算符和算术表达式算术运算符和算术表达式 4.2.4 C514.2.4 C51的运算符和表达式的运算符和表达式 v基本算术运算符基本算术运算符 例如:例如:+加法运算符;加法运算符;-减法(取负)运算符;减法(取负)运算符;*乘法运算符;乘法运算符;/除法运算符;除法运算符;%取余数运算符取余数运算符。示例:示例:25.0/20.0=1.25 25.0/20.0=1.25 25/20=125/
14、20=125%20=5 25%20=5 取负运算优先级最高。取负运算优先级最高。2023-1-2515v自增、自减运算符(仅能用于变量)自增、自减运算符(仅能用于变量)例如:例如:+自增运算符;自增运算符;-自减运算符;自减运算符;v类型转换运算符类型转换运算符 自动转换,顺序:自动转换,顺序:bitcharintlongfloatbitcharintlongfloat 强制类型转换,如:(强制类型转换,如:(doubledouble)a a 2023-1-2516v关系运算符和关系表达式关系运算符和关系表达式 v关系运算符关系运算符 小于;小于;=大于;大于;=大于等于;大于等于;=等于;等
15、于;!=不等于。不等于。v关系表达式关系表达式关系表达式的值为逻辑值:真(关系表达式的值为逻辑值:真(1 1)和假()和假(0 0)2023-1-2517v逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 v逻辑运算符逻辑运算符&逻辑与;逻辑与;|逻辑或;逻辑或;!逻辑非。逻辑非。v逻辑表达式逻辑表达式逻辑表达式的值为逻辑值:真(逻辑表达式的值为逻辑值:真(1 1)和假()和假(0 0)例:例:5|05|0结果为结果为1 1,2&02&0结果为结果为0 0 2023-1-2518v位运算符位运算符&按位与;按位与;|按位或;按位或;按位异或;按位异或;按位取反;按位取反;右移。右移。例:例:P1=
16、P11P1=P11表示对表示对P1P1口的所有位左移口的所有位左移1 1位位 2023-1-2519v赋值和复合赋值运算符赋值和复合赋值运算符 v复合赋值运算符复合赋值运算符 +=+=加法赋值;加法赋值;-=-=减法赋值;减法赋值;*=乘法赋值;乘法赋值;/=/=除法赋值;除法赋值;%=%=取模赋值;取模赋值;v符号符号“=”称为赋值运算符称为赋值运算符 =右移位赋值;右移位赋值;&=&=逻辑与赋值;逻辑与赋值;|=|=逻辑或赋值;逻辑或赋值;=逻辑异或赋值;逻辑异或赋值;=逻辑非赋值逻辑非赋值 例:例:a a*=5=5相当于相当于a=aa=a*5 5;b&=0 x80b&=0 x80相当于相
17、当于b=b&0 x80b=b&0 x80。2023-1-25204.3 C51流程控制语句流程控制语句 4.3.1 C514.3.1 C51选择语句选择语句 v条件语句条件语句vifif(条件表达式)语句(条件表达式)语句 例如:例如:if if(p1p1!=0=0)c=20 c=20;vifif(条件表达式)语句(条件表达式)语句1 1 else else 语句语句2 2 例如:例如:if if(p1p1!=0=0)c=20 c=20;else c=0 else c=0;2023-1-2521vifif(条件表达式(条件表达式1 1)语句)语句1 1 else if else if(条件表达
18、式(条件表达式2 2)语句)语句2 2 else if else if(条件表达式(条件表达式3 3)语句)语句3 3 else if else if(条件表达式(条件表达式n n)语句)语句n n else else 语句语句n+1 n+1 2023-1-2522v开关语句开关语句switch switch(表达式)(表达式)case case 常量表达式常量表达式1 1:语句:语句1 1;breakbreak;case case 常量表达式常量表达式2 2:语句:语句2 2;breakbreak;case case 常量表达式常量表达式n n:语句:语句n n;breakbreak;def
19、ault default:语句:语句n+1n+1;2023-1-25234.3.2 C514.3.2 C51循环语句循环语句 vwhilewhile语句语句 v 一般形式为:一般形式为:while while(条件表达式)语句;(条件表达式)语句;如果条件表达式的结果一开始就为假,则后面的语句一次也不能执行。如果条件表达式的结果一开始就为假,则后面的语句一次也不能执行。vdo-whiledo-while语句语句 v 一般形式为:一般形式为:do do语句语句 whilewhile(条件表达式);(条件表达式);任何条件下,循环体语句至少会被执行一次。任何条件下,循环体语句至少会被执行一次。20
20、23-1-2524vforfor语句语句v 一般形式为:一般形式为:for for(初值表达式初值表达式;条件表达式条件表达式;更新表达式更新表达式)语句)语句vifif语句与语句与gotogoto语句结合语句结合 v 当型循环当型循环 形式为:形式为:loop loop:ifif(表达式)(表达式)语句语句 goto loopgoto loop;2023-1-2525v 直到型循环直到型循环 形式为:形式为:loop loop:语句语句 ifif(表达式)(表达式)goto loopgoto loop;vcontinuecontinue是一种循环中断语句,它并不跳出循环体;是一种循环中断语句
展开阅读全文