完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
求大神帮小女子一个忙!!非常感谢。
正在做课程设计是用温度控制电机低中高速转的,代码是用1602显示,当不加入电机程序时温度显示正常,加入电机时温度显示不正常,一直跳变数字!大概检查了一下,应该是定时器产生pwm出现问题,其他的应该没什么问题,就是代码不懂怎么改!求大神帮忙解决一下!!万分感谢!!
|
|
相关推荐
23个回答
|
|
#include #include #include #define uchar unsigned char #define uint unsigned int uint temp; float f_temp; ***it BLK=P1^3; ***it DQ=P2^2; ***it RS=P1^0; ***it RW=P1^1; ***it EN=P2^5; //电机驱动信号 ***it leftmotor_in1=P1^4; //电机正转 ***it ena=P1^5; //电机驱动使能信号 uchar m=0; //中断计数器 uchar tmp1; //电机当前速度值 uchar i; //电机给定速度值 unsigned char code str1[]={"temperature: "}; unsigned char code str2[]={" "}; uchar data disdata[5]; uint tvalue;//温度值 uchar tflag;//温度正负标志 /*************************lcd1602程序**************************/ void delay(uint z)//延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /* void delayMs(uint a) { uint i, j; for(i = a; i > 0; i--) for(j = 100; j > 0; j--); } */ void wr_com(uchar com)//写指令 { delay(5); RS=0; RW=0; EN=0; P0=com; delay(5); EN=1; delay(5); EN=0; } void wr_dat(uchar dat)//写数据// { delay(5); RS=1; RW=0; EN=0; P0=dat; delay(5); EN=1; delay(5); EN=0; } void lcd_init()//初始化设置// { BLK=0; delay(15); wr_com(0x38); delay(5); wr_com(0x08); wr_com(0x01); wr_com(0x06); wr_com(0x0c); } void display(unsigned char *p)//显示// { while(*p!=' |