找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1099|回复: 0
打印 上一主题 下一主题
收起左侧

单片机滑移率计算程序与Proteus仿真电路图,方波做轮速信号

[复制链接]
跳转到指定楼层
楼主
基于51单片机,对方波信号的提取作为轮速信号,再与选择车速结合,计算当前滑移率,并且将当前滑移率,车速,轮速显示在数码管上,所有东西都在附件上

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include <REG51.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit g=P2^3;
  5. sbit s=P2^2;
  6. sbit b=P2^1;
  7. sbit q=P2^0;
  8. sbit cs=P1^0;
  9. sbit ls=P1^1;
  10. sbit hy=P1^2;
  11. sbit cs1=P1^4;
  12. sbit cs2=P1^5;
  13. sbit cs3=P1^6;
  14. sbit LED1=P2^5;
  15. sbit LED2=P2^6;
  16. sbit LED3=P2^7;
  17. int num=0;int t=0;int count=0;int n1;int n2;int n3;

  18. unsigned char code dispcode1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码 阴码
  19. unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段码 阳码

  20. void delay(int z)
  21. {
  22.   int x,y;
  23.   for(x=z;x>0;x--)
  24.   for(y=110;y>0;y--);
  25. }

  26. //*****轮速*****//
  27. void init()
  28. {
  29. TMOD=0x01;//定义T0定时方式1
  30. TH0=(65536-50000)/256;
  31. TL0=(65536-50000)%256;//50ms计时

  32. TR0=1;//启动定时       

  33. IT0=1;//下降沿触发
  34. EX0=1;//允许外部中断
  35.           
  36. ET0=1;//外部中断启动
  37. EA=1;//启动总中断
  38. }
  39.           
  40. void inter0() interrupt 0
  41. {

  42.    count++;
  43. }

  44. void timer0() interrupt 1
  45. {
  46.    t++;
  47.    if(t==2)
  48.    {
  49.     t=0;
  50.     n1=count ;
  51.         count=0;
  52.     }
  53.    TH0=(65536-50000)/256;
  54.    TL0=(65536-50000)%256;
  55. }

  56. //*****车速*****//
  57. void chesu()
  58. {
  59.    if(cs1==0)
  60.         {n2=60;}
  61.    else if(cs2==0)
  62.     {n2=90;}
  63.    else if(cs3==0)
  64.     {n2=120;}
  65. }

  66. //*****滑移率*****//
  67. void huayi()
  68. {
  69. n3=((n2-n1)*100)/n2;
  70. P2=0x00;
  71. if(n3>22)
  72. {LED1=1;}
  73. else if(n3>18)
  74. {LED2=1;}
  75. else if(n3<18)
  76. {LED3=1;}
  77. }
  78. //******显示*****//
  79. void display(int n)
  80. {
  81. int ge,shi,bai,qian;

  82.   qian=n/1000;//千位
  83.   bai=n%1000/100;//百位
  84.   shi=n%100/10;//十位
  85.   ge=n%10;//个位

  86.    q=0;
  87.    P0=dispcode[qian];
  88.    delay(10);
  89.    q=1;

  90.    b=0;
  91.    P0=dispcode[bai];
  92.    delay(10);
  93.    b=1;

  94.    s=0;
  95.    P0=dispcode[shi];
  96.    delay(10);
  97.    s=1;

  98.    g=0;
  99.    P0=dispcode[ge];
  100. ……………………

  101. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
2.zip (94.12 KB, 下载次数: 9)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表