- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机——第4章c51编程课件
第4章 单片机的C语言编程 4.1 C51的程序结构 4.2 C51的数据类型及运算符 4.3 C51的函数 4.4 C51程序设计;本章要点;概述;4.1 C51的程序结构 ;4.2 C51的数据类型及运算符;变量—在程序运行中其值可以改变的量。 一个变量由变量名和变量值构成,变量名即是存贮单元地址的符号表示,而变量的值就是该单元存放的内容。定义一个变量,编译系统就会自动为它安排一个存贮单元,具体的地址值用户不必在意。 ;1、程序存储器 如某变量需要存放在程序存储器中,定义时用存储类型 标识符code,程序运行中不可以改变用code定义的变量的值 2、数据存储器 (1)内部数据存储器 Data:片内数据存储区的低128字节中,直接寻址, 访问速度快 bdata : 可位寻址片内数据存储区,允许位与字节 混合访问(16字节) ,必须定义为全部变量 idata :片内数据存储区整个(256字节) ,间接访问;(2)外部数据存储器 间接访问,存取速度比较慢 pdata :分页寻址片外数据存储区(256字节) 由MOVX @R0,A指令访问 xdata :片外数据存储区(64K) 由MOVX @DPTR,A指令访问 ;存储类型 ;表 C51存储类型及其大小; 4.2.2、 存储模式 小模式,紧凑模式,大模式 变量若未定义存储类型,则C51编译器自动选择默认存储类型;4.2.3、 数据类型 C51编译器兼容ANSI C,支持ANSI C的基本数据类型,并对数据类型进行了扩展 1、C51支持的ANSI C数据类型;变量名称;2、C51扩展数据类型 Sfr,sfr16、sbit 用于访问特殊功能的寄存器SFR,这三种类型的变量只能声明为全局变量,并且在定义时必须指定变量访问的SFR地址。 (1)sfr 变量可以访问指定地址的8位SFR 格式:sfr 变量名=变量地址 例如:sfr P0=0X80; sfr P1=0X90; sfr P2=0XA0; sfr P3=0XB0; ; (2)sfr16 变量可以访问指定地址的16位SFR 格式:sfr16 变量名=变量地址 变量地址为16位特殊功能寄存器的低8位地址。 例如:sfr16 T2=0XCC; sfr T2-L=0XCC; sfr T2-H=0XCD; 定义sfr16和sfr类型的变量用于访问单片机定时器2的16位计数寄存器;(3)sbit 变量可以访问可位寻址的SFR中的某一位 格式: sbit变量名=位地址 sbit变量名=SFR地址^位序号 sbit变量名=Sfr变量^位序号 sbit变量名=Sfr16变量^位序号 例如:sfr P0=0X80; sbit P0-0=0X80; sbitP0-1=P0^1;4.2.4 、C51的指针 变量名对应于内存单元的地址,变量值则是放在内存单元中的数据。同时把存放变量x的地址称为指针,使用指针前也必须定义。 指针是一种特殊的数据类型,用指针声明的变量称为指针变量。 指针变量的值实际上是一个地址,是单片机内存单元的编号。 声明一个指针变量具有特殊的形式,如下所示: 类型标识符 *指针名; 类型标识符 *指针名1, *指针名2,…; ;1、通用指针 指向任何存储类型的变量 占3个字节,第一个字节说明存储类型,第二个字节 为变量地址的高8为;第三个字节为变量地址的低8位。 void main(){ unsigned char code HZ=0x88; unsigned char data var_data=0x12; unsigned char *ptr; unsigned char *idata iptr; char idata myvar=0x0A; ptr=HZ;
文档评论(0)