找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 4963|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)熱釋電紅外自動(dòng)門Proteus仿真程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
話不多,直接看圖,本設(shè)計(jì)是模擬自動(dòng)門效果,用電機(jī)顯示
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <reg51.h>



  2. sbit led=P0^0;//指示燈信號(hào)
  3. sbit k1=P1^2;//按鍵信號(hào)
  4. sbit k2=P1^3;//按鍵信號(hào)
  5. sbit IN1=P3^0;
  6. sbit IN2=P3^1;
  7. unsigned char flag,n;

  8. void delay(char x);   //延時(shí)程序
  9. void  motor_1(float a);
  10. void  motor_2(float a);
  11. void zhengzhuan();       
  12. void fanzhuan();   



  13. void key_process()

  14. {
  15.     if(k1==0)  
  16.          {
  17.                  delay(100); //延時(shí)100MS,按鍵必須延時(shí)消抖
  18.                 while(!k1);
  19.                  
  20. //    led=~led;
  21.      flag=1;
  22.                  zhengzhuan();//當(dāng)有人時(shí),正轉(zhuǎn)
  23.          }
  24.                  
  25.          if(k2==0)  //沒人時(shí), 反轉(zhuǎn)
  26.          {
  27.                  delay(100);
  28.                  while(!k2);
  29.                  flag=0;
  30.                  fanzhuan();
  31.          }
  32.                  
  33. }


  34. void delay(char x)//延時(shí)程序
  35. {                          
  36.    char i;
  37.    while(x--)
  38.    {
  39.      for(i=0; i<120; i++);
  40.    }
  41. }




  42. void  motor_1(float a)//a即想要轉(zhuǎn)的圈數(shù)  //反轉(zhuǎn)
  43. {
  44.    unsigned char b;
  45.    unsigned int  c;
  46.    for (c=0; c<8*64*a; c++)  
  47.     {
  48.       for (b=0; b<8; b++)
  49.         {
  50.          
  51.                                         IN2=1;
  52.                                         IN1=0;
  53.          delay(1);
  54.          }
  55.     }
  56. }



  57. void  motor_2(float a)//a即想要轉(zhuǎn)的圈數(shù)  //正轉(zhuǎn)
  58. {
  59.    unsigned char b;
  60.    unsigned int  c;
  61.    for (c=0; c<8*64*a; c++)
  62.     {
  63.       for (b=0; b<8; b++)
  64.         {
  65.                  IN2=0;
  66.                                         IN1=1;
  67.          delay(1);
  68.                                        
  69.          }
  70.     }
  71. }


  72. void Timer0() interrupt 1
  73. {
  74.         TH0  = 0x3c; //每中斷都要重裝載,大概50MS中斷一次,十進(jìn)制的15536,65536-15536=50000
  75.         TL0  = 0xb0;        
  76.   if(flag)  //表示有人燈亮
  77.         {
  78.                 led=0;
  79.         }
  80.         else    //表示沒人
  81.         {
  82.                 led=1;
  83.         }
  84.        
  85. }         


  86. void zhengzhuan()    //正轉(zhuǎn)
  87. {
  88.        
  89.        motor_2(0.04); //轉(zhuǎn)1圈(可以改動(dòng))         
  90.        delay(1);
  91.              P3=0XFF;                //防止電機(jī)發(fā)熱
  92. }


  93. void fanzhuan()    //正轉(zhuǎn)
  94. {
  95.        
  96.        motor_1(0.04); //轉(zhuǎn)1圈(可以改動(dòng))         
  97.        delay(1);
  98.              P3=0XFF;                //防止電機(jī)發(fā)熱
  99. }




  100. void intial()
  101. {
  102.        
  103.   TMOD = 0x11;//16位計(jì)數(shù)器
  104.         TH0  = 0x3c;
  105.         TL0  = 0xb0;        
  106.         ET0  = 1;  
  107.         TR0  = 1;
  108.         EA=1;
  109. }

  110. void main()//主程序
  111. {   

  112.          intial();
  113.             
  114.         while(1)
  115.         {
  116.                
  117.            key_process() ; //按鍵處理
  118.   
  119.                
  120.         }
  121. }
復(fù)制代碼

所有資料51hei提供下載:
熱釋電紅外自動(dòng)門.rar (281.86 KB, 下載次數(shù): 149)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:736860 發(fā)表于 2020-4-29 19:16 | 只看該作者
想問一下樓主,這個(gè)是什么

BP9AEAI346W`144WXX69~(L.png (3.27 KB, 下載次數(shù): 60)

BP9AEAI346W`144WXX69~(L.png
回復(fù)

使用道具 舉報(bào)

板凳
ID:729107 發(fā)表于 2020-5-11 07:07 來自觸屏版 | 只看該作者
仿真沒成功
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表