豆浆机控制器_第1页
豆浆机控制器_第2页
豆浆机控制器_第3页
豆浆机控制器_第4页
豆浆机控制器_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、 北京 大 学毕 业 设 计(论 文)设计(论文)题目:基于单片机豆浆机控制器系 别:电子工程学院专 业:电子技术班 级:大家(2)姓 名: 陈XX学 号: Xxxx103指导教师:王XX完成时间:第一章 概述51.1课题来源和研究意义5课题来源5课题的研究意义51.2 设计任务5硬件任务6软件任务6第2章 豆浆机控制系统的硬件设计72.1豆浆机控制器的硬件框图72.2单片机的选择7单片机的介绍72.3单片机的电源电路设计9单片机的电源电路设计9单片机变压器选择9单片机整流二极管的计算10单片机稳压器的选择10单片机电源工作原理102.4单片机防干烧以及水位检测电路112.5豆浆机加热电路12

2、2.6豆浆机磨浆电路122.7单片机报警电路的设计132.8温度检测电路的设计142.8.1 NTC热敏电阻温度传感器简介14第3章 豆浆机控制系统的软件设计163.1豆浆机控制系统的流程的设计163.2豆浆机控制系统的主要程序18设置定时器程序18蜂铃管理程序19加热程序19打豆程序19主函数21第4章豆浆机控制系统的实习与调试214.1硬件调试21硬件静态调试:排除逻辑故障21硬件静态调试: 排除元器件失效21硬件静态调试: 排除电源故障224.2软件调试22第5章 总结23参考文献23附 录24附 录124附 录225致谢31题目:基于单片机豆浆机控制器的设计陈XX摘要 豆浆机分为硬件和

3、软件合作来工作,通过两者的配合完成豆浆机所需要的功能。完整的豆浆机工作步骤是将事先泡好的大豆放入豆浆机内并加入适量冷水后将电热管通电加热至100°C,磨浆电机通电工作进行磨豆浆。加热和磨浆之间断续工作三次,每次打浆5秒钟随后加热至100,然后进入最终煮豆浆程序,经过声音提示工作过程结束。本设计不仅仅熟悉是单片机的基本结构,工作原理。还要根据单片机的工作原理,将其运用于豆浆机中,以实现上述豆浆机的工作流程的自动化,并运用C语言进行相关的编程,最后通过对硬件和软件的调试,最终设计出一款合适且安全可靠的豆浆机控制器。关键词:豆浆机工作步骤;单片机的基本结构;C语言编程;豆浆机控制器;第一章

4、 概述1.1课题来源和研究意义1.1.1课题来源由于豆类食品是人们日常生活中的必需品,喝豆浆成为很多人的习惯,所以在老师给的题材下,我选取了豆浆机控制器为题材,研制以单片机制作的豆浆机控制器。豆类的品种很多,主要有大豆、蚕豆、绿豆、豌豆、赤豆等。根据豆类的营养素种类和数量可将它们分为两大类。一类以黄豆为代表的高蛋白质、高脂肪豆类。另一种豆类则以碳水化合物含量高为特征,如绿豆、赤豆。烹饪时通常用鲜豆及豆制品,不但可做菜肴的主料及辅料,而且还可以作为调味品的原料。豆浆的制作配合以上的食物种类,这就对豆浆机对不同的食物的加热以及打浆要充分,我们通过这些方面,来合理的设计这次的课题。1.1.2课题的研

5、究意义我设计这款豆浆机的目的在于用最小的成本制造高效的豆浆机,让人们在忙碌之中能及时的喝上豆浆。另外,随着我国老年化的加剧,健康和养生成为人们的热点关注的问题。设计一台成本适当且方便的豆浆机,不仅让大众更有购买力,而且也方便人们的操作。所以,豆浆机必定有很大的市场空间。1.2 设计任务豆浆机的控制系统以单片机为控制核心,结合温度控制电路,防干烧电路加热及磨浆电路,防干烧电路,报警电路,电源电路,达到只要启动豆浆机以后,所有的控制过程都实现完全自动化的目的。硬件任务硬件上豆浆机的控制系统分为三个部分。首先,需要有一个单片机芯片作为控制核心来控制它的工作过程,当接上电源时候,控制核心检测有电导通,

