云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于单片机的视力保护器电路的设计

基于单片机的视力保护器电路的设计

  • 62 次阅读
  • 3 次下载
  • 2025/5/30 11:15:41

sbit GetLight=P2^0; //光照输入 sbit GetDis=P3^2; //测距中断

sbit Set40=P3^0;//555超声波发射使能端 //全局变量定义

uchar minutes,seconds,counter; //分、秒、时计数 uchar timeflag=0; //45分钟到标志 uchar time5sflag=0;//光照太弱 uint time=0;//超声波传播的距离 uchar backwaveflag=0;//检测到回波标志 uint distance=0;//计算的距离

uchar countwave=0;//接收到的超声波个数 忽略几个 减少干扰 void main(void) {

//变量定义

uint countlight=0,counttime=0,countdis=0; uint i=0; //端口初始化

Set40=0;//发送超声波禁止 ASoundTime=1; P1=0XFF;//关LED P2=0XFF;//准备输入 Init(); while(1) {

//光照太弱 进行报警 if(GetLight==0) {

countlight++;

if(countlight==15000){ALight=~ALight;countlight=0;}

26

} else {ALight=1;}

}

//45分钟时间到 if(timeflag==1) { }

//1s中到发射测距

for(i=0;i<10;i++)

{ASoundTime=~ASoundTime;ATime=~ATime;delayms(400);} timeflag=0;

if(time5sflag==1 ) { }

if(backwaveflag==1)//检测到回波 { }

time=TH1;

time=(time<<8)|TL1;

distance=(int)((time*170)/1000); if(distance

else if(distance>DISBOUND) ADistance=1; backwaveflag=0;

SendSound(8); time5sflag=0;

27

}

/*********************初始化子程序*************************/ void Init(void) {

TMOD=0x11;//定时器0 定时器1 16位定时模式

IT0=1;//INT0下降沿触发中断

TH0=(65536-46075)/256;

TL0=(65536-46075)%6;

ET0=1; //定时器0中断允许位 TR0=1;//启动定时器0

counter=0;minutes=0;seconds=0; }

/**********************发射超声波***************************/ void SendSound(uchar nums) {

uint i=0; Set40=0; nums=nums; Set40=1;

for(i=0;i

ET1=1; //定时器1中断允许位 TR1=1;//启动定时器1

EX0=1; //开启中断0

28

}

/********************外部中断0计算距离***********************/ void int0srv(void) interrupt 0 {

//distance=SOUNDSPEED*time/1000000/2; countwave++; if(countwave==2)

{ }

/*****************T0计时子程序 计算是否超过45分钟******************/ void timer0() interrupt 1 using 2 //45分钟到则标志位置1报警 {

TH0=(65536-46075)/256;

TL0=(65536-46075)%6;

ET1=0; //定时器1中断允许位

TR1=0;//启动定时器1

EX0=0;//INT0允许中断 backwaveflag=1; countwave=0;

}

counter++;

if(counter==20) {

seconds++;

// if(seconds==5)

{time5sflag=1;}

counter=0;

if(seconds==60) {

29

搜索更多关于: 基于单片机的视力保护器电路的设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

sbit GetLight=P2^0; //光照输入 sbit GetDis=P3^2; //测距中断 sbit Set40=P3^0;//555超声波发射使能端 //全局变量定义 uchar minutes,seconds,counter; //分、秒、时计数 uchar timeflag=0; //45分钟到标志 uchar time5sflag=0;//光照太弱 uint time=0;//超声波传播的距离 uchar backwaveflag=0;//检测到回波标志 uint distance=0;//计算的距离 uchar countwave=0;//接收到的超声波个数 忽略几个 减少干扰 void main(void) { //变量定义 uint co

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com