智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1354|回复: 9
打印 上一主题 下一主题

菜鸟请问一个简单的问题。

[复制链接]

2

主题

6

帖子

0

精华

注册会员

Rank: 2

积分
127
威望
73
贡献
30
兑换币
32
注册时间
2014-7-27
在线时间
12 小时
毕业学校
暨南大学
跳转到指定楼层
1#
发表于 2014-9-9 13:53:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void SCI_Write(unsigned char SendChar)
{

      while (!(SCI0SR1&0x80));
      SCI0DRH=0;

      SCI0DRL=SendChar;
}
程序中的语句中 while (!(SCI0SR1&0x80),SCI0SR1&0x80后面为什么还要加一个&0x80,其中&在这里又有什么用呢?这个一直想不明白,虽然一有在用这个。

回复

使用道具 举报

24

主题

492

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13138
威望
5341
贡献
1645
兑换币
2222
注册时间
2012-3-9
在线时间
3076 小时
毕业学校
嘉兴学院
2#
发表于 2014-9-9 14:03:58 | 只看该作者
判断寄存器第八位状态
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

论坛元老奖章优秀会员奖章活跃会员奖章论坛骨干奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
3#
发表于 2014-9-9 14:04:43 | 只看该作者
楼上正解
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

注册会员

Rank: 2

积分
127
威望
73
贡献
30
兑换币
32
注册时间
2014-7-27
在线时间
12 小时
毕业学校
暨南大学
4#
 楼主| 发表于 2014-9-9 14:08:28 | 只看该作者
本帖最后由 請放心遠行! 于 2014-9-9 14:10 编辑
机遇 发表于 2014-9-9 14:03
判断寄存器第八位状态

我知道是判断寄存器状态,我想问的是后面的&0x80是什么意思,还有,如果我想判断八位寄存器a的是否为11111111.是不是我我可以写 a&0xff ?
回复 支持 反对

使用道具 举报

34

主题

452

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
14046

优秀会员奖章活跃会员奖章在线王奖章

威望
6066
贡献
2554
兑换币
4050
注册时间
2013-7-29
在线时间
2713 小时
毕业学校
南京气象学院
5#
发表于 2014-9-9 14:18:49 | 只看该作者
SCI0SR1&0x80是取出SCI0SR1第八位,这样while在判断的时候就不受其他位的影响。所以&oxff是不能判断是不是0xff,只能判断8位中是否有1.
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

注册会员

Rank: 2

积分
127
威望
73
贡献
30
兑换币
32
注册时间
2014-7-27
在线时间
12 小时
毕业学校
暨南大学
6#
 楼主| 发表于 2014-9-9 14:48:28 | 只看该作者
何俊 发表于 2014-9-9 14:18
SCI0SR1&0x80是取出SCI0SR1第八位,这样while在判断的时候就不受其他位的影响。所以&oxff是不能判断是不是0 ...

谢谢你啊,不过我还是有点疑惑,要是我想判断八位a寄存器6位或者7为是否为1,应该对&0x80做哪些改动?要是寄存器为16位的呢?
回复 支持 反对

使用道具 举报

34

主题

452

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
14046

优秀会员奖章活跃会员奖章在线王奖章

威望
6066
贡献
2554
兑换币
4050
注册时间
2013-7-29
在线时间
2713 小时
毕业学校
南京气象学院
7#
发表于 2014-9-9 14:51:21 | 只看该作者
請放心遠行! 发表于 2014-9-9 14:48
谢谢你啊,不过我还是有点疑惑,要是我想判断八位a寄存器6位或者7为是否为1,应该对&0x80做哪些改动?要是 ...

判断第六位就是&00100000,也就是&0x20.  16进制也是这样,二进制转换成16进制就行了.
回复 支持 反对

使用道具 举报

24

主题

492

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13138
威望
5341
贡献
1645
兑换币
2222
注册时间
2012-3-9
在线时间
3076 小时
毕业学校
嘉兴学院
8#
发表于 2014-9-9 15:05:11 | 只看该作者
請放心遠行! 发表于 2014-9-9 14:08
我知道是判断寄存器状态,我想问的是后面的&0x80是什么意思,还有,如果我想判断八位寄存器a的是否为1111 ...

按位于如果 第八位为0则按位于的结果为0 逻辑非 为真 死循环 反之 第八位为1 逻辑非为假 跳出循环
用&&
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

注册会员

Rank: 2

积分
127
威望
73
贡献
30
兑换币
32
注册时间
2014-7-27
在线时间
12 小时
毕业学校
暨南大学
9#
 楼主| 发表于 2014-9-9 16:26:09 | 只看该作者
谢谢楼上两位,明白了
回复 支持 反对

使用道具 举报

28

主题

2228

帖子

1

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
15822

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章资源大师奖章

QQ
威望
7433
贡献
4215
兑换币
5195
注册时间
2013-12-9
在线时间
2087 小时
10#
发表于 2014-9-9 22:45:25 | 只看该作者
去找那个寄存器看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-29 01:58 , Processed in 0.052806 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表