毕业设计基于AT89S52单片机的声波测距仪设计1

上传人:1666****666 文档编号:36272508 上传时间:2021-10-30 格式:DOC 页数:47 大小:930.02KB
返回 下载 相关 举报
毕业设计基于AT89S52单片机的声波测距仪设计1_第1页
第1页 / 共47页
毕业设计基于AT89S52单片机的声波测距仪设计1_第2页
第2页 / 共47页
毕业设计基于AT89S52单片机的声波测距仪设计1_第3页
第3页 / 共47页
点击查看更多>>
资源描述
河南工程学院毕业设计基于AT89S52单片机的声波测距仪设计摘 要 随着科学技术的快速发展,超声波将在传感器中的应用越来越广。但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波传感器作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;大力降低潜艇自噪声,改善潜艇声纳的工作环境。无庸置疑,未来的超声波传感器将与自动化智能化接轨,与其他的传感器集成和融合,形成多传感器。随着传感器的技术进步,传感器将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。在新的世纪里,面貌一新的传感器将发挥更大的作用。关键词:超声波 测距 AT89S52 E2PROM Abstract With the rapid development of science and technology, ultrasonic sensor will be used more and more widely.However, the present level of technology, people can use the specific sensor technology is also very limited, it is a booming and there are unlimited prospects for technical and industrial fields.Looking ahead, the ultrasonic sensor is very important as a new useful tool in all aspects will have a huge space for development, it will be more towards the direction of high positioning accuracy to meet the growing needs of the community, such as the Audioaccept the basic trends are: development of a higher positioning accuracy of passive ranging sonar, underwater weapons, in order to meet the needs of all covert attacks; continue to develop the use of low-frequency line spectrum detection of submarine towed array sonar, ultra-long-rangepassive detection and identification; develop more suitable for work in shallow water submarine sonar, especially the shallow underwater target recognition problem; effort to reduce the submarine from the noise and improve the working environment of submarine sonar.There is no doubt that the future automation of ultrasonic sensors and intelligent integration with other sensor integration and fusion, the formation of multi-sensor.With technological advances in sensors, sensor development from a simple function to determine a learning function and, ultimately, to be creative.In the new century, new look of the sensor will play a bigger role. Key words: Ultrasonic Wave Distance Measuring AT89S52 E2PROM目 录前 言1第一章 超声波测距概述2第二节 超声波检测的发展2第二节 超声波测距特性2一、超声波用于距离测量的优势2二、超声波检测技术3第二章 超声波测距原理4第一节 超声波发生器4第二节 压电式超声波发生器原理5第三节 超声波测距原理5第三章 系统结构及硬件设计6第一节 系统结构6第二节 系统设计7一、单片机电路及主程序7二、测距电路及程序10三、显示电路及程序13四、数据存储电路及程序17第四章 系统试验结果与误差分析22第一节 系统试验结果22第二节 误差分析22第五章 结论24参考文献25附录26致谢39 44 前 言 超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物 位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测距仪器的研制上也得到了广泛的应用。 本文介绍了一种基于单片机的脉冲反射式超声波测距模块。该模块以空气中超声波的传播速度为确定条件,利用反射超声波测量待测距离。论文概述了超声检测的发展及基本原理,介绍超声波传感器的原理及特性。对于测距系统的一些主要参数进行了讨论。并且在介绍超声测距系统功能的基础上,提出了系统的总体构成,并且提供了用E2prom存储测量数据的功能,且针对测距系统发射、接收、检测、显示部分、数据保存的总体设计方案进行了论证。进一步介绍了单片机AT89S52在系统中的应用,分析了系统各部分的硬件及软件实现,最后利用测距系统进行验证。实验表明:各主要技术指标均达到设计要求。该系统对室内有限范围的距离测量具有较高的精度和可靠性,最后文中分析了误差产生的原因及如何对系统进行完善。 第一章 超声波测距概述第一节 超声波检测的发展 随着机器人技术在其诞生后短短几十年中的迅猛发展,它的应用范围也逐步由工业生产走向人们的生活。如此广泛的应用使得提高人们对机器人的了解显得尤为重要。机器人通过其感知系统察觉前方障碍物距离和周围环境来实现绕障、自动寻线、测距等功能。超声波测距相对其他测距技术而言成本低廉,测量精度较高,不受环境的限制,应用方便,将它与红外、灰度传感器等结合共同实现机器人寻线和绕障功能。超声波由于指向性强、能量消耗缓慢且在介质中传播的距离较远,因而经常用于距离的测量。它主要应用于倒车雷达、测距仪、物位测量仪、移动机器人的研制、建筑施工工地以及一些工业现场等,例如:距离、液位、井深、管道长度、流速等场合。利用超声波检测往往比较迅速、方便,且计算简单、易于做到实时控制,在测量精度方面也能达到工业实用的要求,因此得到了广泛的应用。本课题的研究是非常有实用和有商业价值的。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。为了使移动机器人能自动避障行走,就必须装备测距系统,以使其及时获取距障碍物的距离信息(距离和方向)。超声波测距系统,就是为机器人了解其前方、左侧和右侧的环境而提供一个运动距离信息。为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。第二节 超声波测距特性一、超声波用于距离测量的优势由于超声波频率较高,沿直线传播,绕射小,穿透力强,指向性强,传输过程中衰减少,能量消耗缓慢,在介质中传播的距离较远,遇到杂质或分界面时会产生反射波,因而超声波经常用于距离的测量。超声波有两个特点,一个是能量大,一个是沿直线传播,它的应用就是按照这两个特点展开的。超声波与一般声波比较,它的振动频率高,而且波长短,因而具有束射特性,方向性强,可以定向传播,其能量远远大于振幅相同的一般声波,并且具有很高的穿透能力。二、超声波检测技术超声波是指超过人的听觉范围以上(16KHZ)的声波。近二、三十年,特别是近十年来,由于电子技术及压电陶瓷材料的发展,使超声检测技术得到了迅速的发展。超声技术是一门以物理、电子、机械、及材料学为基础的通用技术之一。超声技术是通过超声波产生、传播及接收的物理过程而完成的。超声波具有聚束、定向及反射、透射等特性。 超声检测技术是利用超声波在媒质中的传播特性(声速、衰减、反射、声阻抗等)来实现对非声学量(如密度、浓度、强度、弹性、硬度、粘度、温度、流速、流量、液位、厚度、缺陷等)的测定。它的基本原理是基于超声波在介质中传播时遇到不同的界面,将产生反射,折射,绕射,衰减等现象,从而使传播的声时,振幅,波形,频率等发生相应变化,测定这些规律的变化,便可得到材料的某些性质与内部构造情况。与传统超声技术完全不同,新的超声技术具有以下特点:在不破坏媒质特性的情况下实现非接触性测量,环境适应能力强,可实现在线测量。 第二章 超声波测距原理第一节 超声波发生器超声波发生器,通常称为超声波发生源,超声波电源。它的作用是把我们的市电(220V或380V,50或60Hz)转换成与超声波换能器相匹配的高频交流电信号。从放大电路形式,可以采用线性放大电路和开关电源电路,大功率超声波电源从转换效率方面考虑一般采用开关电源的电路形式。线性电源也有它特有的应用范围,它的优点是可以不严格要求电路匹配,允许工作频率连续快速变化。从目前超声业界的情况看,超声波主要分为自激式和它激式电源。发生器的原理是首先由信号发生器来产生一个特定频率的信号,这个信号可以是正弦信号,也可以是脉冲信号,这个特定频率就是换能器的频率,一般应用在超声波设备中的超声波频率为20KHz、25KHz、28KHz、33KHz、40KHz、60KHz。总体上讲,超声波发生器可以分为两大类:一 类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生 的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。第二节 压电式超声波发生器原理压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图2-1所示,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波 时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 图2-1 超声波传感器结构 第三节 超声波测距原理超声波测距的方法有多种:如往返时间检测法、相位检测法、声波幅值检测法。本设计采用往返时间检测法测距。其原理是超声波传感器发射一定频率的超声波,借助空气媒质传播,到达测量目标或障碍物后反射回来,经反射后由超声波接收器接收脉冲,其所经历的时间即往返时间,往返时间与超声波传播的路程的远近有关。假定s为被测物体到测距仪之间的距离,测得的时间为t,超声波传播速度为v表示,则有关系式(1)s=vt2 (1) 在精度要求较高的情况下,需要考虑温度对超声波传播速度的影响,按式(2)对超声波传播速度加以修正,以减小误差。 v=331.4+0.607T (2)式中,T为实际温度单位为,v为超声波在介质中的传播速度单位为ms 。 表2-1 不同温度下的声速温度-30-20-100102030声速m/s313319322331337344350第三章 系统结构及硬件设计 第一节 系统结构 本系统的超声波发射和接收电路采用HC-SR04系列超声波测距模块,此模块的特点是可提供2cm-400cm的非接触式距离感测功能,测距精度可高达3mm。模块包括超声波发射器、接收器与控制电路。系统的性能指标依据HC-SR04系列超声波测距模块的电气参数,系统可提供2cm-200cm的非接触式距离感测功能,超出测量范围液晶1602显示Err,测距精度可高达3mm,但是本系统最小的显示单位是1cm,所以测量的最小精度是1cm。系统可提供M1-M9总共9个数据保存,key2键是上翻M1-M9,key3键是下翻M1-M9,key1键是测距键,每当按下key1键,系统测距一次,测距后的数据保存在当前液晶显示的M单元(上下键选择)中,系统可以显示用户开机后总共的测距次数,本系统还提供了开机或复位后,系统自动的跳转到关机前状态。超声波测距系统的一般结构如图3-1所示。(本系统要求不是很精确,所以舍去了温度补偿电路)。 图3-1 超声波测距系统一般结构图本系统硬件主要由单片机系统及显示电路,存储电路、超声波测距模块四部分组成。软件部分主要有主程序、超声波测距程序、显示子程序、数据存储程序等部分。 第二节 系统设计一、单片机电路及主程序系统主要由单片机系统及显示电路,存储电路、超声波测距模块四部分组成。采用AT89S52来实现对HC-SR04系列超声波测距模块、24c02、1602的控制。单片机通过P3.4(T0)引脚连接模块的Trig引脚来控制超声波的发送,然后单片机通过INT0引脚不停的检测模块的Echo引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。然后系统提供用24c02保存测试数据,用1602显示测试数据和测试次数。系统原理图如图3-2所示。 图3-2 系统原理图系统PCB图如图3-3所示。 图3-3 系统PCB图软件部分主要有主程序、超声波测距程序、显示子程序、数据存储程序等部分。程序流程图如图3-4所示。 开始 系统初始化 按键检测 测距函数 显示和存储测试结果 图3-4 程序流程图 系统主程序/主函数/void main() delay(20000); begin1_display(); for(c=0;c5;c+)delay(50000); begin2_display(); for(c=0;c6;c+)delay(50000); result_display(); init24c02(); for(c=0;c0&s=200) mi=s; write_add(i,s); display_s(mi); else write(0x80+0x40+7,0); write(0x45,1); write(0x72,1); write(0x72,1); t+; if(t=1000)t=0; text_time_display(t);/显示测试次数 二、测距电路及程序本系统的超声波发射和接收电路采用HC-SR04系列超声波测距模块,此模块的特点是可提供2cm-400cm的非接触式距离感测功能,测距精度可高达3mm。模块包括超声波发射器、接收器与控制电路。HC-SR04系列超声波测距模块基本工作原理:(1)采用IO口Trig触发测距,给至少10us的高电平信号; (2)模块自动发送8个40KHz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就 是超声波发射到返回的时间。测试距离=(高电平时间*声速)/2 ;实物如下图所示。 图3-5模块实物照片 HC-SR04系列超声波测距模块电气参数如表3-1所示。 表3-1 超声波测距模块电气参数电气参数HC-SR04超声波模块工作电压DC 5V工作电流15mA工作频率40HZ最远射程4m最近射程2cm测量角度15度输入触发信号10us的TTL脉冲输出回响信号输出TTL电平信号,与射程成正比规格尺寸45*20*15mm HC-SR04超声波测距模块超声波时序图如图3-6所示。 图3-6 超声波测距模块超声波时序图以上时序图表明你只需要提供一个10us以上脉冲触发信号,该模块内部将发出8个40Khz周期电平并检测回波。一旦检测到有回波信号则输出回波信号。回响信号的脉冲宽带与所测的距离成正比。由此通过发射信号到收到的回响信号的时间间隔可以计算得到距离。距离=高电平时间*声速/2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。注意事项:测距时,被测物体的面积不少于0.5平方米且尽量要求平整,否则影响测量结果。HC-SR04超声波测距模块与单片机的接口电路如图3-7所示。 图3-7 测距模块与单片机的接口电路测距程序/测距函数/void text()/测距函数 Trig=0; TMOD=0x09;/定时器16位,外部中断触发 TR0=1; /开定时器 TH0=TL0=0; Trig=1; /控制模块发射超声波的10us脉冲 delay(15); Trig=0; while(Echo=0); while(Echo=1);/检测Echo为低电平时定时器停止工作 delay(10); s=(TH0*256+TL0)*0.017;/测试数据的处理 TR0=0; / 三、显示电路及程序系统的显示部分采用LCD1602做为显示器件,显示器件内部有自己的处理器(HD44780),只需要单片机按照一定的规则送相应的数字,显示器件就会显示。这样就不像数码管那样还得不停的扫描,可以大大的提高单片机的利用率。并且1602可以显示更多的字符,可以更加直观的让用户了解系统的相关参数,方便于用户的操作。系统运行时LCD1602显示的内容:第一行显示“Text time:”(测距次数)第二行显示“Result:cm”(测距的结果)“ M”(存储单元编号)LCD1602(HD44780)与单片机的接口电路图如图3-8所示。 图3-8 LCD1602与单片机的接口电路图LCD1602(HD44780)的引脚说明及具体时序操作可以参考其datesheet。显示程序如下。/1602显示函数/void busy()/1602忙信号检测 do RS=0; RW=1; E=1; while(BF=1); E=0; delay(100); void write(char a,b)/1602写数据程序,a是待写入的数据, /b代表待写入的数据类型是数据或指令 busy(); RS=b; RW=0; E=1; P0=a; E=0;void init1602()/1602初始化程序 write(0x38,0); write(0x0c,0); write(0x06,0); write(0x01,0);void begin1_display()/开机显示ZXGs graduation project 5/2010 init1602(); write(0x80,0); for(c=0;c16;c+)write(begin1c,1); write(0x80+0x40,0); for(c=0;c16;c+)write(begin1c+16,1);void begin2_display()/开机显示Tel:13312912925 :zxg133 write(0x80,0); for(c=0;c16;c+)write(begin2c,1); write(0x80+0x40,0); for(c=0;c16;c+)write(begin2c+16,1);void text_time_display(uint a) /测试次数显示函数 write(0x80+10,0); write(0x30+(a/100),1); write(0x30+(a%100/10),1); write(0x30+(a%10),1);void result_display() /显示Result: cm write(0x80,0); for(c=0;c16;c+)write(resultc,1); write(0x80+0x40,0); for(c=0;c16;c+)write(resultc+16,1);void display_s(uchar s)/显示测试结果 write(0x80+0x40+7,0); write(0x30+s/100,1); write(0x30+s%100/10,1); write(0x30+s%10,1);void display_m(uchar m)/显示储存单元的序号 write(0x80+0x40+14,0); write(0x4d,1); write(0x30+m,1);/四、数据存储电路及程序系统提供M1-M9总共9个数据保存,key2键是上翻M1-M9,key3键是下翻M1-M9,key1键是测距键,每当按下key1键,系统测距一次,测距后的数据保存在当前液晶显示的M单元(上下键选择)中,系统可以显示用户开机后总共的测距次数,本系统还提供了开机或复位后,系统自动的跳转到关机前状态。提供数据存储的就是AT24C02,该芯片内部有256*8的E2prom且芯片的数据传输采用了II2C总线。 I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。 在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免混乱, I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。AT24c02与单片机的借口电路如图3-9所示。 图3-9 AT24c02与单片机的接口电路数据存储程序如下。/24c02程序/void init24c02()/初始化 WP=1;SCL=1;delay(5);SDA=1;delay(5);void start()/启动信号SDA=1;delay(5);SCL=1;delay(5);SDA=0;delay(5);void stop()/停止信号SDA=0;delay(5);SCL=1;delay(5);SDA=1;delay(5);void respons()/回应信号uchar i=0;SCL=1;delay(5);while(SDA=1)&(i255)i+;SCL=0;delay(5);void writebyte(uchar date)/写一个字节uchar i,temp;temp=date;WP=1;for(i=0;i8;i+)temp=temp1;SCL=0;delay(5);SDA=CY;delay(5);SCL=1;delay(5);SCL=0;delay(5);SDA=1;delay(5);WP=0;uchar readbyte() /读一个字节uchar i,j,k;SCL=0;delay(5);SDA=1;for(i=0;i8;i+)SCL=1;delay(5);if(SDA=1)j=1;else j=0;k=(k1)|j;SCL=0;delay(5);delay(5);return k;void write_add(uchar address,uchar date)/指定地址写一个字节数据start();writebyte(0xae);respons();writebyte(address);respons();writebyte(date);respons();stop();uchar read_add(uchar address)/指定地址读一个字节数据uchar dd;start();writebyte(0xae);respons();writebyte(address);respons();start();writebyte(0xaf);respons();dd=readbyte();stop();return dd;/ 第四章 系统试验结果与误差分析 第一节 系统试验结果系统试验结果符合当出设计的要求,各部分模块电路和程序运作正常。系统的测试数据如表4-1所示。 表4-1 系统的测试数据尺量距离(mm)超声波测距1(mm)超声波测距2(mm)222151415313130494949656462898688110105111134133136178177177199193194统计以上数据算出平均误差为:7.22%。 第二节 误差分析1、超声波波束入射角的影响如果系统是用来测量面与点的距离,则被测物、换能器及换能器所在测量参考平面三者之间存在一个几何角度,即反射波入射到换能器的角度,当这个角度不是90时,系统测量到的距离是障碍物与换能器之间的距离而不是和测量参考平面之间的距离,这就会造成测量误差。2、超声波传播速度的影响稳定准确的声波传播速度是保证测量精度的必要条件,传播介质的温度、压力及密度对声速都产生直接影响。对于在大气中传播的声波而言,引起声速变化的主要原因是温度的变化。在实际应用中可以根据系统测量精度要求,采用合理的补偿手段。 第五章 结论系统体积小、结构紧凑、测距范围较大且测量误差小,易于产品化,具有较强的实用价值。可用于距离探测和方位探测。采用单个换能器以测量点到点和点到面的距离,如用于液面、井深测量等。采用多个换能器以测量点到点的距离,并进行方位的确定,如方位入侵报警、汽车防撞及倒车雷达等。 参考文献1 吴金戌沈庆阳郭庭8051单片机实践与应用,清华大学出版社, 2003年4月版;2 李建忠 单片机原理及应用,西安电子科技大学出版社, 2005年版;3 张金铎 传感器用其应用,西安电子科技大学出版社, 2002年版;4 求是科技 单片机典型外围器件及应用实例,人民邮电出版社, 2006年版;6 应崇福 超声学,北京科学出版社1990年版;7 瓮嘉民单片机应用开发技术基于PROTEUS仿真和C语言编程,中国电力出版社,2009年版; 附录 附录1 系统原理图 附录2 系统PCB图 附录3 系统程序/河南工程学院/电气信息工程系/微电子技术/ / 超声波测距 /张晓光/2010年5月/#include #define uchar unsigned char#define uint unsigned intsbit WP =P10; /写保护,高电平有效sbit SCL=P11;/时钟线sbit SDA=P12;/数据线sbit Trig=P34; /测距模块控制端,10us以上高电平模块工作sbit Echo=P32; /测距结果端,输出的高电平时间与测试的距离成正比sbit RS= P24; /1602的寄存器选择端,1数据,0指令sbit RW= P25; /1602的读写控制,1读,0写sbit E= P26; /1602的使能端sbit BF=P07; /1602忙位sbit exam=P30; /测距键sbit up=P31;/数据upsbit down=P33;/数据downchar begin1 =ZXGs graduation project 5/2010;char begin2= Tel:13312912925 :zxg133 ;char result= Text time:000 Result: cm ;char s,c,i=1,m10;uint t;/延时函数/void delay(uint i)while(i-);/1602显示函数/void text()/测距函数 Trig=0; TMOD=0x09; TR0=1; TH0=TL0=0; Trig=1; delay(15); Trig=0; while(Echo=0); while(Echo=1); delay(10); s=(TH0*256+TL0)*0.017; TR0=0;void busy()/1602忙信号检测 do RS=0; RW=1; E=1; while(BF=1); E=0; delay(100); void write(char a,b)/1602写数据程序,a是待写入的数据, /b代表待写入的数据类型是数据或指令 busy(); RS=b; RW=0; E=1; P0=a; E=0;void init1602()/1602初始化程序 write(0x38,0); write(0x0c,0); write(0x06,0); write(0x01,0);void begin1_display()/开机显示ZXGs graduation project 5/2010 init1602(); write(0x80,0); for(c=0;c16;c+)write(begin1c,1); write(0x80+0x40,0); for(c=0;c16;c+)write(begin1c+16,1);void begin2_display()/开机显示Tel:13312912925 :zxg133 write(0x80,0); for(c=0;c16;c+)write(begin2c,1); write(0x80+0x40,0); for(c=0;c16;c+)write(begin2c+16,1);void text_time_display(uint a) /测试次数显示函数 write(0x80+10,0); write(0x30+(a/100),1); write(0x30+(a%100/10),1); write(0x30+(a%10),1);void result_display() /显示Result: cm write(0x80,0); for(c=0;c16;c+)write(resultc,1); write(0x80+0x40,0); for(c=0;c16;c+)write(resultc+16,1);void display_s(uchar s)/显示测试结果 write(0x80+0x40+7,0); write(0x30+s/100,1); write(0x30+s%100/10,1); write(0x30+s%10,1);void display_m(uchar m)/显示储存的序号 write(0x80+0x40+14,0); write(0x4d,1); write(0x30+m,1);/24c02程序/void init24c02()/初始化 WP=1;SCL=1;delay(5);SDA=1;delay(5);void start()/启动信号SDA=1;delay(5);SCL=1;delay(5);SDA=0;delay(5);void stop()/停止信号SDA=0;delay(5);SCL=1;delay(5);SDA=1;delay(5);void respons()/回应信号uchar i=0;SCL=1;delay(5);while(SDA=1)&(i255)i+;SCL=0;delay(5);void writebyte(uchar date)/写一个字节uchar i,temp;temp=date;WP=1;for(i=0;i8;i+)temp=temp1;SCL=0;delay(5);SDA=CY;delay(5);SCL=1;delay(5);SCL=0;delay(5);SDA=1;delay(5);WP=0;uchar readbyte() /读一个字节uchar i,j,k;SCL=0;delay(5);SDA=1;for(i=0;i8;i+)SCL=1;delay(5);if(SDA=1)j=1;else j=0;k=(k1)|j;SCL=0;delay(5);delay(5);return k;void write_add(uchar address,uchar date)/指定地址写一个字节数据start();writebyte(0xae);respons();writebyte(address);respons();writebyte(date);respons();stop();uchar read_add(uchar address)/指定地址读一个字节数据uchar dd;start();writebyte(0xae);respons();writebyte(address);respons();start();writebyte(0xaf);respons();dd=readbyte();stop();return dd;/按键检测/uchar key(uchar key ) uchar z; if(key=0) for(c=0;c2;c+)delay(20000); if(key=0)return z=1; else return z=0; else return z=0;/主函数/vo
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!