仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
3.gif (102.93 KB)
下載附件
2021-7-12 16:08 上傳
部分源碼:完整源碼見附件
- #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幣)
2021-7-12 16:09 上傳
點擊文件名下載附件
售價: 3 E幣 [記錄]
[ 購買]
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|
|