[ZLG-MCU] 关于单片机的C语言编程问题

[复制链接]
1929|6
 楼主| linhai1986 发表于 2009-5-19 15:28 | 显示全部楼层 |阅读模式
假如使用如下端口<br /><br />sbit&nbsp;&nbsp;&nbsp;&nbsp;d0&nbsp;&nbsp;p1.0<br /><br />sbit&nbsp;&nbsp;&nbsp;&nbsp;d1&nbsp;&nbsp;p2.0<br /><br />sbit&nbsp;&nbsp;&nbsp;&nbsp;d2&nbsp;&nbsp;p3.0<br /><br />sbit&nbsp;&nbsp;&nbsp;&nbsp;d3&nbsp;&nbsp;p4.0<br /><br />想把D0,D1,D2,D3里面的数据(或者状态?)存放在一个变量里,<br /><br />m=D0*1+D1*2+D2*4+D3*8为什么不行?<br /><br />不行的话怎么处理一下?<br /><br />谢谢!<br /><br />我用的端口比较多,没有办法才把这4位用到了不同的I/O口上,造成编程比较麻烦,单片机用的LPC952<br /><br />想把D0,D1,D2,D3里面的数据存放在一个变量里,便于操作<br /><br />注意我问:m=D0*1+D1*2+D2*4+D3*8为什么不行?<br /><br />不行的话怎么处理一下?<br /><br />请具体的写两句程序,不胜感激!<br /><br />谢谢!<br />
xiaoxin1986 发表于 2009-5-19 20:16 | 显示全部楼层

re

m=D0*1+D1*2+D2*4+D3*8<br /><br />Do的类型是sbit的,自然不能做乘法运算了。<br /><br />进行类型转换即可<br /><br />如<br /><br /><br />m=(unsigned&nbsp;char)d0*1&nbsp;+&nbsp;……………………&nbsp;&nbsp;;<br /><br />&nbsp;<br /><br />测试通过。<br />
jakezlc 发表于 2009-5-19 20:21 | 显示全部楼层

RE

你按位存放看看可以不?接你上面的思路<br />bit&nbsp;&nbsp;&nbsp;&nbsp;d0&nbsp;&nbsp;p1.0<br /><br />sbit&nbsp;&nbsp;&nbsp;&nbsp;d1&nbsp;&nbsp;p2.0<br /><br />sbit&nbsp;&nbsp;&nbsp;&nbsp;d2&nbsp;&nbsp;p3.0<br /><br />sbit&nbsp;&nbsp;&nbsp;&nbsp;d3&nbsp;&nbsp;p4.0<br /><br />想把D0,D1,D2,D3里面的数据(或者状态?)存放在一个变量里,<br /><br />m=D0^0x01+(D10&lt&lt1)^0x02+(D2&lt&lt2)^0x04+(D3《3)^0x08<br />你看看这样可以不
jakecumt 发表于 2009-5-20 07:45 | 显示全部楼层

学习了

  
beinghu 发表于 2009-5-23 00:20 | 显示全部楼层

  
 楼主| linhai1986 发表于 2009-7-4 15:56 | 显示全部楼层

问题解决了,谢谢大家了

  
xiaoxin1986 发表于 2009-7-5 09:12 | 显示全部楼层

解决了就好

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

本版积分规则

172

主题

1451

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部