找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机超声波风扇源程序 根据距离大小来调节风速

[复制链接]
跳转到指定楼层
楼主
ID:603085 发表于 2019-8-23 15:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我上传的是超声波发风扇的源代码和一些说明,
可根据是否有人来判断是否可以打开风扇,并根据距离大小来调节风速。

单片机源程序如下:
  1. //该产品可以根据人和风扇的距离自动启动,当人距离风扇的距离小于50CM时,风扇启动,当大于50CM时,风扇关闭
  2. #include <reg52.h>
  3. #include <intrins.h>
  4. #include <stdio.h>
  5. #define uint unsigned int
  6. #define uchar unsigned char

  7. sbit IN1=P1^3;
  8. sbit IN2=P1^4;
  9. sbit ENA=P1^5;
  10. sbit TRIG=P1^2;
  11. sbit ECHO=P1^1;

  12. int time;
  13. float s;
  14. bit flag;
  15. void fasong();
  16. void jisuan();
  17. void delay(int x);
  18. void main()
  19. {
  20.         TMOD=0X21;
  21.         SCON=0X50;
  22.         TH1=0XFD;
  23.         TL1=0XFD;
  24.         TH0=0;
  25.         TL0=0;
  26.         TR0=1;
  27.         TR1=1;
  28.         ET0=1;
  29.         TI=1;
  30.         EA=1;
  31.         while(1)
  32.         {
  33.                 fasong();
  34.                 while(!ECHO);
  35.                 TR0=1;
  36.                 while(ECHO);
  37.                 TR0=0;
  38.                 jisuan();
  39.                 delay(100);
  40.                 IN1=0;
  41.                 IN2=1;
  42.                 if(s<50)
  43.                 ENA=1;
  44.                 else
  45.                 ENA=0;        
  46.         }
  47. }
  48. void fasong()
  49. {
  50.         uint i;
  51.         TRIG=1;
  52.         for(i=0;i<20;i++)
  53.         _nop_();
  54.         TRIG=0;
  55. }
  56. void jisuan()
  57. {
  58.         time=TH0*256+TL0;
  59.         TH0=0;
  60.         TL0=0;
  61.         time*=12/11.0592;
  62.         s=time*0.017;
  63.         if(flag==1)
  64.         {
  65.                 flag=0;
  66.                 printf("-----\n");
  67.         }
  68.         printf("S=%f\n",s);
  69. }
  70. void TIME_0 () interrupt 1
  71. {
  72.         flag=1;
  73. }
  74. void delay(int x)
  75. {
  76.         int i,j;
  77.         for(i=x;i>0;i--)
  78.                 for(j=110;j>0;j--);
  79. }
复制代码

以上代码的Keil工程下载,你也可以自己建立工程然后把上面的代码复制过去就不用下载了:
超声波风扇.zip (26.36 KB, 下载次数: 42)


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

使用道具 举报

沙发
ID:956395 发表于 2021-8-13 21:21 | 只看该作者
仿真不动。
回复

使用道具 举报

板凳
ID:1009518 发表于 2022-3-14 17:27 | 只看该作者
IN1 IN2 是什么
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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