我用霍尔传感器结合单片机测速 测速的范围是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);
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询