我用霍尔传感器结合单片机测速 测速的范围是0-9999,但是程序有错,它只能显示三百多 升不上去也降不下去

我不知道哪里错了请大家多多帮忙我很急需大家的帮助sbitRS=P1^0;//寄存器选择位,将RS位定义为P2.0引脚sbitRW=P1^1;//读写选择位,将RW位定义为... 我不知道哪里错了 请大家多多帮忙 我很急需大家的帮助sbit RS=P1^0; //寄存器选择位,将RS位定义为P2.0引脚 sbit RW=P1^1; //读写选择位,将RW位定义为P2.1引脚sbit E=P1^2; //使能信号位,将E位定义为P2.2引脚uint i,M1,M2;uchar buf[10];uchar qian1,bai1,shi1,ge1,bai2,shi2,ge2;uchar dis1[]={"Speed test"};uchar dis2[]={"AS: "};void delay1ms(uchar ms){ uchari,j; for(i=0;i<ms;i++) for(j=0;j<110;j++);}uchar lcd_busy() /*判断液晶模块的忙碌状态*/{ bitresult; RS=0; RW=1; E=1;_nop_(); _nop_(); _nop_(); _nop_(); result= (bit)(P0&0x80); E=0; returnresult;} void lcd_wcmd(uchar cmd) /*写指令数据到LCD*/{ while(lcd_busy()); RS=0; RW=0; E=0; _nop_(); _nop_(); P0=cmd; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0;}void lcd_pos(uchar pos) /*指定字符显示的实际地址*/{lcd_wcmd(pos|0x80);}void lcd_wdat(uchar dat) /*将数据(字符的标准ASCII码)写入液晶模块*/{ while(lcd_busy()); RS=1; RW=0; E=0; P0=dat; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0;}void LcdInit() /*LCD1602初始化函数*/{delay1ms(15); lcd_wcmd(0x38); delay1ms(5); lcd_wcmd(0x38); delay1ms(5); lcd_wcmd(0x38); delay1ms(5); lcd_wcmd(0x0c); delay1ms(5); lcd_wcmd(0x06); delay1ms(5); lcd_wcmd(0x01); delay1ms(5);}void T1_Init(){ TMOD= 0x10; IE =0x8f; IP=0x04; TH1= (65535-50000)/256; TL1= (65535-50000)%256;} void INT_Init(){ TCON= 0x05;}void my_INT0(void) interrupt 0{ M1++;}void my_INT1(void) interrupt 2{ M2++;}void timer1() interrupt 3{TH1= (65535-50000)/256; TL1= (65535-50000)%256; i=i+1; if(i==20) { i=0; bai2=(M2/100)+48; shi2=(M2%100/10)+48; ge2=(M2%100%10)+48; qian1=(M1/1000)+48; bai1=(M1%1000/100)+48; shi1=(M1%1000%100/10)+48; ge1=(M1%1000%100%10)+48; void main(){delay1ms(10); LcdInit(); INT_Init(); T1_Init(); TR1=1; lcd_pos(0x02); i=0; while(dis1[i]!= '\0') { lcd_wdat(dis1[i]); i++; }; i=0; lcd_pos(0x40); while(dis2[i]!= '\0') {lcd_wdat(dis2[i]); i++;}; while(1) {// TR1=1; lcd_pos(0x43); lcd_wdat(qian1); lcd_pos(0x44); lcd_wdat(bai1); lcd_pos(0x45); lcd_wdat(shi1); lcd_pos(0x46); lcd_wdat(ge1); 展开
 我来答
FM网络
2014-05-03 · TA获得超过825个赞
知道小有建树答主
回答量:1130
采纳率:0%
帮助的人:968万
展开全部
应该不是程序的错误,是你 物理速度就是在300左右了。

你尝试改变物理速度,看是否变化吧。
更多追问追答
追问
谢谢!物理速度是什么意思啊?如何根据电机转速计算速度呢???
谢谢!物理速度是什么意思啊?如何根据电机转速计算速度呢???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式