用oled将HC-SR04所测数据进行打印

用oled将HC-SR04所测数据进行打印

硬件电路分析:

1.0.96英寸oled共VCC,GND,SCL,SDL四个引脚,分解接入单片机VCC,GND,P16和P17

2.超声波测距模块相关接法请参考上一篇文章

3.led点亮提示系统正常运行

oled的相关配置

oled的详细相关配置,已在之前的博文中有提及,更多详情请见https://linxinloningg.space/archives/51%E5%8D%95%E7%89%87%E6%9C%BAoledds18b20%E6%A3%80%E6%B5%8B%E5%B9%B6%E6%98%BE%E7%A4%BA%E6%B8%A9%E5%BA%A6%E7%AC%AC%E4%B8%80%E7%AF%87%E5%88%9D%E5%A7%8B%E5%8C%96oled%E6%98%BE%E7%A4%BA

请各位移步进行查阅,我们只要将其中的函数进行搬运,即可使用

显示距离

唯一稍有不同的可能是显示距离的oled配置函数

在之前的博文中显示的是温度,在这里我们显示的是所测的距离

查阅上一篇博文我们可以得知,所测的距离都存放在全局变量S中

因此:

void dispaly_distance(void) //在oled屏上显示距离的函数
{
oled_display_number(0,2,((int)S/100));
oled_display_number(2,2,((int)S%100/10));
oled_display_number(4,2,((int)S%10));
}

只要将S进行显示出来即可,(int)是强制类型转换,如果你的S是浮点类型的则需此操作,若是整型,则不影响

主函数的相关配置

int main(void)
{
oled_initial();
dispaly_init();
ultrasonic_init();
while(1)
{
ultrasonic_distance();
dispaly_distance();
led=0;
}
}

最后附上源码供大家进行分析:https://github.com/linxinloningg/51-chip-microcomputer-hc04-oled.git

你可能感兴趣的:(51单片机)