仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
部分源码:完整源码见附件
- #include <reg52.H>//器件配置文件
- #include <intrins.h>
- #include "eeprom52.h"
- //传感器接口
- sbit RX = P3^2;
- sbit TX = P3^3;
- //按键声明
- sbit S1 = P1^4;
- sbit S2 = P1^5;
- sbit S3 = P1^6;
- //蜂鸣器
- sbit Feng= P2^0;
- sbit W1=P1^0;
- sbit W2=P1^1;
- sbit W3=P1^2;
- sbit W4=P1^3;
- //变量声明
- unsigned int time=0;
- unsigned int timer=0;
- unsigned char posit=0;
- unsigned long S=0;
- unsigned long BJS;//报警距离
- //模式 0正常模式 1调整
- char Mode=0;
- bit flag=0;
- bit flag_KEY=0;
- unsigned char const discode[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0xff/*-*/}; //数码管显示码0123456789-和不显示
- //unsigned char const positon[4]={0xfd,0xfb,0xf7,0xfe}; //位选
- unsigned char disbuff[4] ={0,0,0,0}; //数组用于存放距离信息
- unsigned char disbuff_BJ[4] ={0,0,0,0};//报警信息
- void Display();
- /******************把数据保存到单片机内部eeprom中******************/
- void write_eeprom()
- {
- SectorErase(0x2000);
- byte_write(0x2000, BJS);
- byte_write(0x2060, a_a);
- }
- /******************把数据从单片机内部eeprom中读出来*****************/
- void read_eeprom()
- {
- BJS = byte_read(0x2000);
- a_a = byte_read(0x2060);
- }
- /**************开机自检eeprom初始化*****************/
- void init_eeprom()
- {
- read_eeprom(); //先读
- if(a_a != 1) //新的单片机初始单片机内问eeprom
- {
- BJS = 50;
- a_a = 1;
- write_eeprom(); //保存数据
- }
- }
- //延时20ms(不精确)
- void delay(void)
- {
- unsigned char a,b,c;
- for(c=2;c>0;c--)
- for(b=38;b>0;b--)
- for(a=60;a>0;a--);
- }
- //按键扫描
- void Key_()
- {
- if(flag_KEY==0)
- {
- if(Mode!=0)
- {
- //+
- if(S1==0)
- {
- delay(); //延时去抖
- if(S1==0)
- {
- BJS++; //报警值加
- flag_KEY=1;
- if(BJS>=151) //最大151
- {
- BJS=0;
- }
- write_eeprom();//保存数据
- // while(S1==0)
- // Display();
- }
-
- }
- //-
- if(S2==0)
- {
- delay();
- if(S2==0)
- {
- BJS--; //报警值减
- flag_KEY=1;
- if(BJS<=1) //最小1
- {
- BJS=150;
- }
- write_eeprom();//保存数据
复制代码 仿真文件和完整源码下载:
超声波测距.zip
(160.74 KB, 售价: 3 E币)
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|
|