补充:单片机c语言与汇编语言混合编程.pptVIP

补充:单片机c语言与汇编语言混合编程.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
补充:单片机c语言与汇编语言混合编程

reg51.h和reg52.h:实质上是没有区别的,都是一些特殊功能寄存器的申明 sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; … absacc.h 可使用其中定义的宏来访问绝对地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD … ASSERT.h ASSERT.H 定义 assert调试宏。 表达式结果正确性测试并可使程序中止 CTYPE.h 包含有关字符分类及转换的各类信息 如 _ftolower ? ? ? _ftoupper ? ? ? isalnum ? ? ? ? ? isalpha ? ? ? ? ? isascii ? ? ? ? ? iscntrl isdigit ? ? ? ? ? isgraph ? ? ? ? ? islower ? ? ? ? ? isprint ? ? ? ? ? ispunct ? ? ? ? ? isspace isupper ? ? ? ? ? isxdigit ? ? ? ? toascii ? ? ? ? ? tolower ? ? ? ? ? toupper ERRNO.h 头文件errno.h定义了一个全局的宏errno,它被展开为一个int类型的“左值”,这意味着宏errno不一定是个对象的标识符,也可以展开为一个由函数返回的可以修改的“左值”,比如int *errno()。 简单来说,errno.h只是为了提供了一种错误报告机制。比如,一个函数调用fopen()发生了错误,它可能就会去修改errno的值,这样外部的代码可以通过判断errno的值来区分fopen()内部执行时是否发生错误,并根据errno值的不同来确定具体的错误类型。 FLOAT.h 包含有关浮点运算的一些参数和函数。 其他头文件 LIMIT.H 包含各环境参数、编译时间限制、数的范围等信息。 ? MATH.H 说明数学运算函数,还定了 HUGE VAL 宏, 说明了matherr和matherr子程序用到的特殊结构。 ? SETJMP.H 定义longjmp和setjmp函数用到的jmp buf类型,说明这两个函数。 STDARG.H 定义读函数参数表的宏。(如vprintf,vscarf函数)。 ? STDDEF.H 定义一些公共数据类型和宏。 STDIO.H 定义Kernighan和Ritchie在Unix System V 中定义的标准和扩展的类型和宏。还定义标准I/O 预定义流:stdin,stdout和stderr,说明 I/O流子程序。 ? STDLIB.H 说明一些常用的子程序:转换子程序、搜索/ 排序子程序等。 ? STRING.H 说明一些串操作和内存操作函数。 ? #inlude“stdio.h”与#inludestdio.h 双引号表示先在程序源文件所在目录查找,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件; 尖括号表示只在系统默认目录或者括号内的路径查找,通常用于包含系统中自带的头文件 有一个叫做math.h的头文件,而你的源代码目录里也有一个你自己写的math.h头文件,那么使用尖括号时用的就是系统里的;而使用双引号的话则会使用你自己写的那个。 void void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 规则一 如果函数没有返回值,那么应声明为void类型 。凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。 规则二如果函数无参数,那么应声明其参数为void int function(void) { return 1; } 规则三 小心使用void指针类型 规则四如果函数的参数可以是任意类型指针,那么应声明其参数为void * 规则五 void不能代表一个真实的变量 void a; //错误 function(void a); //错误 volatile 本意是“易变的” volatile定义的变量它的值在编译时是会改变的,跟const相反,而const定义的变量一直不会变的。用volatile声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 补充三:51汇编延时子程序说明 以12MHZ晶振为例,详细讲解MCS-51单片机中汇编程序延时的精确

文档评论(0)

ajgoaw + 关注
文档贡献者

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

1亿VIP精品文档

相关文档