快热式家用电热水器的设计论文4_第1页
快热式家用电热水器的设计论文4_第2页
快热式家用电热水器的设计论文4_第3页
快热式家用电热水器的设计论文4_第4页
快热式家用电热水器的设计论文4_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、密级: NANCHANG UNIVERSITY GONGQING COLLEGE学 士 学 位 论 文(设 计)THESIS OF BACHELOR(200112015年)中文题目:快热式家用电热水器的设计英文题目:The design of the instaneous household electric water heater学 院:南昌大学共青学院系 别:信息工程系专业班级:电子信息工程学生姓名:余江柳学 号:8120211048指导教师:刘定军二 一 五 年 四 月学士学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注

2、引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。本人签名: 日期: 南昌大学共青学院毕业设计(论文)摘要摘 要 本文设计的控制器采用AT89C51单片机作为控制核心来设计智能电热水器。本设计也对单片机控制电热水器实现智能化的可能性进行了分析,利用模拟温度、功率显示、及模数转换器等来完成本设计。本次设计实物中制作了单片机最小应用系统,按键设置电路,AD/DA转换电话,模拟温度检测,超温报警以及显示电路。还详细介绍了设计中应用到的主要芯片的性能和特点,包括AT89C51、

3、PCF8591等。在程序编写的过程中应用C语言对最小单片机应用系统进行控制。最后对软件调试进行了误差分析。 该智能电热水器设计完善,实现方案简单易行。智能水温与功率的检测采用程序来设计电阻来模拟,通过程序来转换相应变量,使得整个电路稳定,可靠。关键词:单片机;控制;电热水器; 智能IV南昌大学共青学院毕业设计(论文)ABTRACTABTRACT This controller is used as control core to design of intelligent electric water heater using AT89C51 microcontroller. The desi

4、gn of single-chip microcomputer to control the possibility of realizing the intelligent electric water heater is analyzed, using the simulated temperature and power, and to complete the ADC design. In the aspect of hardware design, mainly on the minimum system of the MCU and its extension, power sup

5、ply circuit, keyboard and display interface circuit, analog digital conversion circuit, temperature detection circuit, alarm circuit simulation are introduced in detail. Also introduced the properties and characteristics of the main chip to design applications, including AT89C51, PCF8591, etc. In th

6、e aspect of software design, the use of assembly language programming, because it is easy to identify by the microcontroller, the execution speed. Finally, the software debugging error is analyzed. The smart electric water heater designed, scheme is simple and easy to realize. The software designed

7、to control, can realize the intelligent temperature detecting, intelligent heating, and improve the accuracy and reliability of the machine.Key words: MCU; control;intelligent ;electric; water heater南昌大学共青学院毕业设计(论文)目录目 录第1章 绪论51.1 课题的背景51.2 课题的可行性研6第2章 系统设计的方案72.1 功能要求72.2 方案选择72.3 系统方案论证7第3章 系统的硬件设

8、计9 3.1 芯片介绍9 3.1.1 PCF8591芯片的介绍9 3.1.2 单片机AT89C51的介绍10 3.2 基于单片机电热水器的整体设计7 3.3基于单片机电热水器的基本组成7 3.4 系统各部分电路设计8 3.4.1时钟电路8 3.4.2 复位电路9 3.4.3按键设定电路9 3.4.4 温度报警电路13 3.4.5 显示电路10第4章 系统的软件设计11 4.1 系统主程序流程11第5章 系统的仿真设计11 5.1 Protues介绍12 5.2电路仿真图13第六章 实物的制作与调试19 6.1电路的安装过程19 6.2 电路的调试过程19 6.3电路出现的问题及解决方法19结

9、论17致 谢18参考文献19附录120附录221附录322南昌大学共青学院毕业设计(论文)第1章 绪论第1章 绪论1.1 课题的背景随着电子科技不断发展,人们使用的电子设备也越来越先进。比如手机、电脑、电视机、汽车电子等。有了这些人们感觉到生活越来越便利,足不出户就可以享受生活。特别是智能家电的出现,让人们享受一个安全、健康、便捷的智能化家用电器信息化系统。当前将网络通讯、电力自动、计算机、无线控制等组成了智能家居系统。由于各种设备有机地组合在一起,实现网络化的综合管理,让家居生活更轻松。此外,在欧美、日本、新加坡和韩国等地,智能家居也日渐兴起。由于单片机的个头小,耗电量低被现代电子领域广泛应

