ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:219.82KB ,
资源ID:4257804      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4257804.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计高度检测仪.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计高度检测仪.docx

1、单片机课程设计 高度检测仪课题:高度检测任务书设计内容: 本课题以52系列单片机为核心,设计一个超声波测距系统。要求用按键控制超声波模块实现对障碍物的测量,并在LCD显示器上显示测量到的距离。设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)应用程序的调试。一、课题名称.1二、内容摘要.1三、方案论证.2四、单独电路设计34.1键盘接口电路.34.2液晶显示电路44.3超声波驱动电路.54.4电源供电电路.64.5单片机的选择74.6单片机最小系统.9 五、完整电路图.10 六、系统软件设计.11 6.1液晶显示.11 6.2

2、主程序.15 七、实验心得.23 致谢24 参考文献25 附录26一、课题名称:高度检测仪二、内容摘要电子测距仪要求测量范围在 0.102.00m,测量精度 1cm,测量时与被测物 体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗 缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和 物位测量仪等都可以通过超声波来实现。超声波测距器,可以应用于汽车倒车、 建筑施工工地以及一些工业现场的位置监控,也可用于液位、井深、管道长度的 测量等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控 制,并且在测量精度方面能达到工业实用的要求,因此在移动机器

3、人的研制上也 得到了广泛的应用。 本设计采用以STC89C52单片机为核心的低成本、高精度、微型化数字显示超 声波测距仪的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、 预置子程序、发射子程序、接受子程序、显示子程序、语音播报子程序等模块组成。 发射模块发射超声波, 接受模块接受回波等。三、方案论证3.1超声波高度仪的设计思路超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是

4、利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。超声波测距的原理一般采用渡越时间法。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0MHZ晶振,所以此系统的测量精度理论上可以达到毫米级。由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量

5、。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。3.2超声波测距仪原理图框图 根据设计要求并综合各方面因素,可以采用STC89C52单片机作为主控制器,用动态扫描法实现LCD数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如图1.四、单独电路设计4.1键盘接口设计键盘是人工干预计算机的主要手段,输入数据、查询及控制系统的工作状态,都要用到键盘。微型计算机所用的键盘可分为编码键盘和非编码键盘两种。

6、编码键盘采用硬件线路来实现键盘编码,每按下一个键,键盘能自动生成按键代码,键数较多,而且还具有去抖动功能,这种键盘使用方便,但硬件较复杂,PC机所用的键盘就属于这种。非编码键盘仅提供按键开关工作状态,其他工作由软件完成,这种键盘键数较少,硬件简单,一般在单片机应用系统中广泛用。按键盘与CPU的连接方式可以分为独立式按键和矩阵式键盘,本系统采用独立式键盘,分为四个独立键盘:液位下限增加键、减少键,液位上限增加键、减少键,键盘接口电路如图2所示。 图2 键盘接口电路图4.2液晶显示电路液位显示采用液晶1602显示,显示容量为16*2个字符,工作电压在4.55.5V,字符尺寸2.95*4.35(WX

7、H)mm,更直观的反映液位的变化,范围从204000(单位mm),更方便对高度范围的设置。图3是显示电路的原理图。图3 显示电路原理图 4.3超声波驱动电路 HC-SR04超声波测距模块可提供2cm-400cm的非接触距离感测功能,测距精度可高达3mm;模块包括超声波发射器、接收器与控制电路。采用IO口TRIG触发测距,模块发送8个40kHZ的方波,自动检测信号返回,测试距离=(发送到返回时间差*声速340M/S)/2。原理图如图4所示。 图4 超声波驱动原理图4.4电源供电电路由于本系统单片机及其他芯片的工作电压在4.5-5.5V之间,而供电的电压为12V远远超过其工作电压,需要通过此电路进

8、行转换。如图5所示图5 电源供电电路原理图4.5单片机的选择 本文选用STC89C52RC单片机,STC89C52RC是一种带8K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100000次以上。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,STC89C52RC

