第章C单片机的C语言程序设计.ppt

上传人:b****2 文档编号:2122298 上传时间:2022-10-27 格式:PPT 页数:44 大小:1.17MB
下载 相关 举报
第章C单片机的C语言程序设计.ppt_第1页
第1页 / 共44页
第章C单片机的C语言程序设计.ppt_第2页
第2页 / 共44页
第章C单片机的C语言程序设计.ppt_第3页
第3页 / 共44页
第章C单片机的C语言程序设计.ppt_第4页
第4页 / 共44页
第章C单片机的C语言程序设计.ppt_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

第章C单片机的C语言程序设计.ppt

《第章C单片机的C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《第章C单片机的C语言程序设计.ppt(44页珍藏版)》请在冰豆网上搜索。

第章C单片机的C语言程序设计.ppt

2022/10/271第第1010章章80C5180C51的的CC语言程序设计语言程序设计单片机单片机C语言概述语言概述10.1C51的的数据类型数据类型与运算与运算10.2C51流程流程控制语句控制语句10.3C51的的指针类型指针类型10.4C51的的函数函数10.5C51编程编程实例实例10.62022/10/27210.1单片机单片机C语言概述语言概述10.1.1C5110.1.1C51程序开发过程程序开发过程编译器能自动完成变量的存储单元的分配编译器能自动完成变量的存储单元的分配对常用功能模块和算法编制相应的函数,方便移植对常用功能模块和算法编制相应的函数,方便移植采用采用C51C51的优点的优点CC语言具有良好的可读性、可移植性和基本的硬件操作能力语言具有良好的可读性、可移植性和基本的硬件操作能力。

C51C51程序开发过程程序开发过程编写源程序编写源程序建立工程,加入源程序建立工程,加入源程序编译生产目标程序编译生产目标程序仿真调试、写存储器仿真调试、写存储器2022/10/2732022/10/27410.1.2C5110.1.2C51程序结构程序结构#include#include#include#includevoidvoiddelaymsdelayms(unsigned)(unsigned);voidvoidmain(void)main(void)unsignedchariunsignedchari;P1=0x01P1=0x01;dodofor(i=0for(i=0;i=7i=7;i+)i+)delaymsdelayms(5000)(5000);P1=P11P1=P11;if(P1=0x0)P1=0x01if(P1=0x0)P1=0x01;while

(1)while

(1);voidvoiddelaymsdelayms(unsignedx)(unsignedx)unsignedcharjunsignedcharj;while(x-)while(x-)for(j=0for(j=0;j123j123;j+)j+);2022/10/27510.2.1C5110.2.1C51的数据类型的数据类型10.2C51的数据类型与运算的数据类型与运算数据类型决定其数据类型决定其取值范围取值范围、占用、占用存储器的大小存储器的大小及可参与及可参与哪种运算。

哪种运算。

