单片机课程设计-双向超声波测距加温度显示.docVIP

  • 50
  • 0
  • 约1.12万字
  • 约 29页
  • 2017-08-09 发布于安徽
  • 举报

单片机课程设计-双向超声波测距加温度显示.doc

单片机原理与应用 课程设计 题 目 学 院 专 业 班 级 学 生 学 号 指导教师 二〇一四 年月日超声波测距仪 4 1.1设计任务 4 2设计方案 5 2.1任务分析 5 2.2方案设计 5 2.3子程序设计 5 3系统硬件设计 11 3.1时钟电路设计 11 3.2复位电路设计 11 3.3超声波测距电路 12 3.4温度测量电路设计 12 3.5 LCD1602显示电路设计 13 4系统软件设计 14 4.1超声波测距的设计流程图 14 4.2软件编译调试环境——Keil 14 4.3系统仿真环境——Proteus 15 4.4原理图绘制及pcb设计——Altium designer 15 5仿真与性能分析 16 5.1 Proteus仿真电路图 16 6心得体会 17 参考文献 18 附录1 系统原理图 19 附录2 三维原理图 20 附录3 系统PCB图 21 附录4 程序清单 22 1设计任务 1.1设计任务 利用单片机完成双向超声波测距加温度显示的设计,克服了超声波测距的距离限制的问题,同时在测量距离的同时,测量了所测地的温度。当温度达到一定值时,蜂鸣器响,发出警报。 双向超声波测距加温度显示示意图 1. 基本要求 HC-SR04要求每侧的测量距离小于5米,而且温度对其工作 也有一定影响。感应角度不大于15度,探测距离为2cm-450cm,模块自动发送8个40khz的方波,自动检测是否有信号返回,所测距离用LCD1602液晶屏显示出来。 DS18b20测量温度精度达到0.1度,测量的温度的范围在-20度到+50度之间,用LCD1602液晶屏显示出来。 使用蜂鸣器来做报警,超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2超声波发生子程序的作用是通过P端口发送左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为1μs左右,同时把计数器T打开进行计时。超声波测距仪主程序利用外中断检测返回超声波信号,一旦接收到返回超声波信号(即引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T停止计时,并将测距成功标志字赋值。如果当计时器溢出时还未检测到超声波返回信号,则定时器T溢出中断将外中断关闭,并将测距成功标志字赋值表示此次测距不成功。void timer0(void)interrupt 1 { send=!send; TH0=0x1f; TL0=0xf4; } 超声波接收(外部中断1)程序: void int1(void)interrupt 2 { if(TH1!=0x00TH0!=0x00) { b=1; TR1=0; TR0=0; t=TH1*256+TL1; t=t/1000000; TH0=0x1f; TL0=0xf4; TH1=0x00; TL1=0x00; } else { b=0; TR1=0; TR0=0; TH0=0x1f; TL0=0xf4; TH1=0x00; TL1=0x00; } } 2.测温子程序 测温的主要器件是DS18B20,现场温度直接以“一线总线”的数字方式传输,DS18B20中有两个存测得的温度值的两个8位存贮器RAM,用11位存贮温度值,最高位(5位)为符号位。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 S S S S S 26 25 24 图2.2 DS18B20的温度存储方式 负温度时S=1,正温度时S=0。因此我们只需要逐位读出它的温度就可以了。读出一个字节C代码如下: bit init_DS18B20() { uchar num; bit flag; DQ=1; for(num=0;num2;num++); //先拉高 DQ=0; for(num=0;num200;num++); // 480-960us powerup DQ=1; for(num=0;num20;num++); // 60u

文档评论(0)

1亿VIP精品文档

相关文档