单片机C语言学习.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
word完美格式 精心整理 学习帮手 单片机C语言之一 ??????????????? 预处理 一》宏定义: 1、不带参数: #define 标识符 常量表达式 ??? /*#define是宏定义命令,宏名(标识符)好习惯用大写*/ #define NIL 0x80 2、带参数:/*相当于小函数*/ #define 宏名(参数表) 字符串 ??? /*不仅要时行字任串替换还要进行参数的替换,在宏定义时,宏名与带参数的括弧之间不应该加空格,否则将空格以后的字符串都作为替代字符串的一部分,这可是很容易出错的*/ ??? 如:#define SQ(a,b) a*b ??? 使用:x=12;y=10;area=SQ(x,y);/*则area=12*10=120*/ 二》文件包含: #include 文件名或#include 文件名 ??? /*在 C中用双引用形式更保险, 在C51中常用物是尖括弧形式*/ 三》条件编译: ??? /*一般源程序中的所有程序行都参加编译,但有时希望对其中一部分内容只在满足一定条件下才进行编译,也就是对一部分内容指定编译的条件。*/ #if、#elif、 #else、#endif、#ifdef、#ifndef ??? /*选择不同的编译范围,产生不同的代码,提供通用性。*/ ??? /*如对8051在6MHZ与12MHZ下有*/ #ifdef cpu==8051 #define FREQ 6 /*程序段*/ #else #define FREQ 12/*程序段*/ #endif ??? /*这样下面的原程序不用做任何修改便可以使用于两种时钟频率的单片机系统*/ 四》其他: 1、#error:捕捉不可预料的编译条件 #if (myv!=0myv!=1)/*假定其值必为0或1*/ #error myv must be 1 or 0/*出错时显示*/ #endif 2、#pragma:用于在程序中向编译器传送各种编译控制命令 #pragma 编译命令序列 ??? /*例:想按如下命令编译ex.c c51 ex.c debug cod large可用:*/ #pragma DB CD LA #pragma disable ??? /*禁止中断*/ 单片机C语言之二 一》数据类型: ??????? char???????? int???????? long 1:unsinged???? 0~255???????? 0~65535???? 0~4294967295 2:signed???? -128~127???? -32768~32767???? -2147483648~2147483647 指针:*??????? 3字节 位标量:??? sbit 特殊功能寄存器:sfr 16位特殊功能寄存器:sfr16???? 占2个内存单元,0~65535 可寻址位:sbit利用他可访问51单片机的内部RAM中的可寻址位或特殊功能寄存器中的可寻址位 sfr P0=0x80; sbit P0_1=P0^1; ??? /*将P0口的口地址定义为80H,将P0.1位定义为P1_1*/ 二》数据存贮类型 ????????????????? 表1. C51数据存贮类型 ━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━ 数据存贮类型 ┃??????? 与存贮空间的对应关系???????????????? ━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━ ???? data???? ┃? 直接寻址片内数据存贮区,访速度快????????????????? ???? bdata??? ┃? 可位寻址片内数据存贮区,允许位与字节混合访问 ???? idata??? ┃? 间接寻址片内数据存贮区,可访问片内全部RAM地址空间 ???? pdata??? ┃? 分页寻址片外数据存贮区(256字节)由MOVX @R0访问??????????? ???? xdata??? ┃? 片外数据存贮区(64K),由MOVX @DPTR访问 ???? code???? ┃? 代码存贮区(64K),由MOVC @DPTR访问 ━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━ 变量的存贮类型定义: char data var ??? /*字符变量var被定义为data存贮类型,C51编译器将把该变量定位在51单片机片内数据区存贮区中*/ bit bdata flag ??? /*位变量flag被定义为bdata存贮类型,C51编译器将把该变量定位在51单片机片内数据区存贮区(RAM)中的位寻址区:20H--2FH*/ 三》typed

文档评论(0)

文档分享 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档