第5章 单片机C51程序设计基础_第1页
第5章 单片机C51程序设计基础_第2页
第5章 单片机C51程序设计基础_第3页
第5章 单片机C51程序设计基础_第4页
第5章 单片机C51程序设计基础_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章:C51程序设计的基础,5.1C51的特点,C51程序结构与标准C语言程序结构相同,采用函数结构,具有一个且只有一个main()函数。C51功能1。C51中定义的库函数不同于标准C中定义的库函数,C51是根据单片机的结构定义的。2.C51的数据类型不同于标准的C,增加了几种单片机类型。3.C51的存储类型不同于标准的C变量,C51的存储模式与单片机的存储密切相关。4.C51在功能使用上不同于标准C,C51具有特殊的中断功能。1。C51数据类型,1。与标准c:相同的基本数据类型,字符字符char: 8位,默认值为signedchar范围:128 127unsignedchar范围0255

2、int: 16位,默认值为signed范围:-32768 32767 unsigned范围:065535 short: 16位long: 32位signedlong范围:-2147483648 214748364 unsigned long范围:042949674双精度浮点数双精度:64位。2、特殊功能寄存器类型C51唯一数据类型,用于访问单片机中的特殊功能寄存器,主要介绍两种类型:sfr,sfr16sfr:字节型特殊功能寄存器类型,可以访问单片机中的所有特殊功能寄存器。Sfr16:双字体特殊功能寄存器类型注:对C51中所有特殊功能寄存器的访问需要用这两个类型描述符来解释。定义格式为sfr(s

3、fr16)特殊功能寄存器名称=地址。示例:特殊功能寄存器sfrPSW=OXD0的定义;sfrP0=0X80。3.位类型用于访问微控制器中的可寻址位单元。C51支持两种位类型:位类型和sbit类型。sbit定义的位变量与微控制器中的可寻址位单元相关联。格式:sbit位变量名=位地址示例:sbitCY=0XD7sb衣康=0XD6说明:1。keil公司的C51开发软件提供reg51.h和reg52.h头文件,并定义相应的特殊函数寄存器和位。向程序中添加51个头文件# include。2.程序中有三种Sbit位变量=特殊寄存器名:sbitkey=P00sbitP0 _ 1=P01Sbit位变量=直接位

4、地址示例:sbitkey=0 x80h。sbitP0 _ 1=0 x81hSbit位变量=字节地址位数示例:sbitkey=0 x80h0。其次,C51数据的存储类型变量可以通过关键字或存储模式来指定。1.关键字指定由关键字直接声明的变量数据的存储类型,例如:chardatavar1;在片内随机存取存储器的下部128B中,字符变量unsignedintbdatavar2定义了通过直接寻址访问;变量var2unsignedcharxdataadda128在位寻址区域定义。128个存储单元intcodevar3被定义在片外随机存取存储器区域中;在只读存储器空间中定义整数变量var3。描述:代码程序

5、存储区中的数据不能更改。通常,程序中的固定数据被声明为代码类型。示例:公共阴极七段数字管无符号声明=0x37、0x06、0x5b。2.存储模式存储模式为没有明确指定存储类型的变量确定默认存储区域。3种存储模式:小模式,所有默认变量参数都加载到内部内存中。优点是快速压缩模式,所有默认变量都位于外部内存区域的一页(256字节)上。优点是可用空间比小空间更充足,速度比小空间慢,但比大空间快。在大模式下,所有默认变量都可以放在最大64KB的外部内存区域。优点是空间大,变量多,但缺点是速度比前两种模式慢。如何在程序中定义它:变量存储模式:#pragma预处理命令实现示例:# pragma Compact

6、Chari函数存储模式:定义函数时,后面跟一个存储模式示例:intfunc1(intx1)大描述:如果变量和函数定义了默认存储模式,则默认为小模式。,3。C51,1的运算符和表达式。赋值运算符,2。算术运算符,2。关系运算符,3。逻辑运算符,4。按位运算符,4。C51程序结构,三种基本结构:序列结构,选择分支结构和循环结构1。选择分支结构中使用的语句:if语句,switch/case语句if语句else语句break案例值2:陈述;休息;默认:语句。休息;循环结构提供了三种循环结构:for语句、while语句、dowhile语句while类型循环结构、dowhile类型循环结构、C51软件和硬

7、件一起使用,以及无限循环语句for(;)而(1),5。C51函数,1。函数类型的定义函数名称(形式参数)中断局部变量定义函数体(1)函数类型是函数返回值的类型,没有返回值,定义为void(2)没有函数,没有参数传递,没有形式参数或void。(3)中断修改量中断程序必须使用该修改量M值0310-外部中断01-定时器/计数器02-外部中断13-定时器/计数器14-串行端口中断5-定时器/计数器2描述:中断功能不能传递参数,并且该参数是没有返回值的空中断功能;(4)使用修饰符函数:指定此函数内部使用的寄存器集n=注意:此修饰符不能用于返回值来自的函数。例1:1:P1端口的高四位开关控制发光二极管# include # includesbitp1 _ 0=P10sbitp1 _ 1=P11sbitp1 _ 2=P12sbitp1 _ 3=P13sbitp 1 _ 4=P14;sbitp1 _ 5=P15sbitp1 _ 6=P16sbitp1 _ 7=P17main()P1 _ 0=P1 _ 4;P1 _ 1=P1 _ 5;P1 _ 2=P1 _ 6;P1 _ 3=P1 _ 7;示例2: P1端口控制数字管# include

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论