6、然后电源指示灯反应,通告电源导通正常。第二部分,对水位进行检测,当水位达到所需水位线时加热器启动,对豆浆进行加热,温度达到100度,停止加热。第三部分,电机启动,进入豆浆研磨过程。通常在豆浆研磨时采用间歇研磨的方式:打浆3次一次5秒。打浆结束后开始对豆浆进行再次加热,当达到一定温度时 ,立即停止加热,提示报警。如此便完成了一次豆浆的完整生成过程。通过对豆浆机的工作过程的分析,我们可以看到,在家用全自动智能豆浆机的使用过程中,只要插上电源,豆浆机便可以按照相关程序开始工作,在较短的时间内就可以生成新鲜美味且营养价值丰富的豆浆。整个过程由单片机全自动控制,操作方便简洁,设计中已经加入必要的安全保护

7、措施,可以使使用更加安全可靠。软件任务软件上就是对单片机的编程了,在编程前需要画出一个流程图,根据豆浆机控制系统的设计要求及目的,即插上电源后,先对豆浆机电路正常送出指示灯并发出报警,然后进行水位检测,符合要求后加热管开始对水进行加热。当水温达到100,启动磨浆电机开始磨浆。磨浆5秒后,停止磨浆,然后启动加热电路,对豆浆加热,温度达到100。然后暂停加热,启动电机,对豆浆继续加热,温度达到100,暂停加热,启动电机磨浆5秒,当豆浆研磨完毕时电动机停止运转,继续对豆浆进行加热,加热到100之后,暂停加热,豆浆磨浆最后五秒。最后阶段停止豆浆磨浆,对豆浆加热到100,然后报警电路发出警报。豆浆机控制

8、系统设计的流程图后,对单片机进行软件的编程来配合硬件的设计以至于完成整个高效省时的豆浆机控制系统的设计。第2章 豆浆机控制系统的硬件设计2.1豆浆机控制器的硬件框图89C51 温度传感器晶振电路防干烧电路时钟电路电源电路加热电路电机声报警复位电路2.2单片机的选择单片机的种类较多,本设计选用的是AT89c51. AT89c51 是51系列单片机的一个型号,他是ATMEL公司生产的。AT89C51是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术

9、生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C51单片机可为提供许多较复杂系统控制应用场合。2.2.1单片机的介绍单片计算机即单片微型计算机(Single-chip Microcomputer),是集CPU、RAM、ROM、定时、计数和多种接口于一体的微控制器。随着科学技术的发展,越来越多的智能化产品都用到了单片机。它具有体积小,成本低,功能强等优点,广泛被应用于智能产品和工业智能化上。(如图2-2)图2-2 单片机外形和引脚图目前生产单片机产品的公司非常多,当中较有影响力的有intel 公司推出的MCS-51 系列等。很多产品都是与MC

10、S-51 架构兼容(MCS-51 compatible)的。Aatmel 公司的AT89C51/52 或AT89S51/52 单片机,就是兼容MCS-51 架构的单片机。 AT89C51是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C51具有以下标准功能:8k字节Fl

11、ash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。MCS-51单片机的中断源共有两类它们分别是外部中断和内部中断: 1. 外部中断源:外部中断0,来自 P3.2 引脚采集到低电平或者下降沿时产生中断请求。外部中断1,来自 P3.3 引

12、脚采集到低电平或者下降沿时产生中断请求。 2.内部中断源:定时器计数器0,定时功能时,计数脉冲来自片内,计数功能时,计数脉冲来自片外P3.4引脚。发生溢出时产生中断请求。定时器计数器1,定时功能时,计数脉冲来自片内,计数功能时,计数脉冲来自片外 P3.5 引脚。发生溢出时产生中断请求。串行口为完成串行数据传送而设置。单片机完成接受或发送一组数据时产生中断请求。这些中断所示每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。中断允许控制寄存器(IE):89C51对中断源的开放或屏蔽是由中断允许寄存

13、器IE控制的中断允许控制位=1,允许中断;中断允许控制位=0,禁止中断。晶振特性:(如图2-3),AT89C51 单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接外部晶振。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。石英晶振 C1,C2=30PF±10PF 陶瓷谐振器 C1,C2=40PF±10PF2.3

