当前位置: 首页 > news >正文

枣庄市网站建设_网站建设公司_后端工程师_seo优化

全国企业信息官网网站,网站模板 国外,wordpress如何创建导航,上海网络企业优化公司1、项目概述 功能描述#xff1a; 检测靠近时#xff0c;垃圾桶自动开盖并伴随滴一声#xff0c;2s后关盖。 发生震动时#xff0c;垃圾桶自动开盖并伴随滴一声#xff0c;2s后关盖。 按下按键时#xff0c;垃圾桶自动开盖并伴随滴一声#xff0c;2s后关盖。 硬件说明…1、项目概述 功能描述 检测靠近时垃圾桶自动开盖并伴随滴一声2s后关盖。 发生震动时垃圾桶自动开盖并伴随滴一声2s后关盖。 按下按键时垃圾桶自动开盖并伴随滴一声2s后关盖。 硬件说明 c52单片机、sg90舵机、超声波模块、震动传感器、蜂鸣器 接线说明 舵机控制口 P1.1 超声波 Trig 接 P1.5口 Echo 接 P1.6口 蜂鸣器接 P2.0口 震动传感器接 P3.2口外部中断INT0 2、编程实现 开发步骤 1、舵机和超声波代码整合 舵机用定时器0 超声波用定时器1 手册中高 4 位管定时器 1 低 4 位管定时器 0。0x0FF四个一保持低四位不变高四位全部为00x10低四位不变使高四位M0变为16位定时器 实现物体靠近自动滴一声开盖2s后关盖 2、查询法实现按键控制 3、查询法实现震动控制 4、使用外部中断0配合震动控制 3、优化 解决靠近超2s抽搐问题 添加延时关盖 优化关盖震动控制开盖问题 #include reg52.h #include intrins.h//距离小于10cmD5亮D6灭反之相反sbit SW1 P2^1; //按键开关接口 sbit D5 P3^7; sbit D6 P3^6; sbit Trig P1^5; sbit Echo P1^6; sbit sg90_con P1^1; //舵机 sbit vibrate P3^2; //振动传感器(外部中断) sbit beep P2^0; //蜂鸣器(低电平响)//int换为char,节省空间 char jiaodu; char jiaodu_bak; char cnt 0; char mark_vibrate 0; //外部中断标志位void Delay2000ms() //11.0592MHz {unsigned char i, j, k;_nop_();i 15;j 2;k 235;do{do{while (--k);} while (--j);} while (--i); }void Delay150ms() //11.0592MHz {unsigned char i, j, k;_nop_();i 2;j 13;k 237;do{do{while (--k);} while (--j);} while (--i); }void Delay10us() //11.0592MHz {unsigned char i;i 2;while (--i); }void startHC() {Trig 0;Trig 1;Delay10us();Trig 0; }//定时器0初始化 void Time0Init() {TMOD 0xF0; //设置定时器 0 模式TMOD | 0x01; TL0 0x33; //给初值定一个0.5msTH0 0xFE; ET0 1; //打开定时器0中断 EA 1; //打开总中断EATR0 1; //开始计时TF0 0; }//定时器1初始化 void Time1Init() {TMOD 0x0F; //设置定时器 1 模式TMOD | 0x10;TH1 0;TL1 0;//设置定时器0工作模式1初值设定为0开始数数不着急启动定时器 }/* 十进制左移一位相当于乘以10。例2左移一位为20 二进制左移一位相当于乘以2. 例1左移一位为10十进制的2 左移8位相当于乘以2的8次方 256 */double get_distance() //封装函数距离 {double time;//时间//定时器数据清零方便下一次测距TH1 0;TL1 0;startHC(); //给TRIG一个10us的高电平while(Echo 0); //ECHO由**低电平跳转到高电平**表示开始发送波TR1 1; //波发送时启动定时器while(Echo 1); //ECHO由**高电平跳转到低电平**表示波返回TR1 0; //波回来时关闭定时器time (TH1 * 256 TL1)*1.085; //计算中间经过的时间,以 um 为单位return (time * 0.017);//距离时间*波的速度340m/s/ 2 ; 340m/s 34cm/ms 0.034cm/us }void openStatuslight() //封装函数状态灯开D5亮开盖 {D5 0;D6 1; }void closeStatuslight() //封装函数状态灯关D5灭关盖 {D5 1;D6 0; }void initSG90_0() //封装函数舵机角度 {jiaodu 1; //初始化角度0°0.5ms的高电平cnt 0; //角度变化cnt从0计算sg90_con 1;//给高电平 }void openDustbin()//封装函数舵机转动角度--打开垃圾桶 {char n;jiaodu 4;//爆表4次0.5*42ms高电平转135度if(jiaodu_bak ! jiaodu){cnt 0;beep 0; //蜂鸣器响for(n 0;n 2;n);Delay150ms();beep 1;Delay2000ms(); //每隔两秒转一次}jiaodu_bak jiaodu;}void closeDustbin()//封装函数舵机转动角度--关闭垃圾桶 {jiaodu 1;jiaodu_bak jiaodu;cnt 0;Delay150ms(); }void EX0_Init() //封装函数外部中断 {EX0 1; //打开外部中断 (下降沿触发IT0/TCON.0 1 低电平触发IT0/TCON.0 0 )IT0 0; //低电平触发 }void main() {double dis;//距离Time0Init();//定时器0初始化Time1Init();//定时器1初始化EX0_Init();initSG90_0();//舵机角度while(1){dis get_distance();//超声波测距if(dis 10 || SW1 0 || mark_vibrate 1){ //小于10cm或者sw1按键被按下或者震动产生//振动产生有可能发生在延时期间电频转变急促不稳定所以要使用外部中断INIT0 openStatuslight(); //D5亮开盖openDustbin(); //打开垃圾桶mark_vibrate 0; //恢复}else{closeStatuslight(); //D5灭关盖closeDustbin(); //关闭垃圾桶}}} //定时器0中断 void Time0Handler() interrupt 1 {cnt; //统计爆表的次数TL0 0x33; //重新给初值TH0 0xFE;if(cnt jiaodu){ //PWM波形控制sg90_con 1;}else{sg90_con 0;}if(cnt 40){ //爆表40次经过20mscnt 0; //重新计算cntsg90_con 1;} }//外部中断 void EX0_Handler() interrupt 0 {mark_vibrate 1; }
http://www.ihoyoo.com/news/140717.html

