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

东莞著名网站建设百度小说app下载

东莞著名网站建设,百度小说app下载,wordpress系统很卡,成都 企业 网站建设设计要求 驱动超声波传感器,启动距离测量功能,并将其结果显示到数码管上。 按键“S5”定义为参数按键,按下S5按键,设备自动将当前采集的距离数据作为距离参数; 若测量的距离数据超过距离参数,指示灯L1点亮&#xff…

设计要求

驱动超声波传感器,启动距离测量功能,并将其结果显示到数码管上。

按键“S5”定义为参数按键,按下S5按键,设备自动将当前采集的距离数据作为距离参数;

若测量的距离数据超过距离参数,指示灯L1点亮,否则L1熄灭。

距离数据保留小数点后两位有效数字,数码管显示格式如下:

距离为0.40m(数码管高位显示标识符U)

备注

单片机IRC振荡器频率设置为12MHz。

按键模式:BTN;扩展方式:IO模式。

距离参数初始值为0。

代码

sys.h

#ifndef __SYS_H__
#define __SYS_H__#include <STC15F2K60S2.H>
//sys.c
extern float distance_keep;
extern float distance;
void init74hc138(unsigned char n);
void init();
void led1();
//seg_key.c
extern unsigned char Seg_Buff[8];
void Key_Loop();
void Seg_Loop();
void ui();#endif

main.c

#include "sys.h"
#include "intrins.h"
#define NUM 10
sbit TX=P1^0;
sbit RX=P1^1;
bit flag1=0,flag2=0,flag3=0;
void delay(){//超声波延时unsigned char i=0;for(i;i<NUM;i++){_nop_();}
}
void Timer1_Init(void)		//100微秒@12.000MHz
{AUXR |= 0x40;			//定时器时钟1T模式TMOD &= 0x0F;			//设置定时器模式TL1 = 0x50;				//设置定时初始值TH1 = 0xFB;				//设置定时初始值TF1 = 0;				//清除TF1标志TR1 = 1;				//定时器1开始计时ET1 = 1;				//使能定时器1中断EA=1;
}
void send_wave(){//发送超声波脉冲unsigned char i=8;while(i--){TX=1;delay();TX=0;}
}
void re_wave(){//接收超声波并计算距离send_wave();TH0=0;TL0=0;TR0=1;while((RX==1)&&(TF0==0));TR0=0;if(!TF0){distance=(float)(TH0<<8|TL0)*0.017;//cm}else{TF0=0;distance=0.0;}
}
void main(){init();Timer1_Init();TMOD |= 0x01;while(1){if(flag1){flag1=0;Seg_Loop();}if(flag2){flag2=0;Key_Loop();}if(flag3){flag3=0;re_wave();led1();ui();}}
}
void Timer1_Isr(void) interrupt 3
{static unsigned char count1=0;static unsigned char count2=0;static unsigned int count3=0;count1++;count2++;count3++;if(count1==2){count1=0;flag1=1;}if(count2==50){count2=1;flag2=1;}if(count3==1000){count3=0;flag3=1;}
}

sys.c

#include "sys.h"
float distance=0;
float distance_keep=0;
void init74hc138(unsigned char n){P2=(P2&0x1f)|(n<<5);P2&=0x1f;
}
void init(){P0=0x00;init74hc138(5);P0=0xff;init74hc138(4);
}
void led1(){static bit flag=0;if(distance>distance_keep&&!flag){flag=1;P0=0xfe;init74hc138(4);}else if(distance<=distance_keep&&flag){flag=0;P0=0xff;init74hc138(4);}
}

seg_key.c

#include "sys.h"
code unsigned char Seg_Table[]={0xc0,//00xf9,//10xa4,//20xb0,//30x99,//40x92,//50x82,//60xf8,//70x80,//80x90,//90xc1,//U 100xff //熄灭 11
};
unsigned char Seg_Buff[8]={11,11,11,11,11,11,11,11};
unsigned char keyval,keyold,keyup,keydown;
void Key_Loop(){if(P32==0)keyval=5;keydown=keyval&(keyold^keyval);keyup=~keyval&(keyold^keyval);if(keyval==5&&!keyold!=5){distance_keep=distance;}keyold=keyval;keyval=0;
}
void seg(unsigned char addr,num){P0=0xff;init74hc138(7);P0=0x01<<addr;init74hc138(6);P0=Seg_Table[num];if(addr==5) P0&=0x7f;init74hc138(7);
}
void Seg_Loop(){static unsigned char i=0;seg(i,Seg_Buff[i]);i++;if(i==8)i=0;
}
void ui(){Seg_Buff[0]=10;Seg_Buff[1]=11;Seg_Buff[2]=11;Seg_Buff[3]=11;Seg_Buff[4]=11;if(distance>=100)Seg_Buff[5]=(unsigned char)distance/100;elseSeg_Buff[5]=0;if(distance>=10)Seg_Buff[6]=(unsigned char)distance/10%10;elseSeg_Buff[6]=0;if(distance>0)Seg_Buff[7]=(unsigned char)(distance+0.5)%10;elseSeg_Buff[7]=0;
}

测评结果

http://www.dtcms.com/wzjs/449623.html

相关文章:

  • .net做网站开发吗个人网站规划书模板
  • cn wordpress河北电子商务seo
  • 网站网页设计制作公司seo博客优化
  • 给你一个网站怎么做怎么样做网站推广
  • 怎样在手机上建网站怎样做好网络营销推广
  • 专门做win7的网站营销策划思路
  • 在58同城做网站怎么样潍坊网站建设方案咨询
  • 淘宝联盟链接的网站怎么做seo查询seo
  • 怎么自己做网站挣钱网络营销的八大能力
  • 广西麒铭建设有限公司网站营销网站建设
  • 校园网网站建设费用怎么让关键词快速上首页
  • 深圳网站制作公司售后成都网站设计公司
  • 在哪些网站能接到活做百度关键词搜索排名统计
  • 教学网站开发应用指导方案微博热搜榜排名今日
  • 做百度移动端网站排名推广平台有哪些渠道
  • 网站开发的阶段流程图代运营一个月多少钱
  • 番禺大石seo推广代运营
  • 合肥网站建设合肥网站制作世界杯积分榜排名
  • 邯郸景区网站制作it培训学校it培训机构
  • 南昌网站建设开发公司网站seo优化服务
  • 水印网站最新消息
  • 西部数码网站模板史上最强大的搜索神器
  • 养生门户网站源码it培训班出来工作有人要么
  • 做网站的实施过程优化防控措施
  • 竞价单页网站制作友情链接怎么做
  • 好的移动端网站模板下载北京百度网讯科技有限公司
  • 建立自己的摄影网站网络营销的推广方式都有哪些
  • 个人域名备案快的网站百度账号登陆入口
  • 网站建设的关键点软文推广例子
  • 网站备案需要多少钱百度文库官网登录入口