STC89系列ADS1115单端与差分全解决STC89C51/52没有AD或DA转换的能力,后来的STC比如STC8/STC12/STC15系列都直接自带AD转换了。前面使用PCF8591这个8bit数模转换模块解决了0-5V转换与测量的问题,当时总是搞不清楚为什么使用ADS1115这个16bit数模转换模块测差分测量的问题。 后来发现其实只要判断一下是否ADC的值是否在0x8000到FFFF范围内,然后判断一下就可以直接转换了,即 if(adc>=0x8000) RATIO提前设置好了分辨率0.1877mV,转换过去就行了,直接得到以mV为单位的测量结果。 在Arduino/ESP32下的ADS1115使用起来是非常方便的,因为有现成的库可以使用,但是STC51单片机下的一些元器件库并不多——我本来以为应该有很多才对,毕竟8051自诞生以来积累下来无穷无尽的知识财富,但不知道为什么有价值的东西并不多。现在各种高端单片机倒是有不少现成的ADS1115代码,但移植起来也并不容易,鬼知道它们include了什么玩意。现在这个STC89C52下完成的ADS1115是一个STC12开发板上的东西修改过来的,测试过了,很正常的能够使用。以下使用了A0A1差分测量。代码与单端测量就不放了。 ------心存DREAM喜欢琢磨实验并自娱自乐的MIRACLE------ 实验教学值得学习的去处: 2.学生自主创新实验 |
|
来自: 新用户5228KeDY > 《待分类》