10、用。当前单片机的应用在通讯设备,家用电器,工业控制,仪器仪表测量,汽车电子产品中也可以看到。人家追求更高的生活质量,享受高科技带来的方便与快捷。利用智能家居控制器可以提供多种智能控制方案,使用户更加享受家庭生活,且使他们处理家庭事务,更快、更方便。在智能家居系统中融入互联网以后人们的家居生活变得越来越安全、健康。对于不在家的人们更是享受更多的安全,可以安心工作,有紧急情况会通过互联网自动关闭电源,防止意外的发生。未来智能家居的发展趋势将会有以下几大特点: (1)家居电器设备实现节能 省电,低功耗,利用高科技的微型处理系统,在家庭安全防范,自动断电的方面会更智能。(2)在后续的缴费,维修等方面实

11、现互联网操作。多网合一将在一定程度上降低建设和维护的复杂度,而且提高了传输的可靠性。 (3)从有线逐渐转变为无线。拥有无限灵活性,流动性和可扩展性的无线传输,是有线传输望尘莫及的通过手持遥控、手机等多种方式进行控制。现在的操作一般会分模块设计,最后将几个模块进行融合,这样功能更强大。符合人性化设计,充分体现了“以人为本”设计理念1.2 课题的可行性研 热水器应用于浴室,洗手间及厨房,提供热水。热水器的种类在目前市场也很多。大致有电热水器、太阳能热水器、燃气热水器这几种。太阳能热水器的36南昌大学共青学院毕业设计(论文)第1章 绪论使用受天气原因的限制,有阳光照射的情况使用较好。燃气热水器由于以

12、石油、天然气为燃料,对环境的污染较严重。越来越多的人选择电热水器,使用安全卫生,大部分的生产商都有设计过压、过热、漏电三重保护装置,在使用中更为安全。 本课程是基于现代人们对家居条件的改善及要求设计的一款新型的电热水器,保证家居的经济实惠,以及安全,满足人们的需要而设计的。本次设计的内容如下:(1)设计满足现代家居需求且经济实惠的电热水器,耗能低。 (2)能够通过按键切换温度/功率显示界面。 (3)当进入高温工作状态,产生报警,防止热水器干烧而导致事故。 (4)通过指示电路来显示功率情况。南昌大学共青学院毕业设计(论文)第2章 系统设计的方案第2章 系统设计的方案2.1 功能要求当前,热水器已

13、成为日常生活中不可缺少的家用电器,设计制造更实用、更方便、更安全、更节能的热水器是产品设计师和生产商家不断追求的目标。快热式电热水器与普通电热水器最大的区别在于它取消了储水罐,热水随开随用,不需预热,减少了电能浪费,另外还具有体积小、使用安全、安装方便等优点。设计要求为:(1) 用2位数码管显示出水温度,能显示设定功率档位。(2) 温度检测显示范围0099,精确度1。(3) 设置3个功率档位指示灯,14档一个灯亮,58档两个灯亮,9档3个灯全亮。0档无功率输出,档位灯不亮。(4) 设置3个轻触按钮,分别为电源开关键、“+”键和“-”键。加热功率分09档,按“+”键依次递增至9档,按“-”键依次

14、递减至0。0-9档功率依次为0、1/9P、2/9P、3/9P、4/9P、5/9P、6/9P、7/9P、8/9P、P。 (5) 出水温度超过65时停止加热,并蜂鸣报警,温度降到45以下时恢复。 (6) 内胆温度超过105时停止加热,防止干烧。2.2 方案选择(1) 单片机的选择方案一:用单片机89C51。89C51单片机具有低功耗、高性能的特点,所以在设计中得到广泛的使用。 方案二: 采用的单片机C8051F020作为温度自动控制系统的核心部件。此单片机虽然信息量大,工作效率高但由于对此单片机的熟悉度较弱,给设计带来一些不便。 (2) 温度传感器的选择 方案一:选用电位器来调节相应的电阻值,得到

