欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4472|回復: 0
打印 上一主題 下一主題
收起左側

一個at89c51單片機的人體紅外傳感器程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:760638 發表于 2020-6-20 14:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是前段時間自己做的一個人體
紅外程序,用的是c51板子,用到
iic和按鍵和lcd模塊還有蜂鳴器和定時器

單片機源程序如下:
  1. #include<reg51.h>
  2. #include"lcd.h"
  3. #include"time.h"
  4. #include"beep.h"

  5. #define MotorData P1

  6. unsigned char temp;
  7. void disp();
  8. unsigned char phasecw[4] ={0x08,0x04,0x02,0x01};
  9. unsigned char phaseccw[4]={0x01,0x02,0x04,0x08};
  10. unsigned char buffer[]={"hhahhhahhaaaaaa"};
  11. sbit HW=P3^2;

  12. void delay(unsigned int k)
  13. {
  14.     while(k--);
  15. }

  16. void disp(unsigned char *P)
  17. {
  18.         unsigned char i;
  19.         for(i=0;P[i]!='\0';i++)
  20.         {
  21.                 lcd_dat(P[i]);
  22.                 delay(500);
  23.         }
  24. }

  25. void Delay_xms(unsigned int x)
  26. {
  27. unsigned int i,j;
  28. for(i=0;i<x;i++)
  29.   for(j=0;j<112;j++);
  30. }

  31. void MotorCW(void)
  32. {
  33. unsigned char i;
  34. for(i=0;i<4;i++)
  35.   {
  36.   
  37.    MotorData=phasecw[i];
  38.    Delay_xms(4);
  39.   }
  40. }

  41. void MotorCCW(void)
  42. {
  43. unsigned char i;
  44. for(i=0;i<4;i++)
  45.   {
  46.    MotorData=phaseccw[i];
  47.    Delay_xms(4);
  48.   }
  49. }

  50. void time() interrupt 1
  51. {
  52.         unsigned char i;
  53.         TH0=(65536-50000)/256;
  54.         TL0=(65536-50000)%256;
  55.         i++;
  56.         if(i==20)
  57.         {
  58.                 i=0;                          
  59.                 temp++;
  60.         }
  61. }


  62. void MotorStop(void)
  63. {
  64. MotorData=0x00;
  65. }

  66. void main(void)
  67. {
  68.          unsigned int i,a,b;
  69.         lcd_init();
  70.         time_init();
  71.          Delay_xms(50);
  72.          {
  73.                  if(HW==1)
  74.                  {
  75. //                        if(temp>3)
  76. //                        {
  77.                                  for(i=0;i<250;i++)
  78.                                  {
  79.                                            MotorCW();  
  80.                                            beeper();
  81.                                         lcd_cmd(0x82);
  82.                                         disp(buffer);
  83.                                   }
  84.                                           MotorStop();  
  85.                                           a++;
  86.                                           Delay_xms(1500);
  87.                                   for(i=0;i<250;i++)
  88.                                   {
  89.                                            MotorCCW();
  90.                                            beeper();
  91.                                         lcd_cmd(0x82);
  92.                                         disp(buffer);
  93.                                   }         
  94.                                           MotorStop();  
  95.                                           b++;
  96.                                           Delay_xms(1500);
  97. //                         }  
  98.                    }
  99.    }
  100.         if(a+b==2)
  101.         MotorStop();        
  102. }
復制代碼

所有程序51hei提供下載:
下期實訓人體紅外.zip (41.71 KB, 下載次數: 51)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表