相关文章:

  • 招聘网站开发的公司网站不用域名可以吗
  • seo培训学校排名青岛济南网站建设优化
  • phpcms v9 网站建设设计制作网络科技模板ps做网站显示内容参考
  • 推荐十个网站展馆设计论文
  • 南通高端网站建设机构公司网站备案名称
  • 做网站要域名吗php网站安装好后后台无法登陆提示是500是怎么回事?
  • 网站排名优化提升快速html5网站模板免费
  • win7建设网站教程重庆建设摩托车价格及图片
  • 网站建设合同的内容与结构购物网站页面设计图片
  • 青岛网站建设公司正网站建设凭证
  • 网站分站原理开发公司认领工程网站
  • 淘宝客网站建设教程html底部的版权代码
  • 大学专业网站学习做网站难吗
  • 那些外贸网站个人可以做绍兴网站建设公司
  • 杭州活动策划公司有哪些洛阳网站建设优化案例
  • 快手等视频网站做推广宁波高端网站建设推广
  • 咖啡色网站模板专业的手机网站开发
  • 网站托管运营微信小程序怎么关闭未成年模式
  • 晋城市企业网站设计logo怎么设计
  • 外包网站该怎么做帐公司百度推广一年多少钱
  • 网络营销站点推广的方法wordpress伪静态cdn配置
  • 常州网站关键字优化百度开户多少钱
  • 怎么做义工网站简洁手机购物网站会员中心模板
  • 网站设计的关键小程序开发网站设计制作
  • 手机网站策划群晖个人网站建设
  • 网站标头图片切换国内免费域名
  • 开发商城网站深圳网站设..
  • 广西网站建设网址建设部网站上怎样查询企业业绩
  • 网站建设列入管理费用说明科目外贸英文网站
  • 用wordpress建站安阳网站建设方案