打印
[疑难问答]

如何定义单片机中位寻址的位为标志

[复制链接]
864|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xia00|  楼主 | 2016-11-9 21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如PSW中的F0,可以在程序中判断为1或为0,还可以置1或清零。我看了郭天详的视频,他讲课直接用一个字节8位做标志,实在是浪费,51的资料RAM从20H到2FH有16字节共128位可位寻址,请教高手C语言如何定义可寻址位为标志
沙发
hfdy01| | 2016-11-9 21:17 | 只看该作者
以20H到2FH的128位做用户标志最便捷

使用特权

评论回复
板凳
CallReceiver| | 2016-11-9 21:25 | 只看该作者
在keil里有一个<absacc.h>这个头文件,这里面的函数可以满足你的需要

使用特权

评论回复
地板
boy1990| | 2016-11-9 21:25 | 只看该作者
可以用bit语句来声明一位,它只占一位

使用特权

评论回复
5
sourceInsight| | 2016-11-9 21:30 | 只看该作者
不要混淆bit与sbit的区别。bit用于普通位变量,而sbit位用于特殊功能寄存器中可位寻址的位变量(有既定位地址)。

使用特权

评论回复
6
bbapple| | 2016-11-9 21:31 | 只看该作者
若用户不按既定的位定义名称引用6个SFR中的可寻址位,另起位变量名,则也须对其重新定义。

使用特权

评论回复
7
handleMessage| | 2016-11-9 21:35 | 只看该作者
sbit  P10=0x90;                          //定义位标识符P10,位地址为90H(P1.0)

sbit  P10= 0x90^0;              //定义位标识符P10,为90H(P1口)第0位

sbit  P10= P1^0;             //定义位标识符P10,为P1口第0位

使用特权

评论回复
8
zhouhuanの| | 2016-11-9 21:36 | 只看该作者
位地址常数必须是该位变量既定的真实位地址

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

179

主题

1867

帖子

1

粉丝