国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
基于51單片機的超聲波視力保護眼睛程序設(shè)計 光敏-PCF8591
[打印本頁]
作者:
eng
時間:
2021-6-11 18:41
標題:
基于51單片機的超聲波視力保護眼睛程序設(shè)計 光敏-PCF8591
本設(shè)計由STC89C52單片機電路+超聲波模塊電路+蜂鳴器報警電路+光敏電阻電路+PCF8591電路+1602液晶電路+電源電路。
1、通過超聲波測距,通過光敏電阻檢測光照,并且把距離和光照值(分為1-4檔,顯示1-4)實時顯示在液晶上。
2、當距離小于30cm或者光線小于2檔時,蜂鳴器報警。
3、系統(tǒng)上電后,無論什么情況,20秒時間到,蜂鳴器報警。(提醒人休息)
基于51單片機的超聲波視力保護眼鏡設(shè)計電路原理圖如下:
1.png
(304.08 KB)
下載附件
2021-6-11 18:37 上傳
部分源碼:完整見附件
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
#include<stdio.h>
#include "1602.h"
#include "i2c.h"
#include "delay.h"
#include "math.h"
sbit Echo=P1^1; //觸發(fā)使用
sbit Trip=P1^0;
sbit buzzer = P1^2;
char displaytemp[16];
unsigned long time_20ms;
unsigned char DisFlag=0;
unsigned char lighNum = 0;
float JuLi;
long JlCoun=0;
void TIM2Inital(void);
unsigned long times =0;
void main (void)
{
TMOD|=0x01; //設(shè)T0為方式1,GATE=1;
TH0=0;
TL0=0;
ET0=1; //允許T0中斷
EA=1; //開啟總中斷
LCD_Init(); //初始化液晶
DelayMs(20); //延時有助于穩(wěn)定
LCD_Clear();
while (1) //主循環(huán)
{
Trip=1; //啟動一次模塊 //不可以使用其他終端 容易造成死循環(huán)
DelayUs2x(4);
Trip=0;
while(!Echo); //當RX為零時等待
TR0=1; //開啟計數(shù)
while(Echo); //當RX為1計數(shù)并等待
TR0=0;
JlCoun=(long)(TH0*256+TL0);
TH0=0;
TL0=0;
JuLi=(float)(JlCoun*17)/100.0*1.08; //算出來是mm
if(JuLi<0)
{
JuLi = 0;
}
lighNum=ReadADC(0)*99/255; //讀取AD光照
if((JuLi<300)||(lighNum<2))
{buzzer =0;}
}
}
復(fù)制代碼
原理圖和完整源碼:
基于51單片機的超聲波視力保護眼鏡設(shè)計-超聲波-光敏-PCF8591-(電路圖 程序源碼).zip.zip
(91.18 KB, 售價: 2 E幣)
2021-6-11 18:40 上傳
點擊文件名下載附件
售價: 2 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://www.afoofa.cn/)
Powered by Discuz! X5.0