电子测量课程设计-计算机串口接收+LCD距离显示设计.docx_第1页
电子测量课程设计-计算机串口接收+LCD距离显示设计.docx_第2页
电子测量课程设计-计算机串口接收+LCD距离显示设计.docx_第3页
电子测量课程设计-计算机串口接收+LCD距离显示设计.docx_第4页
电子测量课程设计-计算机串口接收+LCD距离显示设计.docx_第5页
已阅读5页,还剩28页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成 绩 评 定 表学生姓名班级学号专 业测控技术与仪器课程设计题目计算机串口接收+LCD距离显示评语组长签字:成绩日期2017年 7月11日课程设计任务书学 院自动化与电气学院专 业测控技术与仪器学生姓名班级学号课程设计题目计算机串口接收+LCD距离显示设计实践教学要求与任务:电子测量技术是测控技术与仪器专业的专业基础课。本设计是对该课程综合应用能力的检验,在鼓励学生熟悉基本原理的前提下,注重与实际应用相联系,提出自己的方案,完善设计。1、熟悉被测对象的测量技术工作原理; 2、提出可行设计方案;3、根据方案设计硬件电路,应用Protel绘制电路原理图;4、软件编程并调试;5、硬件焊接与调试;6、完成课程设计报告。工作计划与进度安排:第17周(6月19日-6月23日):布置设计任务,查资料,完成总体设计框架。第19周(7月3日-7月7日):完善设计内容,焊接调试,验收答辩。指导教师: 2017 年 6月15日专业负责人:2017年6月16日学院教学副院长:2017年6月16日目录一 设计要求1二 设计方案与论证12.1主控系统12.2信息采集模块12.3显示模块的选择22.4计算机串口2三 总体设计及电路图33.1主板总体设计框图33.2信号检测模块33.3显示模块6四 元器件清单8五 元器件识别与检测85.1 电阻的识别与检测85.2 二极管三极管识别与检测105.3 电容的识别与检测115.4 单片机的识别与检测11六 硬件制作与调试116.1检查元件116.2焊接元件126.3电路的调试126.4 结果显示12七 设计心得13八 参考文献14附录一 整机电路图15附录二 程序16一 设计要求1.实现距离信号的采集和数字转换。2.实现LCD1602液晶的数据显示 。3.成和计算机的简单数据传送。二 设计方案与论证根据课设题目要求,确定如下方案,依靠HC-SR04超声波测距传感器来获取距离信息。通过液晶LCD1602显示屏显示出来,同时通过计算机串口接收在计算机上显示出来,实现实时同步传输。2.1主控系统根据设计要求,该设计属于多输入量的复杂程序控制问题。综合各方面问题考虑,51单片机显现了巨大的优越性控制简单,方便,快捷。 STC89C52RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C52RC系列单片机是单时钟/ 机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051单片机,拥有全新的流水线/ 精简指令集结构,内部集成MAX810 ,有较为强大的控制功能及可位寻址操作功能,价格低廉等优点。而且体积小,程序空间大。综合考虑,最终决定采用STC89C52单片机。2.2信息采集模块 采用激光测距距离远,精度高,但是成本夜相应太高。故放弃该方案。 采用HC-SR04超声波传感器,将传感器置于前侧发射超声波信号,接受超声波信号来感知障碍物,探测距离。由单片对距离进行判断,然后对采集的数据加以处理。而且收发一体,控制简单,精度高,价格低廉。2.3显示模块的选择采用字符液晶LCD1602显示信息,1602是一款比较通用的字符液晶模块,能显示字符和数字等信息,且价格便宜,容易控制。显示模块采用的是液晶LCD1602。也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。2.4计算机串口此次串口采用51单片机下载软件的串口调试助手,设置波特率4800,数据位为8,停止位为1.打开串口为接收模式,计算机串口就能接收到数据。点击清空接受区,能将接收区清空,继续重新接收。如图2-1所示:图2-1串口调试助手三 总体设计及电路图3.1主板总体设计框图该系统由五个部分组成:时钟电路、复位电路、驱动电路、检测电路、转向电路。时钟电路和复位电路为单片机工作提供基本动力。驱动部分使小车能够运动起来。检测电路对前方道路障碍情况。,其根本是对数据进行采集。智能车系统主框图和所需原件清单如图3-1所示: 显示模块STC89C52时钟电路距离检测电路复位电路数据传输部分 图3-1主板设计框图3.2信号检测模块所用测距模块为HC-SR04超声波测距模块,通过发射超声波和接收超声波,利用定时器计算路程时间来实现对障碍的普安段。实物和引脚如图3-2所示。工作原理的时序图如图3-3和模拟工作图如图3-4所示. 图3-2 HC-SR04实物引脚图1.引脚功能.VCC 电源端.Trig 控制端.Echo 接收端.GND 公共地图3-3 超声波时序图 图3-4 模拟工作图 2.工作原理:(1)采用IO口TRIG触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)若有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间测试距离 = (高电平时间 * 声速(340M/S)/2);超声波测距模块由单片机控制,分为发射和接受部分并由定时器进行驱动,每隔一定的时间发射超声波。超声波信号遇到障碍物反射回来被接收器接收,通过放大处理反馈到单片机进而完成测距任务。定时器流程图如图3-5所示。图3-6 为超声波发射和接收电路图。图3-5 定时器中断子程序图3-6 超声波发射和接收3.3显示模块采用字符液晶LCD1602显示信息,1602是一款比较通用的字符液晶模块,能显示字符和数字等信息,且价格便宜,容易控制。引脚图如3-7所示:图3-7 液晶显示电路LCD1602的主要技术参数:1、显示容量:162个字符2、芯片工作电压:4.55.5V3、工作电流:2.0mA(5.0V)4、模块最佳工作电压:5.0V5、字符尺寸:2.954.35(WH)mm引脚功能说明LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-1所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表3-1引脚接口说明引脚接口说明表:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极四 元器件清单元器件清单如表4-1所示:元件序号型号数量(个)主要参数1STC89C521-2LCD16022-4HC-SR041512M晶振1HZ622pf电容2F810uf电容1F910k排阻810USB线1-11自锁开关 六脚1-12DC-002电源插座1-13杜邦线若干表4-1元件清单五 元器件识别与检测5.1 电阻的识别与检测1.色环电阻的识别方法色环电阻的识别方法是指电阻上面用了四道色环或者五道色环或者六道色环来表示电阻值 。可以从任意角度一次性的读取代表电阻值的颜色信息。先找标志误差的色环,从而排定色环顺序。最常用的表示电阻误差的颜色是:金、银、棕,尤其是金环和银环,一般绝少用做电阻色环的第一环,所以在电阻上只要有金环和银环,就可以基本认定这是色环电阻的最末一环。具体识别如图5-1所示:图5-12.排阻的识别方法在标示的三位数字中,从左至右的第一、第二位为有效数字,第三位表示前两位数字乘10的N次方(单位为)。如果阻值中有小数点,则用“R”表示,并占一位有效数字。例如:标示为“103”的阻值为10103=10k;标示为“222”的阻值为22102=2.2k;标示为“105”的阻值为10105=1M。需要注意的是,要将这种标示法与一般的数字表示方法区别开来,如标示为220的电阻器阻值为22100=22,只有标志为221的电阻器阻值才为220。标示为“0”或000”的排阻阻值为O,这种排阻实际上是跳线(短路线)。一些精密排阻采用四位数字加一个字母的标示方法(或者只有四位数字)。前三位数字分别表示阻值的百位、十位、个位数字,第四位数字表示前面三个数字乘10的N次方,单位为欧姆;数字后面的第一个英文字母代表误差(G=2%、F=1%、D=0.25%、B=O.1%、A或W=0.05%、Q=0.02%、T=0.01%、V=0.005%)。如标示为“2341”的排阻的电阻为23410=2340。3.电阻的检测方法用万用表检测固定电阻器。在用表测量前,需对万用表调零,选择要使用的挡位,将红、黑两根表笔短接,调节调零螺母使表头指针阻值为零,然后用表笔接被测固定电阻器的两个引出端,此时表头指针偏转的指示值,即为被测电阻器的阻值。如果指针不摆动,则可将万用表换到阻值较大挡位,并重新调零后再次测量。注意:1.在路检测时,一定要切断机器的电源,否则测量不准而且容易损坏万用表;2.开检测时人体手指不要同时碰到万用表的两支表棒,也不要碰到被测固定电阻器的两根引脚,以免影响测量结果。5.2 二极管三极管识别与检测1. 常用三极管的识别 常用三极管封装形式有金属封装和塑料封装两大类,引脚的排列方式具有一定的规律,对于金属外壳三极管,底视图位置放置,使三个引脚构成等腰三角形的顶点从左向右依次为e b c;对于塑料外壳三极管使其平面朝向自己,三个引脚从左到右依次为e b c。2. 二极管检测方法利用数值万用表测电阻档,分别用红黑表笔接二极管两端,若电阻无穷大则红笔为二极管负极,反之为正极。3.三极管的检测方法利用指针型万用表可以判三极管的类型和极性,其步骤如下:判断基极B和管型时万用表置R1K档,先将红表笔接某一假定基极B,黑表笔分别接另两个极,如果电阻均很小(或很大),则假定的基极是正确的。基极确定后,红笔接基极,黑笔分别接另外两个电极时测得的电阻均小,则此管为NPN型三极管,反之为PNP型。判断发射极E。若被测管为PNP三极管,假定红笔接的是C极,黑笔接的是E极。用手指捏住B、C两极(或在B、C间串接一个100K电阻)但不要使B、C直接接触。若测得电阻较小,则红笔接的是集电极C,黑笔接的是发射极E。如果两次测得的电阻相差不大说明管子的性能较差。按照同样方法可以判别NPN型三极管的极性。利用数字型万用表测量三极管的电流放大倍数: 将功能开关置於hFE档。对NPN三极管,将发射极(e)、基极(b)和集电极(c)分别插入管插座NPN边的e、b和c孔中,显示器显示的数字即是三极管的电流放大倍数。对PNP三极管,同样将发射极(e)、基极(b)和集电极(c)分别插入管插座PNP边对应的e、b和c孔中,显示器显示的数字即是该管的电流放大倍数 。5.3 电容的识别与检测电容器的好坏可用万用表的电阻挡检测。检测时,据电容器容量的大小,100F以上的电容器用“R100”挡,1100F的电容器用“R1k”挡,1F以下的电容器用“R10k”挡。用万用表的两表笔(不分正、负)分别去与电容器的两引线相接,在刚接触的一瞬间,表针应向右偏转,然后缓慢向左回归。对调两表笔后再测,表针应重复以上过程。电容器容量越大,表针右偏越大,向左回归也越慢。对于容量检测时,如果万用表表针不动,说明该电容器已断路损坏;如果表针向右偏转后不向左回归,说明该电容器已短路损坏;如果表针向左回归稳定后,阻值指示小于500k,说明该电容器漏电较大,也不宜使用。5.4 单片机的识别与检测1. 用万用表测量单片机的Vcc与GND两脚,测量工作电压是否正常,日前常用的单片机电压一般为5V或者3.3V,若电压不在这两个值可能是供电出现问题。 2.看单片机的复位电路,主要观察复位电路电容、电阻值是否与给定的相关数值相符合。 3.观察晶振及两个电容,看数值是否正确,用万用表测量单片机晶振的两个管脚,大约2.092V左右。一般来说,电源正常,复位电路正常,晶振起振,单片机都能正常工作,但也不能排除单片机内部存在的问题,如果条件允许,可自行写个个小程序进行测试。六 硬件制作与调试6.1检查元件 按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件,焊件,防止出现焊错,虚焊。6.2焊接元件按原理图的位置放置各元件,在放置过程中要先放置,焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。在焊接最小系统完毕的时候,发现并不好用,但是检查发现并没有什么问题,后来上网查了一下才知道原来是P0口没有接上拉电阻。然后进行了改进,最终实现了功能。还有一个问题就是LCD液晶的VO口要接一个电位器,而且要调整好电位器的阻值,不然很有可能出现液晶屏幕不显示的情况,即使你所有部分都没有问题。6.3电路的调试首先烧入程序,液晶显示距离正常和计算机串口接收数据显示正常。说明实验是成功的。调节传感器的位置,液晶屏显示不同的距离,计算机串口夜同步显示距离。在调试程序时,发现有的指令用的不正确,导致电路功能不能够完全实现,另外软件程序中的延时有的过长,有的过短以及其它一些可能产生影响的程序要注意一下。还有就是注意液晶的电位器调节,否则可能显示不了数据。6.4 结果显示数据在液晶屏上显示结果,第一行显示the meter is;第二行显示数据和一个米字。数据在小于7米的范围内会正常显示,大于这个范围,就会显示Error提示测量超出范围。点击关闭会停止数据的传输和接收。结果如图6-1所示:图6-1计算机串口数据显示七 设计心得经过几天的学习和研究,我明白了一些比较复杂的电路设计和基本原理,并且通过自己亲手焊接电路板,提高了自己的动手能力。在今后的学习生活中,我定会更加的努力,在老师的指导下学习更多的知识努力的培养自己各方面,尤其是独立思考的能力,争取更好的成绩。在后面的电路设计和程序设计过程中,虽然出现了一些大大小小的问题,但是最终都得到了解决。最大的体会就是进一步认识到了理论联系实践的重要性。一份耕耘,一份收获。通过这段时间的设计,让我明白科学的思维方法和学习方法是多么重要,只有这样才能够有很高的效率,才能够让自己的工作更完美。总而言之,此次课程设计让我学到了好多平时在课堂上学不到的东西,增加了我的知识运用能力,增强我的实际操作能力。谢谢老师给我们提供这么好的机会,为我们之后走向社会奠定了一个好的基础。 此次作品设计的成功离不开老师的指导和同学们的帮助,。他们给我提了很多宝贵的建议,指出了设计上的不足。尤其胡瑞感谢老师,在这一学期里给了我很多指导。还有我的同学李浩斌,帮我解决了很多难题。在这里向所有帮助我的老师和同学们道一声感谢。八 参考文献【1】李群芳,张士军,黄建.单片微型计算机与接口技术. 北京:电子工业出版社,2008【2】李群芳.单片机原理接口与应用.北京:清华大学出版社,2005【3】张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社,1999【4】高峰.单片微机应用系统设计及使用技术.北京:机械工业出版社,2007【5】彭伟.单片机c语音程序设计实例基于protues仿真.北京:电子工业出版社,2007【6】张冬林,李鑫,戴梅.基于DHT11的低成本蚕室温湿度自动控制系统设计J.现代农业科技,2010,(18):14-15 .【7】徐春河.浅谈AT89S51J.制造业自动化,2010,(12):80-82.【8】吴汉清.常用的典型单片机资料J.无线电,2007,(11):72-80.【9】叶健斌.基于单片机嵌入式系统的GPS应用J.电子质量,2008,(7):16-24.附录一 整机电路图28附录二 程序主程序和超声波测距#include#include#includelcd.hsbit Trig = P23;sbit Echo = P22;uchar CNCHAR6 = 米;/void LcdDisplay(int);unsigned char PuZh= The meter is ;unsigned char code ASCII15 = 0,1,2,3,4,5,6,7,8,9,.,-,M;static unsigned char DisNum = 0; /显示用指针 unsigned int time=0; unsigned long S=0; bit flag =0; unsigned char disbuff4 = 0,0,0,0,;/* 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 : 无*/void Conut(void)unsigned char i; time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/100; /算出来是CM if(S=700)|flag=1) /超出测量范围显示“-” flag=0; DisplayOneChar(0, 1, ASCII11);SBUF = E;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; DisplayOneChar(1, 1, ASCII10);/显示点SBUF = r;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; DisplayOneChar(2, 1, ASCII11); SBUF = r;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; DisplayOneChar(3, 1, ASCII11);SBUF = o;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; DisplayOneChar(4, 1, ASCII12);/显示MSBUF = r;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; else disbuff0=S%1000/100; disbuff1=S%1000%100/10; disbuff2=S%1000%10 %10; DisplayOneChar(0, 1, ASCIIdisbuff0);SBUF = 0+disbuff0;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; DisplayOneChar(1, 1, ASCII10);/显示点SBUF = .;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; DisplayOneChar(2, 1, ASCIIdisbuff1);SBUF = 0+disbuff1;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; DisplayOneChar(3, 1, ASCIIdisbuff2);SBUF = 0+disbuff2;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; DisplayOneChar(4, 1, ASCII12);/显示Mfor(i=0; i2; i+)SBUF = CNCHARi;/将接收到的数据放入到发送寄存器while (!TI); /等待发送数据完成TI = 0; void zd0() interrupt 1 /T0中断用来计数器溢出,超过测距范围 flag=1; /中断溢出标志 void StartModule() /启动模块 Trig=1; /启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Trig=0; void delayms(unsigned int ms)unsigned char i=100,j;for(;ms;ms-)while(-i)j=10;while(-j);void main(void)SCON=0X50;/设置为工作方式1TMOD=0X21;/设置计数器工作方式2PCON=0X80;/波特率加倍TH1=0XF3;/计数器初始值设置,注意波特率是4800的TL1=0XF3;/ES=1;/打开接收中断/EA=1;/打开总中断TR1=1;/打开计数器 /TMOD=0x01; /设T0为方式1,GATE=1; TH0=0; TL0=0; ET0=1; /允许T0中断 EA=1; /开启总中断InitLcd1602();LcdShowStr(0,0,PuZh);while(1) StartModule(); while(!Echo);/当RX为零时等待 TR0=1; /开启计数 while(Echo);/当RX为1计数并等待 TR0=0;/关闭计数 Conut();/计算 delayms(80);液晶显示部分#includelcd.hvoid Read_Busy() /忙检测函数,判断bit7是0,允许执行;1禁止 unsigned char sta; / LCD1602_DB = 0xff; LCD1602_RS = 0; LCD1602_RW = 1; do LCD1602_EN = 1; sta = LCD1602_DB; LCD1602_EN = 0; /使能,用完就拉低,释放总线 while(sta & 0x80);void Lcd1602_Write_Cmd(unsigned char cmd) /写命令 Read_Busy(); LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_DB = cmd; LCD1602_EN = 1; LCD1602_EN = 0; void Lcd1602_Write_Data(unsigned char dat) /写数据 Read_Busy(); LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_DB = dat; LCD1602_EN = 1; LCD1602_EN = 0;void LcdSetCursor(unsigned char x,unsigned char y) /坐标显示 unsigned char addr; if(y = 0) addr = 0x00 + x; else addr = 0x40 + x; Lcd1602_Write_Cmd(addr|0x80);/按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1if (Y) X |= 0x40; /当要显示第二行时地址码+0x40;X |= 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论