14、单片机的电源电路设计电源是提供电能的装置。电源因可以将其它形式的能转换成电能,所以把这种提供电能的装置叫做电源。常见的电源是干电池(直流电)与家用的110V-220V 交流电源。电源自“磁生电”原理,由水力、风力、海潮、水坝水压差、太阳能等可再生能源及烧煤炭、油渣等产生电力来源。2.3.1单片机的电源电路设计电源由电源变压器、整流电路、滤波电路、稳压电路组成。电源变压器:将市电220V交流电压转换成为设备所需的交流电压。整流电路:将交流电转换成脉动直流电路。滤波电路:利用储能元件(电感或电容)把脉动直流电转换成比较平坦的直流电。稳压电源:利用电路的调整作用使输出电压稳定的过程称为稳压。2.3.

15、2单片机变压器选择电源的标称功率是长期工作的最大功率。实际功率是负载取用多少它就输出多少。所以,电源功率要大于所有负载的功率之和。还要取个安全系数。根据原理图计算,我们这里取9.74W的变压器。2.3.3单片机整流二极管的计算通过整流原理,因为U0=0.9U2则可以得到U2=U0/0.9=5v/0.95.56V.在考虑到变压器、绕组损耗(压降)和整流二极管的压降,在工程中必须再在上述基础上增加5%,即U2=5.56*(1+5%)5.83V,整流二极管的承受最大的反向电压UD1=21/2U28.2V因为稳压器的最大电流是3A,所以流过二极管的最大电流ID1=1/2Ii=0.75ID2=0.75A

16、;D2中的四个二极管的耐压值至少应该为8.24V,允许流过的最大电流为0.75A.2.3.4单片机稳压器的选择稳压器:它是一种能自动调整输出电压的供电电路或供电设备,其作用是将波动较大和达不到电器设备要求的电源电压稳定在它的设定值范围内,使各种电路或电器设备能在额定工作电压下正常工作。器。78XX系列集成稳压器是常用的固定正输出电压的集成稳压器,输出电压有5V、6V、9V、12V、15V、18V、24V等规格,最大输出电流为1.5A。此电路中我采用了78L05稳压器。(如图2-4)在设计中就是它把12V的直流电压变成5V的稳定电压给单片机提供电源。图2-4 稳压器2.3.5单片机电源工作原理电

17、源电路(如图2-5所示),我采用变压器降压、晶体二极管整流等方法获得工作电源。当接入220V交流电,T1开始对220V交流电进行降压,从次级输出12V左右的低压交流电,从而适应电路的使用要求。整流硅对次级输出的交流电进行桥式整流,再由E2、C2进行滤波,形成较平滑的直流电,送给三端集成正输出稳压器78L05进行稳压调整。经7805稳压作用后输出+5V的直流电压,经E3、C3滤波后输出纹波很低的+5V电压,符合单片机的工作要求。 图2-5 电源工作原理2.4单片机防干烧以及水位检测电路水位检测(防干烧)电路的作用是以传感器作为信息采集系统的前端单元来控制家用豆浆机缺水时干烧等问题。这里采用探针作

18、为传感器来检测水位,然后通过比较器输出高低电平,这样就可以通过单片机检测比较器输出电平的高低来检测水位状态。 水位检测电路的原理如图2-5所示,K1是水位检测传感器传感器,为了减少成本,这里采用探针来代替这两个传感器,使用中将装植物的金属杯接控制电路的公共点“地”,探针分别通过传输线与单片机的P1.1端连接。正常工作时,K1被水淹没,它和地之间的电阻较小,与R13共同对+5V分压,U+得到比U-低的电压,比较器IC3B输出低电平。缺水时,K1露出水面,它的电阻很大,R13共同对+5V分压,U+得到比U-高的电压,比较器IC3B输出高电平。用软件检测比较器IC3B的输出电平,便知是否缺水。图2-