9、是它的一种升级版本。STC89C52RC单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:与MCS-51 兼容8K字节可编程闪烁存储器寿命:100000写/擦循环数据保留时间:10年全静态工作:0Hz-80MHz三级程序存储器锁定2568位内部RAM 32可编程I/O线两个16位定时器/计数5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 如图6 是STC89C52单片机的示意图 图6 STC89C52单片机示意图4.6单片机最小系统 其作用主要是为了保证单片机系统能正常工作。如图7所示,单片机最小系统主要由STC89C52单片机、外部振荡电路、复位电路和+

10、5V电源组成。在外部振荡电路中,单片机的XTAL1和XTAL2管脚分别接至由12MHZ晶振和两个30PF电容构成的振荡电路两侧,为电路提供正常的时钟脉冲。 图7 单片机最小系统五、完整电路图六、系统软件设计 主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化和串口初始化等。本次课题软件方面的程序包括主程序和液晶显示程序。 6.1液晶显示模块 #define uchar unsigned char#define uint unsigned int/LCD管脚声明sbit LCDRS = P20;sbit LCDEN= P21;/初始画时显示的内容u

11、char code Init1=IN:0000MM-0000MM;uchar code Init2=Level NOW:0000MM;/LCD延时void LCDdelay(uint z) uint x,y; for(x=z;x0;x-) for(y=10;y0;y-);/写命令void write_com(uchar com) LCDRS=0; P0=com; LCDdelay(5); LCDEN=1; LCDdelay(5); LCDEN=0;/写数据void write_data(uchar date) LCDRS=1; P0=date; LCDdelay(5); LCDEN=1; LC

12、Ddelay(5); LCDEN=0;/1602显示void init_1602() uchar i=0; write_com(0x38);/屏幕初始化 write_com(0x0c);/打开显示 无光标 无光标闪烁 write_com(0x06);/当读或写一个字符是指针后一一位 write_com(0x01);/清屏 write_com(0x80);/设置位置 for(i=0;i16;i+) write_data(Init1i); write_com(0x80+3); write_data(0+LEVEL_one/1000); write_data(0+LEVEL_one%1000/100

13、); write_data(0+LEVEL_one%1000%100/10); write_data(0+LEVEL_one%1000%100%10); write_com(0x80+10); write_data(0+LEVEL_two/1000); write_data(0+LEVEL_two%1000/100); write_data(0+LEVEL_two%1000%100/10); write_data(0+LEVEL_two%1000%100%10); write_com(0x80+40);/设置位置 for(i=0;i16;i+) write_data(Init2i); writ

14、e_com(0x80+0x40+10); write_data(0+VALUE0); write_data(0+VALUE1); write_data(0+VALUE2); write_data(0+VALUE3);void display_1602() write_com(0x80+3); write_data(0+LEVEL_one/1000); write_data(0+LEVEL_one%1000/100); write_data(0+LEVEL_one%1000%100/10); write_data(0+LEVEL_one%1000%100%10); write_com(0x80+

15、10); write_data(0+LEVEL_two/1000); write_data(0+LEVEL_two%1000/100); write_data(0+LEVEL_two%1000%100/10); write_data(0+LEVEL_two%1000%100%10); write_com(0x80+0x40+10); write_data(0+VALUE0); write_data(0+VALUE1); write_data(0+VALUE2); write_data(0+VALUE3);void display_NNNN() write_com(0x80+3); write_

16、data(0+LEVEL_one/1000); write_data(0+LEVEL_one%1000/100); write_data(0+LEVEL_one%1000%100/10); write_data(0+LEVEL_one%1000%100%10); write_com(0x80+10); write_data(0+LEVEL_two/1000); write_data(0+LEVEL_two%1000/100); write_data(0+LEVEL_two%1000%100/10); write_data(0+LEVEL_two%1000%100%10); write_com(

17、0x80+0x40+10); write_data(N); write_data(O); write_data(N); write_data(O);6.2主程序#include /器件配置文件#include unsigned int LEVEL_one=40,LEVEL_two=60;unsigned int VALUE4 = 0,0,0,0,;#include sbit RX=P17;sbit TX=P16;sbit KEY0=P10;sbit KEY1=P11;sbit KEY2=P12;sbit KEY3=P13;sbit MOTOR_one=P14; /排水水泵sbit MOTOR_

