各位大佬,问个51单片机的问题,DS18B20温度传感器,是一个单总线通信的传感器,目前使用一个IO口来通信,并且正常工作。
现在我想同时读取5个DS18B20的温度,使用5个IO口模拟,但是我想使用同一份18B20通信代码,该怎么实现。能否把51 单片机的IO作为参数传递进去,这样就能传入不同的IO口实现不同18B20温度读取。
能否把51 单片机的IO作为参数传递进去,这样就能传入不同的IO口实现不同18B20温度读取
实现起来应该不难,设计一个接口类似:int get_DS18B20_value(int pin_no);
这样的,就可以了。
值得注意的是,函数接口内容操作IO时,就必须以pin_no为目标对象了,需要做好IO口的映射关系。
我以前用51的时候,sbit要声明在函数外的,是个位变量,是绝对地址,而不是编译时分配的。
sbit 变量 = 地址 / SFR^位
我琢磨着传sbit够呛。
不知道是否通过如下的形式,写函数传PORT和PIN进去,可以试试。
@转角遇见狗