版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用课程设计报告题目二十七:超声波测距系统设计学 生 姓 名专 业学 号同 组 同 学指 导 教 师学 院 二一六年七月2015-2016学年第二学期 成绩:一、设计要求1.搭建单片机的最小系统;(基本项)2.选用超声波模块,设计模块与单片机的接口;(基本项)3.采用LCD显示器显示测量结果;(基本项)4.编写相应的程序;(基本项)5.提高测量精度的方法。(创新项)二、设计题目介绍及分析使用MCS-51 系列单片机作为控制器,选用超声波模块,组建测距系统并显示结果。 三、设计方案论证发出超声波开启定时器收到回波信号根据THTL计算距离通过LCD显示定时器溢出中断或未回波发出警报通过
2、循环来时时的对目标进行测距。四、具体硬件设计说明蜂鸣器:通过PNP三极管驱动。接到P32引脚。按键:有键按下时IO口变为低电平。开始按键连接到P31,P32的按键控制中断。超声波模块:选用HC-SR04。提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。超声波TRIG连接到P10,ECHO连接到P11。LCD的E,RW,RS引脚分别接到单片机P27,P25,P26,P0口作为数据输出、 五、软件设计说明开始初始化等待按键按下发出超
3、声波计算距离收到脉冲显示是否开启定时器0关闭定时器取出TH0,TL0的值,并重新赋0发出超声波信号时开启定时器0,通过定时器计算回波信号持续时间进而计算出距离。/* 单片机课程设计* 题号: 27题,超声波测距* 组员:马铭阳,程岩,孔维士* 学号?30222204 130222206 130222207* 日期:2016年6月30日* 说明 KEY_START按下,程序执行,KEY1按下显示题号,持续10秒*/#include<reg51.h>#include<intrins.h> #include<lcd.h>sbit Trig = P10; /超声波发
4、送sbit Echo = P11; /超声波接收 sbit key_start=P31; /开始按键sbit key1=P32; /中断按键sbit buzzer=P15; /蜂鸣器按键 unsigned char code TABLE = " DISTANCE: "unsigned char code ASCII = '0','1','2','3','4','5','6','7','8','9','.
5、9;,'-','C','M',' 'unsigned char code CLASS = " NO.27 "static unsigned char DisNum = 0; /? unsigned int time=0;unsigned int i=0;unsigned int key_flag=0;long S=0;bit flag =0; /成功标志位unsigned char disbuff4 = 0,0,0,0,;/* * * */延时函数void delayms(unsigned int ms) un
6、signed char i=100,j; for(;ms;ms-) while(-i) j=10; while(-j); /计算距离void Conut(void) time=TH0*256+TL0; TH0=0; TL0=0; S=(long)(time*0.17); if(S>=700)|flag=1) flag=0; LcdWriteData( ASCII11); LcdWriteData( ASCII10); LcdWriteData(ASCII11); LcdWriteData( ASCII11); LcdWriteData( ASCII12); buzzer=0; delay
7、ms(50); buzzer=1; else disbuff3=S%10000/1000; disbuff2=S%1000/100; disbuff1=S%100/10;disbuff0=S%10/1; LcdWriteData( ASCIIdisbuff3); LcdWriteData( ASCIIdisbuff2); LcdWriteData( ASCIIdisbuff1); LcdWriteData( ASCII10); LcdWriteData( ASCIIdisbuff0);LcdWriteData( ASCII12); LcdWriteData( ASCII13); /定时器0vo
8、id zd0() interrupt 1 /触发时说明超出范围 flag=1; /成功标志位置1 void inter() interrupt 0 /外部中断 LcdWriteCom(0x01); LcdWriteCom(0x80);for (i=0;i<7;i+) LcdWriteData(CLASSi); delayms(5); delayms(100);LcdWriteCom(0x80); for (i=0;i<11;i+) LcdWriteData(TABLEi); delayms(5); LcdWriteCom(0x80+0x46);/超声波发射 void StartMo
9、dule() Trig=1; /发脉冲 _nop_(); /用NOP函数时间更精准 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Trig=0; void key_board0(void) /按键扫描程序while(1) if(key_start=0)delayms(10);if(ke
10、y_start=0)while(!key_start);key_flag=1;break;else if(key1=0)delayms(10);if(key1=0)while(!key1);key_flag=2;break;void key_board1(void) if(key_start=0)delayms(10);if(key_start=0)while(!key_start);key_flag=1;if(key1=0)delayms(10);if(key1=0)while(!key1);key_flag=2;void main(void) P1 = 0xF0; /低位拉低 TMOD=0
11、x01; TH0=0; TL0=0; ET0=1; /定时器0中断 IT0=1; /外部中断0 EX0=1; EA=1; LcdInit(); key_board0();/key_board1();/if(key_flag=1)/ LcdWriteCom(0x80); for (i=0;i<11;i+) /显示DISTANCE LcdWriteData(TABLEi); delayms(5); LcdWriteCom(0x80+0x46); while(1) StartModule(); while(!Echo); /判断是否收到回波信号 TR0=1; /收到时,开启定时器 while(
12、Echo); /回波信号结束后关闭定时器 TR0=0; /关闭定时器 Conut(); /计算距离 LcdWriteCom(0x80+0x46); /设置数据指针起点,第二排第一个 delayms(80); 以下是LCD显示程序#include"lcd.h"/* 函 数 名 : Lcd1602_Delay1ms* 函数功能 : 延时函数,延时1ms* 输 入 : c* 输 出 : 无* 说 名 : 该函数是在12MHZ晶振下,12分频单片机的延时。*/void Lcd1602_Delay1ms(uint c) /误差 0us uchar a,b;for (; c>0;
13、 c-) for (b=199;b>0;b-) for(a=1;a>0;a-); /* 函 数 名 : LcdWriteCom* 函数功能 : 向LCD写入一个字节的命令* 输 入 : com* 输 出 : 无*/#ifndef LCD1602_4PINS /当没有定义这个LCD1602_4PINS时void LcdWriteCom(uchar com) /写入命令LCD1602_E = 0; /使能LCD1602_RS = 0; /选择发送命令LCD1602_RW = 0; /选择写入LCD1602_DATAPINS = com; /放入命令Lcd1602_Delay1ms(1)
14、;/等待数据稳定LCD1602_E = 1; /写入时序Lcd1602_Delay1ms(5); /保持时间LCD1602_E = 0;#else void LcdWriteCom(uchar com) /写入命令LCD1602_E = 0; /使能清零LCD1602_RS = 0; /选择写入命令LCD1602_RW = 0; /选择写入LCD1602_DATAPINS = com;/由于4位的接线是接到P0口的高四位,所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E = 1; /写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;/Lc
15、d1602_Delay1ms(1);LCD1602_DATAPINS = com << 4; /发送低四位Lcd1602_Delay1ms(1);LCD1602_E = 1; /写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;#endif/* 函 数 名 : LcdWriteData* 函数功能 : 向LCD写入一个字节的数据* 输 入 : dat* 输 出 : 无*/ #ifndef LCD1602_4PINS void LcdWriteData(uchar dat)/写入数据LCD1602_E = 0;/使能清零LCD1602_RS = 1;/选择输
16、入数据LCD1602_RW = 0;/选择写入LCD1602_DATAPINS = dat; /写入数据Lcd1602_Delay1ms(1);LCD1602_E = 1; /写入时序Lcd1602_Delay1ms(5); /保持时间LCD1602_E = 0;#elsevoid LcdWriteData(uchar dat)/写入数据LCD1602_E = 0; /使能清零LCD1602_RS = 1; /选择写入数据LCD1602_RW = 0; /选择写入LCD1602_DATAPINS = dat;/由于4位的接线是接到P0口的高四位,所以传送高四位不用改Lcd1602_Delay1
17、ms(1);LCD1602_E = 1; /写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = dat << 4; /写入低四位Lcd1602_Delay1ms(1);LCD1602_E = 1; /写入时序Lcd1602_Delay1ms(5);LCD1602_E = 0;#endif/* 函 数 名 : LcdInit()* 函数功能 : 初始化LCD屏* 输 入 : 无* 输 出 : 无*/ #ifndefLCD1602_4PINSvoid LcdInit() /LCD初始化子程序 LcdWriteCom(0x38
18、); /开显示LcdWriteCom(0x0c); /开显示不显示光标LcdWriteCom(0x06); /写一个指针加1LcdWriteCom(0x01); /清屏LcdWriteCom(0x80); /设置数据指针起点#elsevoid LcdInit() /LCD初始化子程序LcdWriteCom(0x32); /将8位总线转为4位总线LcdWriteCom(0x28); /在四位线下的初始化LcdWriteCom(0x0c); /开显示不显示光标LcdWriteCom(0x06); /写一个指针加1LcdWriteCom(0x01); /清屏LcdWriteCom(0x80); /设置数据指针起点#endif六、测试及调试硬件调试:焊接前用恒流源供电测量每个元件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川大学教育培训部业务岗工作人员招聘备考题库及答案详解参考
- 2026年(冬)四川省成都市中和职业中学面向社会公开招聘临时聘用教师备考题库及完整答案详解一套
- 2026年北京市朝阳区教育委员会所属事业单位面向应届毕业生及出站博士后公开招聘备考题库完整参考答案详解
- 2026年建筑师考试实务案例分析重难点练习题及实战经验含答案
- 2026年西凤酒文化推广岗笔试品牌历史与传播策略含答案
- 常见胸外伤护理常规流程
- 2026年乡村医生面试临床实务案例分析重难点考点练习题及解析
- 2026年网格化大数据分析应用试题含答案
- 2026年征兵体检面试身体素质考察专项练习题含答案
- 2026年美容院店长运营管理考核含答案
- 2025版中国胃癌保功能手术外科专家共识课件
- TGXAS-火龙果品质评价技术规范编制说明
- (2025)70周岁以上老年人换长久驾照三力测试题库(含答案)3
- 口腔科门诊主任年度工作汇报
- 福建省能源石化集团有限责任公司2025年秋季招聘备考题库及一套完整答案详解
- 2025年新闻记者资格证及新闻写作相关知识题库附答案
- DB32∕T 5188-2025 经成人中心静脉通路装置采血技术规范
- 深圳市2024-2025学年九年级上学期期末考试化学试卷(含答案)
- 白车身轻量化设计技术
- 华师 八年级 数学 下册《17.2 平行四边形的判定 》课件
- 主板维修课件
评论
0/150
提交评论