单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 293|回复: 1
打印 上一主题 下一主题
收起左侧

OLED超声波测距报警

[复制链接]
跳转到指定楼层
楼主
STC89系列单片机多路超声波测距报警器
可按键分别设置几路的报警距离,声光报警。程序是四路的,我屏蔽了一路,喜欢的可以自己去DIY
不多说了,自己看图,下面是部分代码
这个论坛OLED资源非常少,现在1602/12864已经不好玩了,体积大,引脚多,OLED 屏幕非常好玩,可以自己做字库。
关注我,每周都会发布作品。消息不回复的加我,论坛不是一直在线的,欢迎大家学习讨论
QQ:1137035271




#include "REG51.h"                          //头文件
#include "oled.h"                          //OLED的头文件
#include "bmp.h"                          //显示图片的头文件

#define u8  unsigned char
#define u16 unsigned int


sbit     Trig1    =  P1 ^ 3;   //        1
sbit     Ecno1    =  P1 ^ 0;   //
sbit     Trig2    =  P1 ^ 4;   //        2
sbit     Ecno2    =  P1 ^ 1;   //
sbit     Trig3    =  P1 ^ 5;   //        3
sbit     Ecno3    =  P1 ^ 2;   //
sbit     Trig4    =  P1 ^ 6;   //        4
sbit     Ecno4    =  P1 ^ 7;   //超声波模块管脚定义
//sbit OLED_CS   =P1^4; //片选
//sbit OLED_RST  =P2^5;//复位
//sbit OLED_DC   =P2^4;//数据/命令控制
//sbit OLED_SCL  =P2^7;//时钟 D0(SCLK
//sbit OLED_SDIN =P2^6;//D1(MOSI) 数据

u16  time1=0;
u16  time2=0;
u16  time3=0;
u16  time4=0;
long S1=0;
long S2=0;
long S3=0;
long S4=0;                                                //计算缓存变量

bit  flag =0;                                        //溢出标志位

sbit SS1=P3^3;                                        //进入设置模式
sbit SS2=P3^4;                                        //报警距离加
sbit SS3=P3^5;                                        //距离减
sbit SS4=P3^6;
//sbit  
//sbit  
unsigned long BJS=50;                                                   //默认报警距离30CM
unsigned long BJS2=50;                                           //默认报警距离30CM
unsigned long BJS3=50;                                           //默认报警距离30CM
unsigned long BJS4=50;                                           //默认报警距离30CM

char Mode=0;                                           //模式 0正常模式 1调整

void delay(u16 x)                                 //延时函数
{
    u16 i,j;
    for(i= x;i>0;i--)
        for(j=110;j>0;j--);
}
void Int_Init()
{
        TMOD=0x01;                                                  
        TH0=0x00;
        TL0=0x00;                                               
        TR0=1;
        ET0=1;                                           
        EA=1;                                                       
}
void Key_Mode()                                        //按键扫描/模式
{
        if(SS1==0)                                        //按键按下
        {
                delay(10);                                //延时去抖
                if(SS1==0)                                //判断按键是否按下
                {
                        OLED_Clear();                //清屏
                }
                Mode++;                                        //模式加
                if(Mode==2)                                //模式等于二
                {
                        Mode=0;                                //模式归零/正常测量模式
//                        OLED_Clear();                //清屏
                }
                while(SS1==0);                        //松手检测
//                OLED_ShowNum(60,4,BJS,3,16);
        }       
}
void Conut1(void)                                                //第一路测距
{
        time1=TH0*256+TL0;                                        //储存定时计数器的值
        TH0=0x00;
        TL0=0x00;                                                        //清零
        S1=time1*1.7/100;                                      //计算距离
        if(flag==1)                                                     //标志位置一/超出测量
        {         
                flag=0;                                                         //标志位归零
                OLED_ShowString(20,0,"---");         //第一行显示三杠,表示超量程
//                OLED_ShowNum(60,0,S1,3,16);
//                OLED_ShowString(75,0,"exceed");
        }
        else
        {       
                OLED_ShowString(0,0,"A:");                //通道A
                OLED_ShowString(50,0,"CM");                //单位
                OLED_ShowNum(20,0,S1,3,16);                //显示距离
        }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
a598089072 发表于 2019-1-9 20:00 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51hei电子论坛2群 联系QQ:125739409;技术交流QQ群219535678

Powered by 单片机教程网

快速回复 返回顶部 返回列表