19、6 防干烧2.5豆浆机加热电路加热电路利用加热元件把放入豆浆机的食材煮熟,本设计使用的加热器的最大功率为1000W,单片机输出电流经三极管放大,来驱动继电器闭合,使加热管发热把豆浆煮熟。加热电路的工作原理如图2-7所示加热及磨浆电路由继电器RL1,三极管Q1,电阻R5、以及二极管D2,单片机AT89C51。当单片机工作时,检测完水位正常后,赋给P1.1一个低电平,软件检测到P1.1变为低电平后,赋给单片机P3.0脚一个高电平,使三极管Q1饱和导通,电流流过继电器RL1,使触点闭合,于是加热管得电开始对豆浆加热,加热的温度达到100度左右,启动电动机进行打浆。图2-7 加热工作原理2.6豆浆机磨

20、浆电路磨浆电路的工作原理如图2-8所示加热及磨浆电路由继电器RL2,三极管Q2,电阻R6以及二极管D2,单片机AT89C51。当第一次加热完成后赋给P3.4一个高电平,等于启动电动机进行打浆。然后电动机打浆5秒,停止电动机,接着启动加热电路,当温度达到100时候,传感器传回数值,通关软件判断,停止加热。这样反复3次。图2-8 磨浆工作原理2.7单片机报警电路的设计报警电路是在接通电源时候,提示电源已经接通,另外在工作结束的时候,报警提示我们已经结束,可以喝到豆浆了。如图所2-6示,报警电路由电阻R1、三极管Q3与蜂鸣器BUZ1组成。通过编写的程序,在单片机的控制下,系统开始工作或者当加热完成后

21、,单片机P3.5脚自动输出一个高电平,通过电阻R1使三极管QT4饱和导通,于是蜂鸣器BUZ1发出报警声音,提醒主人开机或者豆浆加热完成。 图2-9 报警工作原理2.8温度检测电路的设计当豆浆机正常工作时,需要先加热到100左右的温度,然后停止加热继续下一步的工作,所以这就需要一个温度传感器来检测水温,这里我选用的是NTC热敏电阻温度传感器,选择它是灵敏度高、反应迅速;电阻值和B值精度高、一致性互换性好;采用双层密封工艺,具有良好的绝缘密封性和抗机械碰撞. 热敏电阻温度传感器简介热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)。热敏电

