单片机测车轮速度,我把程序的思路写下来了,好多都不知道怎么实现,而且也不知道有的错怎么解决
#include<reg52.h>//定义方法voidinit();voidgetSignal();voidsc();//定义变量sbitsignal=P1^1;//霍尔...
#include<reg52.h>
//定义方法
void init();
void getSignal();
void sc();
//定义变量
sbit signal=P1^1;//霍尔传感器的信号
unsigned int time=0;//已经经过的时间标志
unsigned int speed_flag=0;//判断霍尔传感器是否感应到信号,如果感应到信号(flag=1),圈数加一(speed++)
unsigned int speedNum=0;//圈数
unsigned int speed=0;//中断后计算出的转速
void main(void){
init();//初始化计数器
getSignal();//一直获取霍尔传感器的信号,计算转过的圈数
}
//一直获取霍尔传感器的信号,计算转过的圈数
void getSignal(void){
while(1){
speed_flag=(speed_flag+signal)%2;//(这里报错了,bad operand type,signal难道不是int类型的么)
if(speed_flag==1){
speedNum++;
}
}
}
//初始化计数器
void init (void){//初始化计数器(这些是对的么,我是按照百度上面设置的,编译也没有报错)
TH0=(65536-50000)/256;
TL0=(65536-50000)%6;//设置计数器初始值
TMOD=0x01;//设置计数器工作方式为16位
ET0=0x01;//允许C/T0中断
EA=1;//全部中断允许
TR0=1;//启动C/T0
}
//中断函数,直到60s后中断
void Timer0IRQ(void) interrupt 1
{
TH0=(65536-50000)/256;//计数器高八位重新载入
TL0=(65536-50000)%6; //计数器低八位重新载入
if(time<100){//说明小于一分钟
time++;//加一,直到等于一分钟
}else{
speed=speedNum/60;//每秒的转速(当算出转速后,怎么停止运行,并将转速显示在液晶管)
}
}
//显示到液晶屏
void sc(void){
}
我想通过霍尔元件感应信号,通过单片机来处理,思路是霍尔元件每次感应到后记录一下,把程序中的变量加1。再通过计时器计算时间,到了一分钟后计算出转速,将转速显示到液晶屏,函数结束,各位帮我看看好么? 展开
//定义方法
void init();
void getSignal();
void sc();
//定义变量
sbit signal=P1^1;//霍尔传感器的信号
unsigned int time=0;//已经经过的时间标志
unsigned int speed_flag=0;//判断霍尔传感器是否感应到信号,如果感应到信号(flag=1),圈数加一(speed++)
unsigned int speedNum=0;//圈数
unsigned int speed=0;//中断后计算出的转速
void main(void){
init();//初始化计数器
getSignal();//一直获取霍尔传感器的信号,计算转过的圈数
}
//一直获取霍尔传感器的信号,计算转过的圈数
void getSignal(void){
while(1){
speed_flag=(speed_flag+signal)%2;//(这里报错了,bad operand type,signal难道不是int类型的么)
if(speed_flag==1){
speedNum++;
}
}
}
//初始化计数器
void init (void){//初始化计数器(这些是对的么,我是按照百度上面设置的,编译也没有报错)
TH0=(65536-50000)/256;
TL0=(65536-50000)%6;//设置计数器初始值
TMOD=0x01;//设置计数器工作方式为16位
ET0=0x01;//允许C/T0中断
EA=1;//全部中断允许
TR0=1;//启动C/T0
}
//中断函数,直到60s后中断
void Timer0IRQ(void) interrupt 1
{
TH0=(65536-50000)/256;//计数器高八位重新载入
TL0=(65536-50000)%6; //计数器低八位重新载入
if(time<100){//说明小于一分钟
time++;//加一,直到等于一分钟
}else{
speed=speedNum/60;//每秒的转速(当算出转速后,怎么停止运行,并将转速显示在液晶管)
}
}
//显示到液晶屏
void sc(void){
}
我想通过霍尔元件感应信号,通过单片机来处理,思路是霍尔元件每次感应到后记录一下,把程序中的变量加1。再通过计时器计算时间,到了一分钟后计算出转速,将转速显示到液晶屏,函数结束,各位帮我看看好么? 展开
德晟智能
2024-09-04 广告
2024-09-04 广告
舵机应该如何选型?今天由我们德晟智能科技有限公司说到舵机,相信不少工程师都非常熟悉了,但是如果说到舵机的产品选型,可能不少工程师都是一知半解的,甚至大部分的人都是纯靠扭矩来进行舵机选型的。“舵机”,顾名思义就是用来控制舵面控制的伺服器,而随...
点击进入详情页
本回答由德晟智能提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询