标题:
单片机滑移率计算程序与Proteus仿真电路图,方波做轮速信号
[打印本页]
作者:
xkr
时间:
2021-1-18 14:07
标题:
单片机滑移率计算程序与Proteus仿真电路图,方波做轮速信号
基于51单片机,对方波信号的提取作为轮速信号,再与选择车速结合,计算当前滑移率,并且将当前滑移率,车速,轮速显示在数码管上,所有东西都在附件上
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png
(30.81 KB, 下载次数: 37)
下载附件
2021-1-18 14:09 上传
单片机源程序如下:
#include <REG51.H>
#define uint unsigned int
#define uchar unsigned char
sbit g=P2^3;
sbit s=P2^2;
sbit b=P2^1;
sbit q=P2^0;
sbit cs=P1^0;
sbit ls=P1^1;
sbit hy=P1^2;
sbit cs1=P1^4;
sbit cs2=P1^5;
sbit cs3=P1^6;
sbit LED1=P2^5;
sbit LED2=P2^6;
sbit LED3=P2^7;
int num=0;int t=0;int count=0;int n1;int n2;int n3;
unsigned char code dispcode1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码 阴码
unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段码 阳码
void delay(int z)
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//*****轮速*****//
void init()
{
TMOD=0x01;//定义T0定时方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;//50ms计时
TR0=1;//启动定时
IT0=1;//下降沿触发
EX0=1;//允许外部中断
ET0=1;//外部中断启动
EA=1;//启动总中断
}
void inter0() interrupt 0
{
count++;
}
void timer0() interrupt 1
{
t++;
if(t==2)
{
t=0;
n1=count ;
count=0;
}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
//*****车速*****//
void chesu()
{
if(cs1==0)
{n2=60;}
else if(cs2==0)
{n2=90;}
else if(cs3==0)
{n2=120;}
}
//*****滑移率*****//
void huayi()
{
n3=((n2-n1)*100)/n2;
P2=0x00;
if(n3>22)
{LED1=1;}
else if(n3>18)
{LED2=1;}
else if(n3<18)
{LED3=1;}
}
//******显示*****//
void display(int n)
{
int ge,shi,bai,qian;
qian=n/1000;//千位
bai=n%1000/100;//百位
shi=n%100/10;//十位
ge=n%10;//个位
q=0;
P0=dispcode[qian];
delay(10);
q=1;
b=0;
P0=dispcode[bai];
delay(10);
b=1;
s=0;
P0=dispcode[shi];
delay(10);
s=1;
g=0;
P0=dispcode[ge];
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
2.zip
(94.12 KB, 下载次数: 9)
2021-1-18 14:07 上传
点击文件名下载附件
程序与硬件仿真
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1