15、相应的电压类比温度 因为电压与电阻值成线性变化,易操作,并且占用接口很少,使用起来很方便。 方案二:选用热敏电阻来做温度传感器,在使用过程需要搭接相应的电路,热敏电阻与温度的变化不是线性变化并且还要加入模数转换电路,操作麻烦。由于由于电位器在电路电阻分压, 电阻值与电压成线性关系,故采用电阻。 (3) 显示方案的选择方案一:选用数码管来显示,数码管价格便宜、使用方便、操作简单、资料丰富,显示效果亮度好,在一米以外也可以看到。方案二:选用液晶显示屏LCD1602,显示16X2,每行16个字符,亮度通过外加电位器调节。价格相对较贵由于数码管具有价格便宜,操作简单等优点故选用它来做显示。2.3 系统

16、方案论证 由于89C51单片机价格便宜和控制简单所以故选用89C51。由于电位器在电路中分压 与电压成线性关系不需要模数转换,控制简单与电路制作方便,故选用电位器来调节温度。由于数码管具有价格便宜使用方便、操作简单、资料丰富,显示效果良好等优点故选用数码管来显示温度与功率南昌大学共青学院毕业设计(论文)第3章 系统的硬件设计第3章 系统的硬件设计3.1 芯片介绍系统的硬件设计主要使用到的芯片PCF8591和最小单片机AT89C51。3.1.1 PCF8591芯片的介绍PCF8591是一个数据获取器件,它有单片集成、单独供电、低功耗的特性。有4个模拟输入、1个模拟输出和1个串行IC总线接口。3个

17、地址引脚A0, A1和A2可用于硬件地址编程。再无需额外的硬件的情况下,在同一个IC总线上可接入8个PCF8591器件。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由IC总线的最大速率决定。通过双线双向IC总线在输入输出的地址、控制和数据信号以串行的方式进行传输。PCF8591的特点:需要单独供电 PCF8591工作电压 2.5V到6V 待机是消耗电流很低 通过IC总线串行输入/输出 PCF8591通过3个硬件地址引脚寻址 PCF8591的采样率由IC总线速率决定 4个可编程模拟输入 自动增量频道选择 PCF8591的

18、模拟电压范围从VSS到VDD PCF8591内置跟踪保持电路 8-bit逐次逼近A/D转换器 芯片引脚图 图3.1-1PCF8591引脚图AIN0AIN3:模拟信号输入端。 A0A3:引脚地址端VDD、VSS:电源端(2.56V)SDA、SCL:I2C 总线的数据线时钟线。OSC:时钟的输入 输出。EXT:时钟选择线,选用内部时钟时 EXT 接地。AGND:模拟信号地AOUT:D/A 转换输出端。 VREF:基准电源端。3.1.2 单片机AT89C51的介绍图3.1-2 AT89C51引脚图AT89C51单片机具有低功耗、高性能的特点,所以在设计中得到广泛的使用。有40个引脚组成,主要包括32

19、个外部双向输入/输出(I/O)端口。其中32个外部双向输入/输出(I/O)端口内含2个外中断口,2个16位可编程定时计数器以及2个全双工串行通信口。AT89C51进行编程不仅可以按照常规方法进行而且也可以通过在线编程来实现。由于AT89C52单片机由微处理器和Flash存储器组成,并且具有可反复擦写的Flash存储器功能,这样可以降低开发成本。引脚中XTAL1(19 脚)和XTAL2(18 脚)接12MHz 晶振,作振荡器使用。RST(9 脚)是复位引脚通常用作为输入端口,RST(9 脚)复位电路是通过外接电阻电容来组成的。VCC(40 脚)接+5V电源, VSS(20 脚)接地或负极。P3口

20、作为一般的IO口线,还有它的第二功能,如下表所示:表3.1 P3口第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断 0)P3.3INT1(外中断 1)P3.4T0(定时计数器 0 外部输入)P3.5T1(定时计数器 1 外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)3.2 基于单片机电热水器的整体设计系统设计硬件结构图2.1所示。 图3.2-1 总体系统图3.3基于单片机电热水器的基本组成主要由单片机AT89C51最小应用系统、AD/DA转换芯片PCF8591、 数码管显示模块、按键设定模块以及温度报警

21、电路组成。系统原理图如下所示:图3.3-1系统原理图3.4 系统各部分电路设计主要由单片机时钟电路 复位电路、 温度报警电路、按键设定电路以及显示电路组成。3.4.1时钟电路我们系统采用内部时钟方式来为系统提供时钟信号。AT89C51内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚19、18为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,一般为30PF,便构成了一个自激励振荡器。这样就可以产生时钟信号。时钟电路设计如图3.2所示。图3.4-1时钟电路图3.4.2 复位电路在图3.4-2 中复位开关K 被按下并松开,使端获得低电平,RST 端输出复位信号,单片机

