单片机c语言屏蔽第四位,单片机C语言学习

单片机C语言学习(推荐*精简实用)

关键词: 单片机  C语言

单片机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!=0&&myv!=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

┃ 间接寻

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值