找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于STC12C5A16S2的超声波测距(温度)程序

[复制链接]
跳转到指定楼层
楼主
ID:447150 发表于 2019-3-21 19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下为部分程序
//
//操作按键定义
sbit         KEY0=P1^4;     //功能按键设定报警距离及温度
sbit         KEY1=P1^5;     //         +键            
sbit         KEY2=P1^6;     //         -键  
sbit        KEY3=P1^7;     //备用键           
//其它定义
//sbit        flashing_lamp1=P1^4;     //指示小灯1
sbit        LO_lamp=P0^7;            //指示小灯或蜂鸣器
sbit    Ultrasonic_out=P3^3;     //超声波发射口   
sbit         Echo=P3^2;               //回波接收
//
bit  set_flashing_flag=0;             //设定时调整单元闪烁标志,0正常显示,1熄灭
bit  ds18b20_Err_flag;                //温度传感器异常标志
unsigned char xdata set_time_flag=0;  //调整控制标志,0-3,分别为正常,调距离、高温、低温
unsigned char xdata second_conter=0;  //秒计数器
//
unsigned int   xdata Distance ;  //距离
float     xdata     s,sm;   //平均距离值,每次测量距离
unsigned char xdata m_con;//距离算平均值计数,10次测量求一次平均值
//
//数据表及内存定义
//*******温度小数部分用查表法**********//
uchar  code                ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
//
//开机文字显示内容
uchar  code    disdata1[16]={"超声波距离测量器"};//开机显示画面第一行
uchar  code    disdata2[16]={"A13 电信课程设计"};//开机显示画面第二行
uchar  code    disdata3[16]={"设计者: 楼然苗  "};//开机显示画面第一行
uchar  code    disdata4[16]={"2015年10月16日  "};//开机显示画面第二行
//
//
//
//工作时显示缓存单元
//uchar  code      disdata1[16]={"超声波距离测量器"}; //显示画面第一行
uchar   xdata         DISP_DATA2[16]={"声速: 344.0 米  "}; //液晶第2行显示缓冲
uchar        xdata         DISP_DATA3[16]={"距离: 000.0CM   "}; //液晶第3行显示缓冲
uchar   xdata         DISP_DATA4[16]={"气温: +120.9℃  "}; //液晶第4行显示缓冲
//调整时的显示单元
uchar        code    DISP_DATA11[16]={"----设定状态----"}; //液晶第1行显示缓冲
uchar        code    DISP_DATA22[16]={"S2设定  S3加S4减"}; //液晶第2行显示缓冲
uchar        xdata   DISP_DATA33[16]={"报警距离:400.0CM"}; //液晶第3行显示缓冲
uchar        xdata        DISP_DATA44[16]={"温度:H+40  L-10 "}; //液晶第4行显示缓冲

//
uchar   code        DISP_DATA7[16]={"温度传感器异常!!"};//液晶第显示状态表/设定用
//
//
uchar data  temp_data[2]={0x00,0x00};    // DS18B20读出温度暂放低字节及高字节
uchar data  t_data=0;                    //温度数据整数部分值存放
float  test_temp_data;                   //测得的温度数据(有正负)
char  data  temp_bj_max;                 //报警温度上限(有正负)
char  data  temp_bj_min;                 // 报警温度下限(有正负)

带温度校正的超声波测距程序(12864M串口液晶).rar

63.35 KB, 下载次数: 141, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:302495 发表于 2019-3-21 23:20 | 只看该作者
厉害了 高手
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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