22、复位,相当于清零。或由于( VCC 加入并超过复位门限电压) 引起系统正常复位,本次采用上电复位。图3.4-2 复位电路图3.4.3按键设定电路 按键输入部分主要用于切换功率与温度显示,功率的增加、减少设置等功能普通按钮接在 I/O 口,启用 I/O 口的内部上拉电阻,用查询法完成读键功能。图3.4-3 按键电路3.4.4 温度报警电路蜂鸣器接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,蜂鸣器与家用电器上面的喇叭在用法上也有相似的地方,通常工作电流比较大,因此需要一定的电流才能驱动它。 由于单片机I/O引脚输出的电流较小,所以单片机输出的TTL电平基本

23、上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。本次设计采用了一个很简单的电路来实现蜂鸣器的连接,利用一个三极管来放大驱动蜂鸣器,电路连接如图3-3所示。 在本设计电路中,设计者采用PNP管9012来做为控制蜂鸣器的开关,由图3-3可以看出当PD6引脚为高电平时,PNP管截止,蜂鸣器不工作;当PD6引脚为低电平时,PNP管导通,蜂鸣器工作,其中R2为限流电阻。采用PNP管9012的作用是为了防止系统上电时峰鸣器发出声音,因为系统复位以后,I/O口输出的是高电平。 用户可以通过程序控制PD6管脚的置低和置高来使蜂鸣器发出声音和关闭,同时, 蜂鸣器的声音大小及音调可以通过调整PD6管脚的置高时间

24、及输出的波形进行控制,这一点可以在调试程序的时候来实现。图3.4-4 温度报警电路3.4.5 显示电路数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。数码管按照段位可分成七段和八段数码管,八段比七段多一个发光二极管,也就是小数点位的发光二极管。按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。数码管有共阴和共阳之分,共阴数码管是把全部的发光二极管的地接在一起,只要发光二极管得到正向电压,一般满足大于1.8V即可点亮数码管的笔画段。共阳数码管是把全部的发光二极管的正极接在一起,只要发光二极管负极位低电平,一般满足小于0.5V即可让数码管的笔

25、画段点亮。图3.4-5数码管引脚南昌大学共青学院毕业设计(论文)第4章 系统的软件设计第4章 系统的软件设计4.1 系统主程序流程 本课题首先要根据系统的总体功能以及各单元电路的作用,采用软件程序来实现各部分的衔接。通过本部分的合理处理达到系统的设计要求。本部分详细介绍了基于AT89C51单片机的热水器功率控制的软件设计。根据系统功能,可以将系统设计分为若干个子程序进行设计,如数据处理子程序、显示子程序、执行子程序。采用Kiel uVision3集成编译环境和汇编语言来进行系统软件的设计。本章从设计思路、软件系统框图出发,采用C语言编写代码。图4.1-1系统主程序流程南昌大学共青学院毕业设计(

26、论文)第5章 系统的仿真设计第5章 系统的仿真设计5.1 Protues介绍Protues软件是一款仿真工具软件。主要是单片机的仿真较常见。尽管在我国使用的时间不长,但是已经受到单片机爱好者的喜爱。Proteus功能强大,有原理图布线、电路仿真,还有PCB排版,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。Protues软件具有其它EDA工具软件的功能。这些功能是:(1)原理布图(2)PCB自动或人工布线(3)SPICE电路仿真革命性的特点:(1)多样的电路仿真。使用者可以根据自己需要的原件进行仿真。(2)功能齐全的电路模拟

27、。在此款仿真软件中可以用于示波器波形测定,以及电位、电压的测量。在Protues绘制好原理图后,导入程序代码,可以在Protues的原理图中看到模拟的实物运行状态和过程。Protues是单片机课堂教学的先进助手。它的原件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能茯得愈来愈广泛的应用。南昌大学

28、共青学院毕业设计(论文)第5章 系统的仿真设计5.2电路仿真图 南昌大学共青学院毕业设计(论文)第6章 实物的制作与调试第6章 实物的制作与调试6.1电路的安装过程 本课题实物的制作采用的是覆铜板制作,在Protues软件中将原理图导入PCB界面,调整好电路的连接线,将布线图打印在热塑纸,然后经过热装印机,将电路图转印在覆铜板,最后进行腐蚀覆铜板。PCB见下图6.1所示。图6.1 电路PCB布线图6.2 电路的调试过程 将元器件按照原理图进行焊接,把程序编写到单片机芯片AT89C51中,检测电路的连接情况,没有发现短路现象,进行了上电测试。由于已经做了仿真,仿真效果与实现的功能情况相符。先对硬

