单片机C编程的位操作的一点感悟

单片机C语言的位操作在标准C语言腮红是没有涉及到的,但是在单片机C编程中非常常用和重要。
如果要定义PORTB7为输入口,可以用总线方式定义,当然也可以位操作定义。如DDRB=0x00
(将B端口所有的都设置为了输入);也可以用DDRB|=(1<<PB7),后者虽然看似麻烦,但是避免了
整一个端口的定义,也就是说,这个定义只影响PB7这个端口,而不影响到其他的端口。这也是后者的
优势所在。


下面来看看iom64.h中的C编程头文件定义:
/* Port B Data Register - PORTB */
#define    PB7       7
#define    PB6       6
#define    PB5       5
#define    PB4       4
#define    PB3       3
#define    PB2       2
#define    PB1       1
#define    PB0       0


还有一段代码是这样的:#define PORTB  _SFR_(0X02)  //记不清楚了,可以自己查一下
这段代码的意思是定义了一个类似标识符的东西,让这个标识符和0x02这个硬件上的物理地址
对应起来。

可以看到:1<<PB7也就是1左移了7位,在头文件中的宏定义可以自己改变。当然最好不要改变,呵呵。
有一些标准还是要遵循的,比如说在标准C语言中i,j,k一般用来当做循环体中的循环变量。而a一般
用来当做数组的变量名(当然在单片机中很少用到这么简单的变量名),m,n一般用作整形变量的变
量名,当然世事无绝对,呵呵,形成一种规范,或者说一种风格比较好。


【每天进步一点点,让优秀成为一种习惯】

一家之言哈,欢迎拍砖!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值