22、阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。NTC(Negative Temperature CoeffiCient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热敏电阻其电阻率和材料常数随材料成分比例、烧结气氛、烧结温度和结构状态不同而变化现在还出现了以碳化硅、硒化锡、氮化钽等为代

23、表的非氧化物系NTC热敏电阻材料NTC热敏半导瓷大多是尖晶石结构或其他结构的氧化物陶瓷,具有负的温度系数,电阻值可近似表示为:Rt = RT *EXP(Bn*(1/T-1/T0)式中RT、RT0分别为温度T、T0时的电阻值,Bn为材料常数陶瓷晶粒本身由于温度变化而使电阻率发生变化,这是由半导体特性决定的NTC热敏电阻器的发展经历了漫长的阶段1834年,科学家首次发现了硫化银有负温度系数的特性1930年,科学家发现氧化亚铜-氧化铜也具有负温度系数的性能,并将之成功地运用在航空仪器的温度补偿电路中随后,由于晶体管技术的不断发展,热敏电阻器的研究取得重大进展1960年研制出了N1C热敏电阻器NTC热

24、敏电阻器广泛用于测温、控温、温度补偿等方面下面介绍一个温度测量的应用实例它的测量范围一般为-10+300,也可做到-200+10,甚至可用于+300+1200环境中作测温用RT为NTC热敏电阻器;R2和R3是电桥平衡电阻;R1为起始电阻;R4为满刻度电阻,校验表头,也称校验电阻;R7、R8和W为分压电阻,为电桥提供一个稳定的直流电源R6与表头(微安表)串联,起修正表头刻度和限制流经表头的电流的作用R5与表头并联,起保护作用在不平衡电桥臂(即R1、RT)接入一只热敏元件RT作温度传感探头由于热敏电阻器的阻值随温度的变化而变化,因而使接在电桥对角线间的表头指示也相应变化这就是热敏电阻器温度计的工作

25、原理热敏电阻器温度计的精度可以达到0.1,感温时间可少至10s以下它不仅适用于粮仓测温仪,同时也可应用于食品储存、医药卫生、科学种田、海洋、深井、高空、冰川等方面的温度测量温度检测电路工作原理热敏电阻检测温度是利用热敏电阻RT1与电阻R2分压后的电压作为检测电压进行处理,在这里是利用运算放大器电压跟随器电路提取的。输出电压的极性为正时,随着温度的上升,热敏电阻的电阻值降低,所以输出电压也下降。 检出的信号加在RB构成的差动放大电路的正输入端上,而加在负输入端上的是由R2对5V分压后的电压,这部分是电压调整电路,可以在温度为0时将VCC的输出电压调整为0V,这样就可以输出与温度上升成比例的负电压

26、。通过这样的比较,实现在100时候,有0和1的信号。图2-10 温度检测电路第3章 豆浆机控制系统的软件设计3.1豆浆机控制系统的流程的设计图3-1 软件工作流程豆浆机控制系统的流程图如图3-1所示,先上电初始化,先检测电路接通了吗,如果符合要求,发出嘀嘀的声音来提示主人,则加热管用全功率1000W开始对豆浆机内的冷水进行加热,当加热到100以后,启动电动机进行打浆,5秒后停止打浆,加热管的对豆浆加热,加热到100,然后再次启动电动机对豆浆进行打浆5秒,然后再次停止打浆,加热管对豆浆再次加热到100摄氏度。此后,再次启动电动机进行打浆5秒,最后对豆浆加热到100摄氏度,然后报警器报警提示豆浆完

27、成。 第一步为初始化程序。单片机得到+5V工作电压后就进入工作状态。首先,+5V电压对 E1进行充电,使单片机RST(复位)端瞬间变成高电位,从而使单片机硬件复位。由于E1的放电作用,又使复位端电位逐渐减低,最后,复位端由高电位变成了低电位,完成了复位任务,随后单片机将进入初始化,单片机完成初始化后即开始运行程序。程序是通过单片机中的CPU将P1.5口变成高电位,使发光二极管D3 发光显示,以示电源电路正常,单片机开始工作。第二步为水位检测程序。接通电源后,单片机进入工作状态后,CPU将以访问P1.1端电位的形式来判断检查豆浆机中是否有水,以及检查水位是否符合要求。如果P1.1端电位为高电位,

28、说明水位不符合要求,单片机就令P3.5端输出提示信号,通过三极管T4放大后推动B1,使蜂鸣器发出急促响声。如果 P1.1端为低电位,则说明水位的高度符合要求,单片机即进入下一工作阶段。 第三步为水加热程序。当水位符合要求后,CPU就令P3.0口由低电位变成高电位,使T2导通,驱动继电器JR1动作,通过JR1的触点作用将电热器与220V电源接通,于是加热管对冷水开始加热,直至水温加热到100。当加达到100时,CPU发出电机启动的控制信号后,即令P3.4口为低电位,P3.0口为高电位,使T3导通,T2截止,JR2触点闭合,电机启动,JR1断开,停止加热,至此第一次运行结束。 第四步为循环程序。当

29、水温加热到100后,单片机进入粉碎阶段中。CPU令P3.4口输出高电位,使T3导通,驱动继电器JR2吸合,再接通粉碎电机的工作电源,使粉碎电机高速旋转,带动刀片高速切削,实施对粉碎物的粉碎直至粉碎完全。电机启动5秒钟后,CPU向P3.0口和P3.4口发出指令,停止电动机并加热。 第五步为循环执行步骤二和三两次,然后豆浆进行最后的加热,最后报警。第六步为报警程序。一旦豆浆煮好,CPU令P3.5口输出高电位,通过Q3推动蜂鸣器BUZ1发出嘀嘀的响声,哈哈,你可以吃到甜美的豆浆了。3.2豆浆机控制系统的主要程序设置定时器程序/定时器模块相关说明void set_timer() TMOD = 0x01

30、; /使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 TH0=0xff; /给定初值,这里使用定时器最大值从0开始计数一直到65535溢出 TL0=0x82; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器开关打开蜂铃管理程序void beep(uchar beep_tim,uchar beep_nu)/beep_tim-响铃时间 beep_nu响铃次数 /0一直响 1响一次 beep_time = beep_tim; beep_num = beep_nu;加热程序void all_heat() /all_hrat_

31、tim加热时间if(wd) k1 = 0; k2=1; /加热 else k1 = 1; /停止加热 k2 = 0; / move +; /加热完成执行下一步程序 hrat_tim -; 打豆程序void all_hit(uchar all_hit_time) /all_hit_time 打豆时间 if(!hit_biao_ji)hit_tim = all_hit_time; hit_biao_ji = 1; /给时间 一次 if(flg_1s) flg_1s = 0; /1秒标记清零 if(hit_tim) k1 = 1; /打豆k2 = 0; /总开 else k1 = 0; /打豆关k2

32、 = 1; /加热move +; /打豆完成执行下一步程序hit_biao_ji = 0; /打豆时间给一次标记清零,为再一次打豆作准备 hit_tim-; 湿豆打豆程序void wet_peas(void) switch(move) case 0 : all_heat(); break; /第一步加热到100度 加热case 1 : all_hit(5); break; /第一次打豆5秒 打豆case 2 : all_heat(); break; /第一次加热case 3 : all_hit(5); break; /第二次打豆5秒case 4: all_heat(); break; /第二次

33、加热case 5 : all_hit(5); break; /第三次打豆5秒case 6: all_heat(); break; /第三次加热case 7: beep(20,1); break; /结束default : break; 主函数void main() mcu_init(); /单片机初始化 var_init(); /变量初始化 set_timer(); /设置定时器/开机 beep(10,1); / 开机响蜂铃 10x20ms200ms一次 wet_peas(); 第4章豆浆机控制系统的实习与调试4.1硬件调试在豆浆机系统完成后,我们对其进行调试,由于工作量巨大,设计一个合理的调

34、试方法有助于我们尽早的完成工作。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。硬件静态调试:排除逻辑故障 这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。这里我们先采用仿真技术来实现,所以我仔细观察了电路图的系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。并用仿真数字万用表的短路测试功能,可以缩短排错时间。来排除错误。硬件静态调试: 排除元器件失效 造成这类

35、错误的原因是我们使用的元器件的型号或者大小和电路的需要不一样,我们在排除这一类的错误时候要多注意电路的计算,通过计算把失效的元器件用其它元器件替换。硬件静态调试: 排除电源故障在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V4.8V之间属正常。这样才能避免我们电路还没开始使用就已经坏了。4.2软件调试调试,程序设计里,调试一般都用来跟踪变量的赋值过程,以及查看内存堆栈的内容,查看这些内容的目的在于观察变量的赋值过程与赋值情况从而达到调试的目的。这里,我们采用使用软件模拟调试,使用Keil uVision

36、 来软件调试单片机程序。(1) 首先,打开一个已经编译通过的单片机项目,我我之前编写好的程序打开(如图4-1)图4-1(2) 选择Debug下面的Start/Stop Debug Session,这个选项可以打开调试也可以关闭调试,出现调试窗口。(3)我们把程序刻录进去,通过输入一连串的变量,使得程序运行顺利,软件调试结束。第5章 总结刚开始,在设计中,我遇到了很多不懂的知识,比如对仿真软件proteus的应用,就很费力,不过我努力去自学通过网上寻找知识以及向老师请教,最终比较适应proteus的应用。后来,在电路设计中,遇到了很多困难,比如元件的选择或者电阻的大小计算,在里面,我学会了用排除

37、法排除错误,并且学会了模块组合方法。在软件设计中,由于对计算机语言的不熟,我犯了很多的语法错误,通过自己慢慢查找,终于顺利的完成了这个程序编写的任务。在调试运行中,由于是硬件和软件的结合,让我有点吃惊的是原来没问题的硬件和软件,一旦结合了,就可能出现很多问题,通过排除测试,我一步一步的解决问题,最终豆浆机控制系统完美运行。本次设计充分的运用了我所学到的知识,让我学有所用,很开心能接触到这类的设计,因为它比较接近现实,更让我对家用电器有了不一样的认识,从本质上我认识了电器的制作,相信这对我日后的生活有很大的影响。另外,在设计中,我遇到了很多的不懂的东西,然后试着自己去学习,最后对自己是一种知识的

38、提升,当然,我还遇到了很多不懂的,也找不到答案的,我就找了老师和同学,在他们帮助下我也都顺利解决,总之,能顺利完成这次毕业设计,真的对我是一件很大的成长。参考文献1 王千.实用电子电路大全M,电子工业出版社,20012 何立民.单片机应用技术选编M,北京:北京航空大学出版社,19983 李华.MCS-51系列单片机使用接口技术M,北京航空航天大学出版社,19934 彭为.单片机典型系统设计实例精讲M,北京:电子工业出版社,20065 潘永雄.新编单片机原理与应用M,西安:西安电子科技大学出版社,20036 范志君.机械类工业品的产品形象系统研究D. 山东大学,20077 于善清,于仁师,姜学东

39、. 家用豆浆机控制装置的研制J.莱阳农学院学报,19958 陈友德. DJJ-1250型全自动家用豆浆机J. 今日科技, 1994;9 王有绪,许杰,李拉成PIc系列单片接口技术及应用系统设计;北京:北京航空航天大学出版社,200110 凌志勇 方旭群.智能豆浆机的设计D,广东省电力工业学校仿真中心 ,2003 11 张向锋, 张强军, 任宏涛. 智能型豆浆机控制系统的开发J. 洛阳工学院学报, 200112 刘升, 杨静丽. 基于PIC16C54单片机的全自动豆浆机控制系统J.电子工程师, 200413 Maurice, Wilkes. Progress in Computers M Pre

40、stige Lecture delivered to IEE, Computer Laboratory University of Cambridge. Cambridge, on 5 February 2004附 录附 录1豆浆机控制器系统硬件图附 录2豆浆机控制器程序#include "reg51.h"/* 芯片类型: STC89C51 总线频率: 12MHz*/#include "reg51.h"/IO口重定义-sbit led = P15; /,作为控制led用,显示电源正常./sbit SW = P11;sbit buzzer= P35; /,

41、作为蜂铃用/sbit k1 = P30; /,作为继电器开关1用 加热sbit k2 = P34; /,作为继电器开关2用 电机/sbit wd = P16;/数据类型宏定义-#define uchar unsigned char /变量定义-/时间变量uchar to_2ms; /2ms统计变量uchar to_20ms; /20ms统计变量uchar to_200ms; /200ms统计变量uchar to_1s; /1s统计变量/-uchar beep_time; /响铃时间uchar beep_num; /响铃次数uchar flg_1s; /1秒标记uchar move; /打浆步骤

42、uchar hrat_tim,all_biao_ji; /加热时间 标记时间给一次uchar hit_tim,hit_biao_ji; /打豆时间 标记时间给一次/子函数声明-void sw();void mcu_init(); /单片机初始化void var_init(); /变量初始化void set_timer(); /定时器设置函数void beep(uchar beep_tim,uchar beep_nu); /蜂铃管理程序void all_heat(); /加热程序void all_hit(uchar all_hit_time); /打豆程序/sw水位检测void sw()If(!

43、SW)beep(20,1)/mcu寄存器初始化-void mcu_init()/变量初始化-void var_init() /设置定时器-/定时器模块相关说明void set_timer() TMOD = 0x01; /使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 TH0=0xff; /给定初值,这里使用定时器最大值从0开始计数一直到65535溢出 TL0=0x82; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器开关打开/蜂铃管理程序void beep(uchar beep_tim,uchar beep_nu)/

44、beep_tim-响铃时间 beep_nu响铃次数 /0一直响 1响一次 beep_time = beep_tim; beep_num = beep_nu;/加热程序-void all_heat() /all_hrat_tim加热时间if(wd) k1 = 0; k2=1; /加热 else k1 = 1; /停止加热 k2 = 0; / move +; /加热完成执行下一步程序 hrat_tim -; /打豆程序-void all_hit(uchar all_hit_time) /all_hit_time 打豆时间 if(!hit_biao_ji)hit_tim = all_hit_time; hit_biao_ji = 1; /给时间 一次 if(flg_1s) flg_1s = 0; /1秒标记清零 if(hit_tim) k1 = 1; /打豆k2 = 0; /总开 else k1 = 0; /打豆关k2 = 1; /加热move +; /打豆完成执行下一步程序hit_biao_ji = 0; /打豆时间给一次标记清零,为再一次打豆作准备 hit_tim-; /湿豆打豆程序void wet_peas(void) switch(mo

温馨提示

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

评论

0/150

提交评论