29、件电路板板焊接情况进行检测,查找是否有断路情况,查到有一处故障,其次对按键输入进行信号检测,按下后观察是否导通,发现电压显示正常,最后对模拟温度的电位器进行调试。6.3电路出现的问题及解决方法本次设计电路出现的第一个问题是采用手工制作的PCB板,覆铜的连接线走线太细,加之天气原因,铜板表面出现氧化。经过排查找出断路一处。第二个问题就是在数码管的连线处由于走线太细,焊接时铜出现脱落,引脚松动。导致显示不正常。第三,电位器模拟温度进行调节以及防干烧调试。其他故障没有,因为是经过仿真以后做的实物,在程序及电路上没有任何故障。实物效果图如下功率为0 P显示 温度为34 C功率指示灯不亮 温度指示灯也不

30、亮 功率为5 P显示 温度为50 C功率指示灯亮2个 温度指示灯较亮 功率为9 P显示 温度为65 C以上功率指示灯亮3个 温度指示灯亮超温报警 温度大于65 C功率指示灯不亮 温度指示灯也不亮 蜂鸣器产生报警声 南昌大学共青学院毕业设计(论文)结论结 论通过这次毕业设计,加强了我们动手、思考和解决问题的能力。毕业设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。课题的能力。平时看课本时,有时问题老是弄不懂,做完设计,那些问题

31、就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能。平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件印象深刻。实践是检验真理的唯一标准。所以这次的设计对我们的作用是非常大的。通过这次设计,在理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜

32、。挫折是一份财富,经历是一份拥有。这次设计必将成为我人生旅途上一个非常美好的回忆! 这次毕业设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于迎刃而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!南昌大学共青学院毕业设计(论文)致谢致 谢本课题在选题及研究过程是在刘定军老师的亲切关怀和悉心指导下完成的。对老师的感激之情是无法用言语表达的。感谢带过我的老师对我的教育培养。在本次论文的书写以及项目的制作过程中,老师耐心的给我指导,在百忙之中为我修改,提供最有力的帮助。他们细心指导我的学习与

33、研究,从课题的选择、开题报告、任务书的书写到项目的最终完成,始终给予我细心的指导和帮助。在此,我要向诸位老师致以诚挚的谢意和崇高的敬意。南昌大学共青学院毕业设计(论文)参考文献 参考文献1 刘国钧,陈绍业,王凤翥.图书馆目录M.北京:高等教育出版社, 1957.15-18.2 刘润华,刘立山.模拟电子技术J.山东:石油大学出版社,2003. 3 沈美明等IBM(0502)汇编语言程序设计北京:清华大学出版社,19874 胡汉才单片机及其接口技术J.北京:清华大学出版社,2000.5 彭介华.电子技术课程设计指导J.北京:高等教育出版社,1997.6 朱兆优、陈坚等.单片机原理应用.电子工业出版

34、社2010.97 周航慈.单片机应用程序设计技术.北京航天航空大学出版社.2011.28 杜肤生,数字集成电路应用精粹,北京:人民邮电出版社,20019 陈大钦,电子技术基础实验(第二版),北京:高等教育出版社,200010 童诗白,模拟电子技术M,北京:高等教育出版社,199911 全国大学生电子设计竞赛组委会,第五界全国大学生电子设计竞赛获奖作选编,北京:北京理工大学出版社,2003 12 葛汝明,电子技术实验与课程设计,山东:山东大学出版社,2004 13 周润景、 蔡雨恬,PROTEUS入门实用教程(第2版),北京:机械工业出版社,201114 任元,吴勇,主编, 常用电子元器件简明手

35、册 ,北京:工业出版社,2000 南昌大学共青学院毕业设计(论文)附录1 附录1 电路原理图南昌大学共青学院毕业设计(论文)附录2附录2实物图附录3/*- 名称:IIC协议 内容:函数是采用软件延时的方法产生SCL脉冲,固对高晶振频率要作 一定的修改.(本例是1us机器周期,即晶振频率要小于12MHZ)-*/ #include i2c.h#include delay.h#define _Nop() _nop_() /定义空指令 bit ack; /应答标志位sbit SDA=P34;sbit SCL=P33;/*- 启动总线-*/void Start_I2c() SDA=1; /发送起始条件的

