国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

基于51單片機的超聲波視力保護眼睛程序設(shè)計 光敏-PCF8591

[復(fù)制鏈接]
樓主
eng 發(fā)表于 2021-6-11 18:41:48 | 只看該作者 |只看大圖 |倒序瀏覽 |閱讀模式
本設(shè)計由STC89C52單片機電路+超聲波模塊電路+蜂鳴器報警電路+光敏電阻電路+PCF8591電路+1602液晶電路+電源電路。

1、通過超聲波測距,通過光敏電阻檢測光照,并且把距離和光照值(分為1-4檔,顯示1-4)實時顯示在液晶上。
2、當(dāng)距離小于30cm或者光線小于2檔時,蜂鳴器報警。
3、系統(tǒng)上電后,無論什么情況,20秒時間到,蜂鳴器報警。(提醒人休息)

基于51單片機的超聲波視力保護眼鏡設(shè)計電路原理圖如下: 基于51單片機的超聲波視力保護眼睛程序設(shè)計 光敏-PCF8591 1.png
部分源碼:完整見附件
  1. #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  2. #include<stdio.h>
  3. #include "1602.h"
  4. #include "i2c.h"
  5. #include "delay.h"
  6. #include "math.h"

  7. sbit Echo=P1^1;                //觸發(fā)使用
  8. sbit Trip=P1^0;
  9. sbit buzzer = P1^2;
  10. char displaytemp[16];
  11. unsigned long time_20ms;
  12. unsigned char DisFlag=0;
  13. unsigned char lighNum = 0;

  14. float JuLi;
  15. long JlCoun=0;

  16. void TIM2Inital(void);
  17. unsigned long times =0;
  18. void main (void)
  19. {  
  20.         TMOD|=0x01;                   //設(shè)T0為方式1,GATE=1;
  21.         TH0=0;
  22.         TL0=0;         
  23.         ET0=1;             //允許T0中斷
  24.         EA=1;                           //開啟總中斷       
  25.                              
  26.         LCD_Init();           //初始化液晶
  27.         DelayMs(20);          //延時有助于穩(wěn)定
  28.         LCD_Clear();

  29.        
  30.         while (1)         //主循環(huán)
  31.         {
  32.                 Trip=1;                           //啟動一次模塊                //不可以使用其他終端 容易造成死循環(huán)
  33.                 DelayUs2x(4);
  34.                 Trip=0;
  35.                 while(!Echo);                //當(dāng)RX為零時等待
  36.                 TR0=1;                            //開啟計數(shù)
  37.                 while(Echo);                        //當(dāng)RX為1計數(shù)并等待
  38.                 TR0=0;                               
  39.                 JlCoun=(long)(TH0*256+TL0);
  40.                 TH0=0;
  41.                 TL0=0;
  42.                 JuLi=(float)(JlCoun*17)/100.0*1.08;     //算出來是mm
  43.                 if(JuLi<0)
  44.                 {
  45.                          JuLi = 0;
  46.                 }

  47.                 lighNum=ReadADC(0)*99/255;                                //讀取AD光照
  48.                                
  49.                
  50.                 if((JuLi<300)||(lighNum<2))
  51.                 {buzzer =0;}
  52.                
  53.         }
  54. }
復(fù)制代碼


原理圖和完整源碼: 基于51單片機的超聲波視力保護眼鏡設(shè)計-超聲波-光敏-PCF8591-(電路圖 程序源碼).zip.zip (91.18 KB, 售價: 2 E幣)

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

本版積分規(guī)則

手機版|小黑屋|ELEOK |網(wǎng)站地圖

GMT+8, 2026-5-26 04:55

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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