网站大量收购独家精品文档,联系QQ:2885784924

第4章 单片机C语言及程序设计PPT.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 单片机C语言及程序设计PPT

12-11-6 存储器专用指针例子: (P81) unsigned char data *cpt1, *cpt2; signed int idata *dpt1, *dpt2; unsigned char pdata *ppt; signed long xdata *lpt1, *lpt2; unsigned char code *ccpt; 上面所定义的指针虽然所指向的空间不同,但指针变量本身都存储在默认的存储区域。 又如: 1)unsigned char data *idata cpt1,*idata cpt2; 2)signed int idata *data dpt1, *data dpt2; 3)unsigned char pdata *xdata ppt; 4)signed long xdata *lpt1, *xdata lpt2; 5)unsigned char code *data ccpt; 注意: (1)要区分指针变量指向的空间区域和指针变量本身所存储的区域; (2)定义时,指针的指向存储区属性不能缺省,而指针存储区属性可以缺省; (3)指向区域不同的指针变量,本身所占的字节数不同。 说明:指针变量本身所存储的区域,在定义指针时一般都省略了,指针变量本身保存在缺省存储的区域中,这样显得简单些,并且对初学者来说更容易理解。 4.6.4 C51指针应用 指针在PC机上的C语言中应用很广泛。在单片机中,由于不使用操作系统,指针的应用完全可以独立于变量,可以独立指向所需要的存储空间位置。本节通过例子来学习和认识C51指针的这种独立应用性。 借助于指针,能够方便地对所有空间的任一位置进行访问,也可以访问函数。下面介绍两种访问空间任一单元的方法。 一、通过专用指针直接访问存储器 使用指针直接访问存储器对PC机是禁止的,但对于单片机来说使用时注意是可以的。 使用指针直接访问存储器方法是先定义所需要的指针,给指针赋地址值,然后使用指针访问存储器。例如: unsigned char xdata *xcpt; xcpt=0x2000; *xcpt=123; xcpt++; *xcpt=234; 例4-1 编写程序,将单片机片外数据存储器中地址从0x1000开始20个字节数据,传送到片内数据存储器地址从0x30开始的区域。 程序段如下: unsigned char data i, *dcpt; unsigned char xdata *xcpt; dcpt=0x30; //给指针赋地址 xcpt=0x1000; for(i=0;i20;i++) *(dcpt+i)=*(xcpt+i); 4.7 C51的输入/输出 主要内容 4.7.1 格式输出函数printf 4.7.2 格式输入函数scanf C51的输入/输出函数,都是通过单片机的串行接口实现的。在使用这些I/O函数之前,必须先对单片机的串行口、定时器/计数器T1进行初始化。具体内容到后面介绍。 4.8 C51函数的定义 主要内容 4.8.1 C51函数的定义 4.8.2 C51中断函数的定义 C51函数的定义与ANSI C相似,但有更多的属性要求。本节先讨论函数的一般定义,然后专门给出中断函数的定义,因为中断函数有其特殊性。 4.8.1 C51函数的定义 在C51中,函数的定义与ANSI C中是相同的。唯一不同的就是在函数的后面需要带上若干个C51的专用关键字。C51函数定义的一般格式如下: 返回类型 函数名(形参表) [函数模式] [reentrant] [interrupt m] [using n] { 局部变量定义 执行语句 } 各属性含义如下: 函数模式:也就是编译模式、存储模式,可以为small、compact和large。缺省时则使用文件的编译模式。 关键字reentrant表示重入函数。所谓可重入函数,就是允许被递归调用的函数。是C51定义的。 在编译时会为重入函数生成一个堆栈,通过这个堆栈来完成参数的传递和存放局部变量。 重入函数不能使用bit型参数;函数返回值也不能是bit型。 interrupt m表示中断处理函数及中断号。 interrupt是C51定义的。C51支持32个中断源,中断入口地址与中断号m的关系为:中断入口地址=3+8×m。 表4-7 单片机中断源与中断号

文档评论(0)

erfg4eg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档