18、two=P15; /进水水泵void Delay5Ms(void);void Delay400Ms(void); unsigned int time=0;unsigned long int S=0;unsigned char flag =0,sign;/400ms延时void Delay400Ms(void) unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA-) TempCycB=7269; while(TempCycB-); ;/*/void Conut(void) time=TH0*256+TL0; TH0=

19、0; TL0=0; S=(time*2.15)/10; /算出来是MM if(S=7000)|flag=1) /超出测量范围显示“-” flag=0; sign=1; else VALUE0=S%10000/1000; VALUE1=S%10000%1000/100; VALUE2=S%10000%1000%100/10; VALUE3=S%10000%100%100%10; /*/void time_init() TMOD=0x01; /设T0为方式1,GATE=1; TH0=0; TL0=0; ET0=1; /允许T0中断 EA=1; /开启总中断 /*/void StartModule(

20、) /启动模块 TX=1; /启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0;/*/ void delayms(unsigned int ms) unsigned char i=100,j; for(;ms;ms-) while(-i) j=10

21、; while(-j); /*/void main(void) P0=0x00; time_init(); init_1602(); Delay400Ms(); /启动等待,等LCM讲入工作状态 while(1) StartModule(); while(!RX); /当RX为零时等待 TR0=1; /开启计数 while(RX); /当RX为1计数并等待 TR0=0; /关闭计数 Conut(); /计算 if(S%10000)LEVEL_two) MOTOR_one=0; MOTOR_two=1; /进水 else MOTOR_one=1; MOTOR_two=1; if(KEY0=0)

22、while(KEY0=0); if(LEVEL_one+1)(LEVEL_one+14) LEVEL_two-; if(LEVEL_two=50) LEVEL_two=80; if(sign=0) display_1602(); else display_NNNN(); sign=0; delayms(10); /80MS /*/void timer0() interrupt 1 /T0中断用来计数器溢出,超过测距范围 TH0=0; TL0=0; flag=1; /中断溢出标志七、实验心得此次实验花费的心神较多,首先是设计电路,然后是单片机代码,由于我做的是高度仪,通过超声波来实现的,无法在单

23、片机上仿真。在做实验期间挫折不断,但是在有一点成功后就会有无与伦比的喜悦,很有成就感。通过自己的努力,最终圆满完成了本次实验,结果很理想。致谢在这次超声波高度仪设计的过程中,我得到了许多人的帮助。首先我要感谢的是我的老师,在课程设计上给了我各方面的指导,这是我能顺利完成这次报告的首要条件。更重要的是帮我解决了许多技术上的难题,让我能把系统做的更加完善。在此期间,我不仅学到了许多的新知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢我的同学,他们也为我解决了不少的设计难题。这次课程设计让我明白了一个道理,个人英雄主义精神自然可贵,但我发现,个人最终还是离不开集体。参考文献【1】黄智伟.

24、 全国大学生电子设计竞赛系统设计【M】. 北京航空航天大学出版社,2006.【2】张永瑞. 电子测量技术基础【M】. 西安电子科技大学出版社,1994.【3】张谦琳. 超声波检测原理和方法. 北京:中国科技大学出版社,1993.10【4】九州. 放大电路实用设计手册. 沈阳:辽宁科学技术出版社,2002.5【5】樊昌元,丁义元. 高精度测距雷达研究. 电子测量与仪器学报,2000.10【6】苏伟,巩壁建. 超声波测距误差分析. 传感器技术,2004.【7】恒清,张靖. 加强单片机系统抗干扰能力的方法. 通化师范学院学报,2004.10【8】晗晓,袁慧梅. 单片机系统的印制板设计与抗干扰技术. 电子工艺技术,2004.6附录 材料清单 STC89C52芯片 1个 上拉电阻 1个 LCD显示 1个 超声波模块 1个 开关 4个 滑动变阻 1个 电容 2个 30pF 晶振 1个 12MHZ 电阻 2个 1K LEDD灯 2个

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1