36、数据信号 _Nop(); SCL=1; _Nop(); /起始条件建立时间大于4.7us,延时 _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; /发送起始信号 _Nop(); /起始条件锁定时间大于4 _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; /钳住I2C总线,准备发送或接收数据南昌大学共青学院毕业设计(论文)附录3 _Nop(); _Nop();/*- 结束总线-*/void Stop_I2c() SDA=0; /发送结束条件的数据信号 _Nop(); /发送结束条件的时钟信号 SCL=1; /结束条件建立时间大于4 _Nop

37、(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /发送I2C总线结束信号 _Nop(); _Nop(); _Nop(); _Nop();/*- 字节数据传送函数 函数原型: void SendByte(unsigned char c);功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对 此状态位进行操作.(不应答或非应答都使ack=0 假) 发送数据正常,ack=1; ack=0表示被控器无应答或损坏。-*/void SendByte(unsigned char c) unsigned char BitCnt; for(BitCnt=

38、0;BitCnt8;BitCnt+) /要传送的数据长度为8位 if(cBitCnt)&0x80)SDA=1; /判断发送位 else SDA=0; _Nop(); SCL=1; /置时钟线为高,通知被控器开始接收数据位 _Nop(); 南昌大学共青学院毕业设计(论文)附录3 _Nop(); /保证时钟高电平周期大于4 _Nop(); _Nop(); _Nop(); SCL=0; _Nop(); _Nop(); SDA=1; /8位发送完后释放数据线,准备接收应答位 _Nop(); _Nop(); SCL=1; _Nop(); _Nop(); _Nop(); if(SDA=1)ack=0; e

39、lse ack=1; /判断是否接收到应答信号 SCL=0; _Nop(); _Nop();/*- 字节数据传送函数 函数原型: unsigned char RcvByte();功能: 用来接收从器件传来的数据,并判断总线错误(不发应答信号), 发完后请用应答函数。 -*/unsigned char RcvByte() unsigned char retc; unsigned char BitCnt; retc=0; SDA=1; /置数据线为输入方式 for(BitCnt=0;BitCnt8;BitCnt+) _Nop(); SCL=0; /置时钟线为低,准备接收数据位 _Nop(); _N

40、op(); /时钟低电平周期大于4.7us _Nop(); _Nop(); _Nop(); SCL=1; /置时钟线为高使数据线上数据有效 _Nop(); _Nop(); retc=retc1; if(SDA=1)retc=retc+1; /读数据位,接收的数据位放入retc中 _Nop(); _Nop(); SCL=0; _Nop(); _Nop(); return(retc);/*- 应答子函数原型: void Ack_I2c(void); -*/*void Ack_I2c(void) SDA=0; _Nop(); _Nop(); _Nop(); SCL=1; _Nop(); _Nop()

41、; /时钟低电平周期大于4 _Nop(); _Nop(); _Nop(); SCL=0; /清时钟线,钳住I2C总线以便继续接收 _Nop(); _Nop(); */*- 非应答子函数原型: void NoAck_I2c(void); -*/void NoAck_I2c(void) SDA=1; _Nop(); _Nop(); _Nop(); SCL=1; _Nop(); _Nop(); /时钟低电平周期大于4 _Nop(); _Nop(); _Nop(); SCL=0; /清时钟线,钳住I2C总线以便继续接收 _Nop(); _Nop(); /*- 向无子地址器件发送字节数据函数 函数原型:

42、 bit ISendByte(unsigned char sla,ucahr c); 功能: 从启动总线到发送地址,数据,结束总线的全过程,从器件地址sla. 如果返回1表示操作成功,否则操作有误。注意: 使用前必须已结束总线。-*/*bit ISendByte(unsigned char sla,unsigned char c) Start_I2c(); /启动总线 SendByte(sla); /发送器件地址 if(ack=0)return(0); SendByte(c); /发送数据 if(ack=0)return(0); Stop_I2c(); /结束总线 return(1);*/*- 向有子地址器件发送多字节数据函数 函数原型: bit ISendStr(unsigned char sla,unsigned char

温馨提示

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

评论

0/150

提交评论