数据类型数据类型长度长度(位位)取值范围取值范围字符型字符型signedchar8-128127-128127unsignedchar80255整整型型signedint16-3276832767unsignedint16065535长整型长整型signedlong32-2147488364821474883647unsignedlong3204294967295浮点型浮点型float321.75494E-383.402823E+38位位型型bit10,1sbit10,1访问访问SFRsfr80255sfr16160655352022/10/276尽可能采用无符号格式尽可能采用无符号格式bitbit用用于于定定义义位位变变量量的的名名字字,编编译译器器会会对对其其分分配配地址(地址(RAMRAM的的20H20H2FH2FH区域区域)sbitsbit用用于于定定义义位位变变量量的的名名字字和和地地址址,地地址址是是确确定定的且不用编译器分配(的且不用编译器分配(SFRSFR及及RAMRAM的的20H20H2FH2FH区域区域)C51C51编译器在编译时会自动进行类型转换编译器在编译时会自动进行类型转换几点说明:

几点说明:

2022/10/27710.2.2C5110.2.2C51数据的存储类型数据的存储类型C51C51的存储的存储器器类型类型存储器类型存储器类型长度(位)长度(位)对应单片机存储器对应单片机存储器bdata1片内片内RAM位寻址区,共位寻址区,共128位。

(亦能字节访问)位。

(亦能字节访问)data8直接寻址,共直接寻址,共128字节。

字节。

idata8间接寻址,共间接寻址,共256字节。

字节。

pdata8片外片外RAM分页间址,共分页间址,共256字节。

(字节。

(MOVXRi)xdata16间接寻址,共间接寻址,共64k字节。

(字节。

(MOVXDPTR)code16ROM间接寻址,共间接寻址,共64k字节。

(字节。

(MOVCA,A+DPTR)2022/10/278经经常常使使用用的的变变量量应应该该置置于于片片内内RAMRAM中中,要要用用bdatabdata、datadata、idataidata来定义。

来定义。

不不经经常常使使用用的的变变量量或或规规模模较较大大的的变变量量应应该该置置于于片片外外RAMRAM中中,要用要用pdatapdata、xdataxdata来定义。

来定义。

默认存储器类型由编译控制命令的存储模式指令限制。

默认存储器类型由编译控制命令的存储模式指令限制。

存储模式存储模式默认默认存储类型存储类型特特点点SMALLdata小模式。

小模式。

变量默认在片内变量默认在片内RAM。

空间小,速度块。

空间小,速度块。

COMPACTpdata紧凑模式。

变量默认在片外紧凑模式。

变量默认在片外RAM的页(的页(256字节,页号由字节,页号由P2口决定)。

口决定)。

LARGExdata大模式。

大模式。

变量默认在片外变量默认在片外RAM的的64KB范围。

空间大,速度慢。

范围。

空间大,速度慢。

2022/10/27910.2.380C5110.2.380C51硬件结构的硬件结构的C51C51定义定义特殊功能寄存器的声明特殊功能寄存器的声明sfrsfr特殊功能寄存器名特殊功能寄存器名=地址常数;地址常数;格式:

格式:

例如:

例如:

sfrSCON=0x90sfrSCON=0x90;sfrP0=0x80sfrP0=0x80;2022/10/2710特殊功能寄存器中特殊功能寄存器中特定位特定位的声明的声明sbitsbit位变量名位变量名=特殊功能寄存器名特殊功能寄存器名位的位置(位的位置(0077)例如:

例如:

sfrPSW=0xD0sfrPSW=0xD0;sbitOV=PSW2sbitOV=PSW2;sbitsbit位变量名位变量名=字节地址字节地址位的位置(位的位置(0077)例如:

例如:

sbitOV=0xD02sbitOV=0xD02;sbitCY=0xD07sbitCY=0xD07;sbitsbit位变量名位变量名=位地址位地址例如:

例如:

sbitOV=0xD2sbitOV=0xD2;sbitCY=0xD7sbitCY=0xD7;2022/10/2711内部内部RAMRAM中可位寻址对象的定义中可位寻址对象的定义先先定义变量的数据类型和存储类型定义变量的数据类型和存储类型例如:

例如:

intbdataibaseintbdataibase;charbdataarray4charbdataarray4;再再利用利用sbitsbit进行声明进行声明例如:

例如:

sbitmybit0=ibase0sbitmybit0=ibase0;sbitmybit15=ibase15sbitmybit15=ibase15;sbitary07=array07sbitary07=array07;访问示例:

访问示例:

ibase=-1ibase=-1;array2=array2=aa;2022/10/2712算术运算符和算术表达式算术运算符和算术表达式10.2.4C5110.2.4C51的运算符和表达式的运算符和表达式基本算术运算符基本算术运算符例如:

例如:

+加法运算符;加法运算符;-减法(取负)运算符;减法(取负)运算符;*乘法运算符;乘法运算符;/除法运算符;除法运算符;%取余数运算符取余数运算符。

示例:

示例:

25.0/20.0=1.2525.0/20.0=1.2525/20=125/20=125%20=525%20=5取负运算优先级最高。

取负运算优先级最高。

2022/10/2713自增、自减运算符(自增、自减运算符(仅能用于变量仅能用于变量)例如:

例如:

+自增运算符;自增运算符;-自减运算符;自减运算符;类型转换运算符类型转换运算符自动转换,顺序:

自动转换,顺序:

bitcharintlongfloatbitcharintlongfloat强制类型转换,如:

(强制类型转换,如:

(doubledouble)aa2022/10/2714关系运算符关系运算符和和关系表达式关系表达式关系运算符关系运算符小于;小于;=大于;大于;=大于等于;大于等于;=等于;等于;!

=不等于。

不等于。

关系表达式关系表达式关系表达式的值为逻辑值:

真(关系表达式的值为逻辑值:

真(11)和假()和假(00)2022/10/2715逻辑运算符逻辑运算符和和逻辑表达式逻辑表达式逻辑运算符逻辑运算符&逻辑与逻辑与|逻辑或逻辑或!

逻辑非逻辑非逻辑表达式逻辑表达式逻辑表达式的值为逻辑值:

真(逻辑表达式的值为逻辑值:

真(11)和假()和假(00)例:

例:

5|05|0结果为结果为11,2&02&0结果为结果为002022/10/2716位运算符位运算符&按位与按位与|按位或按位或按位异或按位异或按位取反按位取反右移右移例:

例:

P1=P11P1=P11表示对表示对P1P1口的所有位左移口的所有位左移11位位2022/10/2717赋值和复合赋值运算符赋值和复合赋值运算符复合赋值运算符复合赋值运算符+=+=加法赋值;加法赋值;-=-=减法赋值;减法赋值;*=乘法赋值;乘法赋值;/=/=除法赋值;除法赋值;%=%=取模赋值;取模赋值;符号符号“=”称为赋值运算称为赋值运算符符=右移位赋值;右移位赋值;&=&=逻辑与赋值;逻辑与赋值;|=|=逻辑或赋值;逻辑或赋值;=逻辑异或赋值;逻辑异或赋值;=逻辑非赋值逻辑非赋值例:

例:

a*=5a*=5相当于相当于a=a*5a=a*5;b&=0x80b&=0x80相当于相当于b=b&0x80b=b&0x80。

2022/10/271810.3C51流程控制语句流程控制语句10.3.1C5110.3.1C51选择语句选择语句条件语句条件语句ifif(条件表达式)语句(条件表达式)语句例如:

例如:

ifif(p1p1!

=0=0)c=20c=20;ifif(条件表达式)语句(条件表达式)语句11elseelse语句语句22例如:

例如:

ifif(p1p1!

=0=0)c=20c=20;elsec=0elsec=0;2022/10/2719ifif(条件表达式(条件表达式11)语句)语句11elseifelseif(条件表达式(条件表达式22)语句)语句22elseifelseif(条件表达式(条件表达式33)语句)语句33elseifelseif(条件表达式(条件表达式nn)语句)语句nnelseelse语句语句n+1n+12022/10/2720开关语句开关语句switchswitch(表达式)(表达式)casecase常量表达式常量表达式11:

语句:

语句11;breakbreak;casecase常量表达式常量表达式22:

语句:

语句22;breakbreak;casecase常量表达式常量表达式nn:

语句:

语句nn;breakbreak;defaultdefault:

语句:

语句n+1n+1;2022/10/272110.3.2C5110.3.2C51循环语句循环语句whilewhile语句语句一般形式为:

一般形式为:

w

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1