当转速超过20左右就无法显示了 不知道是模块问题 还是 程序问题 感觉程序问题没有 就是测不了高速
我在12864上显示 电机测速程序 t0记时 t1计数 各位麻烦看下
while(1)
{
if(
time==10)//判断时间是否到1s
{
TR0=0;
TR1=0;
time=0;
fre=TH1*256+TL1; //计数器t1
LCD_WrAddr(4,0);
delayMs(2);
LCD_WrDat(fre/1000+0x30);
LCD_WrDat(fre%1000/100+0x30);
LCD_WrDat(fre%100/10+0x30);
LCD_WrDat(fre%10+0x30);
delayMs(2);
TH1=0;
TL1=0;
TR1=1;
TR0=1;
}
}
void timer1int()
{
TMOD = 0x50; //设置计数器
TH1=0;
TL1=0;
EA = 1; //打开总中断
ET1 = 1; //打开定时器中断
TR1 = 1; //启动定时器、
}
void timer0int()
{
TMOD = 0x01; //设置定时器为工作方式0
TH0 =(65536-50000)/256;
TL0 =(65536-50000)%256; //赋初值
EA = 1; //打开总中断
ET0 = 1; //打开定时器中断
TR0 = 1; //启动定时器、
}
void timer0() interrupt 1
{
TH0 = (65536-50000)/256;//设置初值
TL0 = (65536-50000)%256;
time++;
}
-
每秒超过30多转速就显示不出来了 直接显示000
一周热门 更多>