红外对管做的电机测速单片机代码问题,红外对管做的,理应红外对管输出的信号,应该足够灵敏,但是为什么在LCD上显示总是60或者90或者150,感觉不够精确,这是什么原因,导致不能显示个位数
单片机源码:
if(zhuansu/10000!=0)
LcdWriteData(zhuansu/10000+0x30); //如果转速的万位不为0 正常显示否则显示空格
else
LcdWriteData(‘ ‘);
if(zhuansu/1000==0)
LcdWriteData(‘ ‘);
else
LcdWriteData(zhuansu%10000%1000+0x30); //如果转速小于1000 千位为空格 否则正常显示
if(zhuansu/100==0)
LcdWriteData(‘ ‘);
else
LcdWriteData(zhuansu%10000%1000/100+0x30); //如果转速小于100 百位为空格 否则正常显示
if(zhuansu/10==0)
LcdWriteData(‘ ‘);
else
LcdWriteData(zhuansu%10000%1000%100/10+0x30); //如果转速小于10 十位为空格 否则正常显示
if(zhuansu/1==0)
LcdWriteData(‘0’);
else
LcdWriteData(zhuansu%10000%1000%100%10/1+0x30); //如果转速小于1 个位为0 否则正常显示
LcdWriteCom(0xd0); //如果没有这句,当中断内的显示函数执行完,就会在转速的位置显示占空比数据,导致乱码
}
,判断条件是不是有问题,你这个“zhuansu”变量是怎么算出来的?,会不会是开发板上其它器件管脚冲突,zhuansu采集的不对吧