课程设计任务书
学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 基于单片机的全自动洗衣机控制器的设计 初始条件: 1. 运用所学的单片机原理与接口技术知识和数字电路知识; 2. 51单片机应用开发系统一套; 3. PC机及相关应用软件;
要求完成的主要任务: 以家用全自动洗衣机为原型进行设计,要求实现进水、洗涤、排水、脱水等全部功能,并以数码显示方式显示工作过程。 1. 完成全自动洗衣机控制器的设计和调试。 2. 撰写课程设计说明书,说明书使用A4打印纸计算机打印,用Protel等绘图软件绘制电子线路图纸。
时间安排: 第1周 下达课程设计任务书和日程安排,调研和查找资料,明确设计任务要求; 第2周 完成方案论证、总体设计和硬件设计; 第3周 完成软件设计和程序的编写; 第4周 调试硬件系统和软件程序,完成整个系统的设计和调试; 第5周 结果分析整理、撰写课程设计报告,验收和答辩。
指导教师签名: 2010 年 12 月 15 日 系主任(或责任教师)签名: 2010 年 12 月 16 日
基于单片机的全自动洗衣机控制器的设计 摘 要 从古到今,洗衣服都是一项难于逃避的家务劳动,而在洗衣机出现以前,对于许多人而言,它并不像田园诗描绘的那样充满乐趣,手搓、棒击、冲刷、甩打……这些不断重复的简单的体力劳动,留给人的感受常常是:辛苦劳累。 1858年,汉密尔顿·史密斯制成了世界上第一台洗衣机。1874年,“手洗时代”受到了前所未有的挑战,美国人比尔·布莱克斯发明了世界上第一台人工搅动洗衣机。1911年美国人又研制了世界上第一台电动洗衣机。1920年美国的玛依塔格公司又把洗衣机的木制桶改为铝制桶体,第二年又把铝制桶体改为外层铸铝、内层为铜板的双层结构。1936年,他们又将搪瓷用于洗衣机桶体。与此同时,世界各地也相继出现了洗衣机。欧洲国家研究成功了喷流式洗衣机和滚筒式洗衣机。 1932年后,美国一家公司研制成功了第一台前装式滚筒全自动洗衣机,洗涤、漂洗和脱水都在同一个滚筒内自动完成,使洗衣机的发展跃上了一个新台阶。这种滚筒洗衣机,目前在欧洲、美洲等地得到了广泛的应用。 第二次世界大战结束后,洗衣机得到了迅速的发展,研制出具有独特风格的波轮式洗衣机。这种洗衣机由于其波轮安装在洗衣桶底,又称涡卷式洗衣机。 近几十年,在工业发达国家,全自动洗衣机制造技术又得到迅速发展,其年总产量及社会普及率均以达到相当高得水平。 目 录 摘 要... 1 前 言... 3 第一章 洗衣机控制器的概述... 4 1.1课题开发背景... 4 1.2目的意义... 4 1.3国内外现状及水平... 4 1.4 设计任务... 5 第二章 硬件设计... 6 2.1洗衣机控制器的外部设计... 6 2.1.2硬件设计框图... 6 2.2.系统硬件... 8 2.2.1强中弱三档开关... 8 2.2.2水位检测电路... 8 2.2.3电机正反转电路... 8 2.3各芯片介绍... 9 2.3.1 MCS-51单片机介绍... 9 2.4 MCS-51单片机的管脚图和各个管脚的作用... 11 2.5 单片机的复位与震荡电路... 13 第三章 调试... 15 3.1 硬件调试... 15 3.2 软件调试... 15 第四章 设计体会与小结... 17 参考文献... 18 附 录... 19
前 言
利用电能产生机械作用来洗涤衣物的清洁电器。按其额定洗涤容量分为家用和集体用两类。中国规定洗涤容量在6kg以下的属于家用洗衣机:家用洗衣机主要由箱体、洗涤脱水桶(有的洗涤和脱水桶分开)、传动和控制系统等组成,有的还装有加热装置。洗衣机一般专指使用水作为主要的清洗液体,有别于使用特制清洁溶液,及通常专人负责的干洗。 要了解硬件上单片机内部功能部件,如A/D,D/A,PWM.WATCHDOG,LCD驱动器,串行口等,又要认识C语言在计算机仿真调试,产品更新以及软件升级中的重要作用。但是要做实际的系统,单单从网站上的学习是不够的,所以我从书籍和期刊上查阅了大量的资料。以下是关于洗衣机的一些文献资料。
第一章 洗衣机控制器的概述1.1课题开发背景随着人民生活水平的提高,越来越多的人需要用洗衣机。现在洗衣机越来越高度自动化,只要衣服放入洗衣机,简单的按两个键,就会自动注水,一些先进的电脑控制洗衣机,还能自动的感觉衣物的重量,自动的添加适合的水量和洗涤剂,自动的设置洗涤的时间和洗涤的力度,洗涤完以后自动的漂洗甩干,更有些滚筒洗衣机还会将衣物烘干,整个洗衣的过程完成以后还会用动听的音乐声提醒用户,用户可以在洗衣的过程做其它的事,节省了不少的时间。总之,每一项技术的进步极大地推动了洗衣过程自动化程度的提高。 1.2目的意义 本次设计的洗衣机摔制器是为了满足不同用户的不同需求。同时也将计算 机摔制技术用到了实际生活中,最重要的是将所学的东西运用化。 1.3国内外现状及水平全自动洗衣机根据结构不同可分为波轮式全自动洗衣机(也叫套桶式全自 动洗衣机)、滚筒式全自动洗衣机和搅拌式全自动洗衣机三大类。波轮式、滚筒 式、搅拌式全自动洗衣机分别占全球洗衣机市场份额的33%、52%和15%。搅 拌式洗衣机目前还没有进入我国市场,以下仪对波轮式和滚筒式两种洗衣机进 行讨论。 (1)滚筒式洗衣机 更好地软化衣物纤维,减小洗涤过程中衣物的损伤和变形,并且还可以使洗后的衣物柔软而蓬忪: 提高温度来洗涤可充分溶解洗衣粉,加快洗衣粉中弱酸性物质与污物 化学反应速度,提高沈衣粉中酶的活性,同时有利于溶解汗渍、血渍、降低灰尘、油污的粘附作用,从而可在同样的沈净比下(注:沈净比是国家对沈衣机的质量考核标准中的一个基本指标),可大幅度降低洗涤过程对机械外力的需求: (2)高温能有效地杀死些细菌。 加温沈涤的波轮式沈衣机无论怎样的水流,要达到一定的沈净比,就 必须有足够的机械力,而机械力对衣物是有损伤的,这就注定了波轮式沈衣机的磨损率人人高于滚筒式洗衣机。 各种新水流基本原理是一样的,就是尽量以紊乱的水流减少衣物的缠 绕,增大水流的冲刷力用于洗涤,与以前依靠衣物与桶壁和衣物相互之问的摩擦方式相比,水流冲刷对衣物的损伤较小。 (3)波轮式沈衣机 因为滚筒式机的价格人人高十波轮式机,所以波轮式机仍受到普遍欢迎。 关于水流:现存波轮式全自动洗衣机的宣传重点放存新水流上,如 LG的拳击棒、松下的双瀑布、荣事达的网络水流等,但正如上面说到过的,各个厂家是用小同的方法实现同一个目标,实际效果也差小多,所以小必太在意。 关于程序控制器:新推山的波轮式仝自动沈衣机均采用甲.片机程序 控制器,原来的机械式程序控制器基本上已被淘汰。各厂家生产的各种型弓的波轮式全自动洗衣机的控制程序有所不同,最少的也有好儿个控制项,每一项 又有几种不同的洗涤程序可供选择,足以满足不同的洗涤要求,所以没有必要 考虑这个问题。存模糊控制的洗衣机中,单片机通过采集水位传感器、布量传 感器、光传感器的信号以及电动机的转速,判断出衣物的质地、多少、肮脏程 度,从而自动调整对衣物进行合理的沈涤,缺点是价格太贵。 关丁不锈钢内桶:采用不锈钢内桶的目的是为了减小衣物和内桶壁 的摩擦力,从而减轻衣物的磨损,选购时应予以考虑。 关于同心洗:同心洗是直接把电动机轴与洗衣桶主轴同心安装,直接驱动。这样在沈涤,特别是脱水的时候沈衣桶震动减小,使噪声得以降低。但要I说这样会延长沈衣机的寿命是不正确的。 至丁变频洗衣机,其一是可以对不同质地的衣物自动选用不同的电 动机转速,从而给不同质地的衣物以恰当的洗涤强度,在保证洗得干净的同时, 最大限度地降低衣物的磨损。其二是可以存脱水甩干时,由慢到快地启动,使 衣物在桶内分布均匀,脱水效果好,同时由于衣物均匀地分布存洗衣桶的四周, 洗衣桶的重心落在轴心上,可以减小震动,降低噪声,这当然是有好处的。缺 点也是价格太贵。 现在已经有厂家开发出了不需要使用洗涤剂的洗衣机,还有的厂家开 发出了更迷你的旅行洗衣机,小到可以在出外旅行的时候随身携带,为了更方 便的操作有的厂家还开发出了可以远程控制的洗衣机,这么样?是不是看的眼 花缭乱,将来的洗衣机会朝着使用更方便、更加节能、更加个性化的方向发展。 1.4 设计任务 (1)主要内容:设计一个用单片机控制的洗衣机控制器.以单片机为主 控制器,扩展必要的外部电路,没计制作一个洗衣机控制器。 ①洗涤按钮标准:洗涤12分钟;漂洗5分钟二次;脱水3分钟。轻柔: 洗涤3分钟;漂洗3分钟,二次;脱水2分钟。快速:洗涤4分钟;漂洗1分 钟,二次;脱水2分钟。 ②洗涤时洗涤指示灯闪烁;漂洗时漂洗指示灯闪烁;脱水时脱水指示灯 闪烁。 ③有启动/暂停按钮控制:第一次启动,标准洗涤;工作时按此按钮暂停,再按则恢复工作;有电源开关。洗涤、漂洗22秒正转,停8秒,反转22秒,停8秒。 第二章 硬件设计2.1洗衣机控制器的外部设计2.1.l洗衣机控制器控制面板的设计 洗衣机控制面板丰要包括:启动停止、电源、标准、轻柔、快速、水位选扦按钮。 完成次洗农过程所需的动作有; (1)进水动作进行洗涤时,盛水桶内的水量必须达到水位设定要求。洗衣机的进水和水位判断,是由水位开关和 进 水阀的开合来进行控制的,当桶内没有水或水量达小到设定水位时,单片机程序将控制进水阀闭合,开始注水,当桶内的水位达到设定水位时,水位开关受压闭合,程序就可进入下步处王甲。 (2)排水动作进入脱水动作前应先排水。为了避免空排水造成时间浪费以及排水不完而带水脱水造成对电机的损害。洗农机能够根据实际水量对排水时 间进动态控制。 (3)洗涤动作洗涤动作指的是电机周期性的“正转一停止一反转一停止”。不同的洗衣过程,控制电机执行“ 正转一停止一反转一停止”的时间是小同的 (4)其它动作洗农机控制器在此控制面板上还配有启动/停止电源、标 准、轻柔、快速、水位选择按钮。 2.1.2硬件设计框图 洗衣机控制系统运片的是AT89c51单片机,其耍控制的对象包括:进水阀、排水阀、电机。这些被控刘象是需要根据不同的沈衣程序来设定它们的不同工作状况和工作时问的,进水阀和排水阀的控制还需要水位检测,同时需要数码 管显示不同的工作状态及运行剩余时间。发光二极管用来指示洗涤速度和脱水 速度;按键用来控制程序的运行和设置洗涤速度和脱水速度。 下面是洗农机控制器系统框图: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
图2.1.2洗农机控制器系统框图 相应的操作程序,通过电路处理后,输出各种电路控制信号,使洗衣机自动完成程序操作过程。如果单片机自身出故障、或控制电路传送给单片机的信息不 正确,沈衣机就不能正常工作。 (1)直流电源电路这是为单片机及其外…控制电路提供晓以电压 直流电 源的电路,它将输入的220v交流电经过变压、整流、滤波、稳压后,变为稳 定的低压直流电,送给单片机、可控硅触发电路、显示电路等。 (2)复位电路此电路的作用是复位。在单片机接上电源以后,或电源出现 过低电压时,将单片机存储器复位,使其各项参数处于初始位置,即处于开机 时的标准程序状态,以消除由于某种原因的程序紊乱。 (3)时钟 电路由晶振元件与单片机内部电路组成,产牛的振荡频率为单片机提供时钟信 号,供单片机信号定时和训时。 (4)按键输入电路按键开关按定的矩阵排列,当按键被按动时,其接通 的信号将输送到单片机。单片机对应地调出内部软件进行工作,使洗衣机进入 相应的洗涤程序。 (5)显示电路显示电路由发光一极管按一定的矩阵排列而成,它是程序控 制系统向用户直接观察到沈衣机的工作状态的窗口。预设工作程序时,可根据 指示灯的闪亮来判断洗衣机是否接受了指令;还可以通过批示灯的显示来判断 洗衣机工作是甭正常。 (6)负载驱动电路该电路多由双向可控硅及触发电路组成。双各可控硅作 为无触点开关控制电机等负载的通断及运行。单片机根据按键输入指令或接收 到的检测信号,输出相应的控制信号,控制可控硅触发电路的导通,使电机等 负载得电运转。 电机控制软件流程图
|
| file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg |
图2.1.2电机控制软件流程图 2.2.系统硬件2.2.1强中弱三档开关通过强中弱三档开关电路来实现对不同量衣物的洗涤控制,合理利用电能,符合现代化节能标准。
|
| file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg |
图2.2.1强中弱三档开关电路 2.2.2水位检测电路水位检测模块通过水位传感器实现对桶内水位的检测。水位传感器内部存在LC振荡电路,当水压改变后电容值也会随之改变,从而影响水位传感器的输出频率,不同的水位对应一个吲定的频率值。本课题采用sw 1 型水位传感器, 在零水位时输出频率为26.8kHz,随着水位的升高水位传感器输出的频率会之减小,当达到本课题设计的最高水位390mm时输出频率为22 57kHz。将水位传感器的输出连接到水位检测电路如图2.2.2所示: file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif 图2.2.2水位检测电路 2.2.3电机正反转电路控制洗涤过程,洗涤动作洗涤动作指的是电机周期性的“正转一停止一反转一停止”。不同的洗衣过程,控制电机执行“ 正转一停止一反转一停止”的时间是小同的 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg 图2.2.3电机正反转电路 2.3各芯片介绍2.3.1 MCS-51单片机介绍各类单片的指令系统各不相同,功能各有所长,而市场占有率最高的是 Mcs.51系列,并且还在不断推出功能更强的新产品,因此基于学习与实际设 计的需要本次设计我选用Mcs.51系列单片机作为洗衣机控制器的主控芯片。 如今的市场上为我们提供了丰富多彩的单片机产品。从宏观上讲,有RISC和CISC两大类型;从微观上说,有Intel、Motorola、Philips、Microchip、EMC、NEC等公司的相关产品。 尽管常说,单片机是将中央处理器CPU、存储器和I/O接口电路等主要功能部件集成在一块集成电路芯片上的微型计算机,但由于工艺和其它方面的原因,很多功能部件并未集成在单片机芯片内部。于是,用户通常的做法是根据系统设计的需要在外围扩展功能芯片。随着集成电路技术的快速发展和“以人为本”思想在单片机设计上的体现,很多单片机生产厂家充分考虑到用户的需求,将一些常用的功能部件,如A/D(模/数转换器)、D/A(数/模转换器)、PWM(脉冲产生器)以及LCD(液晶)驱动器等集成到芯片内部,尽量做到单片化;同时,用户还可以提出要求,由厂家量身定作(SOC设计)或自行设计。 AT89C51单片机: AT89C51单片机最早由Intel公司推出,其后,多家公司购买了AT89C51的内核,使得以AT89C51为内核的MCU系列单片机在世界上产量最大,应用也最广泛,有人推测AT89C51可能最终形成事实上的标准MCU芯片[4]. 单片机的主要特点是:单片机内集成存储区有存储器,由于受到体积的限制,容量不大,但是可以根据需要进行扩展;单片机内的程序存储器ROM和数据存储器在空间上分开,采用不同的寻址方式,使用两个不同的地址指针PC及DPTR。另外,用户根据需要可以扩展程序存储器及数据存储器,这时CPU可以进行操作的存储器就分成四个区域:内部程序存储器、外部程序存储器、内部数据存储器和外部数据存储器;单片机的输入和输出接口在程序的控制下都可有第二功能;单片机的内部有一个是全双工的串行接口,可同时发送和接收,有两个物理上独立的接收、发送缓冲器SBUF,有四种工作方式;单片机内部有专门的位处理机(布尔处理机),具有较强的位处理功能[4]。 I/O 口的数量和功能是选用单片机时首先要考虑的问题之一,根据实际需要确定数量,I/O多余不仅芯片的体积增大,也增加了成本。对于驱动能力来说,驱动电流大的单片机可以简化外围电路。多数单片机提供2~3个定时/计数器,有些定时/计数器还具有输入捕获、输出比较和PWM(脉冲宽度调制)功能,利用这些模块不仅可以简化软件设计,而且能少占用CPU 的资源。现在还有不少单片机提供了看门狗定时器 (WDT) ,当单片机“死机”后可以自动复位。选用时可根据自己的需要和编程要求进行选择,不要片面追求功能多,用不上的功能就等于金钱的浪费。单片机常见的串行接口有:标准UART接口、增强型UART接口、I2C总线接口、CAN总线接口、SPI接口、USB接口等。大部分单片机都提供了UART接口,也有部分单片机没有串行接口[5]。 现在不少单片机内部提供了AD转换器、PWM输出和电压比较器,也有少量的单片机提到了DA转换器。单片机集成片内AD转换器的同时,还集成了采样/保持电路,使用户容易建立精密的数据采集系统。PWM模块可用来产生不同频率和占空比的脉冲信号。可方便实现D/A输出功能。PWM输出模块也可以用来实现直流电机的调速等功能。单片机内部集成的电压比较器可以实现多种功能,例如作阈值检测,实现低成本的AD转换器等[5]。这也是一个很实际的问题,如果有两种单片机都能解决问题,当然选一种你熟悉的品种。 在大多数情况下大家往往优先考虑选择 51 系列的单片机。在未来相当长的时间内,都将维持这种群雄并起、共性与个性共存的局面。究其原因,主要有以下两点。首先,以AT89C51为代表的单片机的基础地位不会动摇。这是因为AT89C51的架构和指令系统为后来的单片机提供了参考基准和强大支持,它们由于先天的优势,在AT89C51的基础上扬长避短,以用户需要为根本,在市场上受到欢迎。总之,AT89C51作为共性的代表会与个性化的产品相互依存,共同发展,将会给用户带来更大的实惠与方便[6]。 单片机常见的封装形式有: DIP( 双列直插式封装 ) 、 PLCC(PLCC 要对应插座) 、 QFP(四侧引脚扁平封装 ) 、 SOP( 双列小外形贴片封装 ) 等。 综合上述,选择51系列就是很好的,我们学过而且是现在最常用的单片机,当然若是单片机上带有PWM功能会将硬件简化不少,但是这样软件上就要很复杂。AT89C51是在MCS-51系列AT89C51的基础上发展起来的,因此兼容、改进和增强是我们对AT89C51和AT89C51进行比较的主要内容。首先,与AT89C51兼容是对AT89C51最基本的要求,以确保8位单片机MCS-51系列的继续发展。兼容应该包括指令、引脚信号和封装以及总线的兼容则确保两者在系统扩展和接口方面的一致性,有利于系统的开发和应用。其次,AT89C51的最大的改进是在芯片的半导体工艺上。早期的MCS-51系列芯片采用HMOS工艺,即高密度短沟道MOS工艺,而AT89C51芯片则采用CHMOS工艺,即互补金属氧化物的HMOS工艺。CHMOS是CMOS和HMOS的结合,除保持HMOS的高速度和高密度之外,还具有CMOS低功耗的特点。例如AT89C51的功耗为630mW,而AT89C51的功耗只有120mW,这样的低功耗,用一粒纽扣电池就可以工作。低功耗对单片机芯片在便携式、手提式或者野外作业的仪器仪表设备上使用十分有利。第三,AT89C51在功能增强方面也很突出。AT89C51芯片增加了待机和掉电保护两种工作方式,以保证单片机在掉电的情况下,能以最低的能耗电流维持。最后,在AT89C51系列芯片中,内部程序存储器除了ROM和EPROM型之外,还有E2PROM型,例如89C51中就有4KB的E2PROM。并且随着集成技术的提高,AT89C51系列芯片片内程序存储器的容量也越来越大,64KB的芯片已经广泛的应用了。许多的AT89C51芯片的存储器还具有程序存储器保密机制,以防止应用程序的泄密或者被复制[6]。 2.4 MCS-51单片机的管脚图和各个管脚的作用file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif 图2.4AT89C51的管脚图 AT89C51是典型的40管脚双列直插式集成电路芯片,其中各个引脚的功能如下所示: (1)信号引脚的功能介绍 ① 输入/输出口线 P0.0~P0.7 P0口的8位双向口线; P1.0~P1.7 P1口的8位双向口线; P2.0~P2.7 P2口的8位双向口线; P3.0~P3.7 P3口的8位双向口线。 ② ALE 地址锁存控制信号 在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送,此外由于ALE是以六分之一的晶振频率的固定频率输出正脉冲,因此可作为外部时钟或外部定时脉冲使用。 ③ file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif 外部程序存储器选通信号 在读外部的ROM时file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif有效(低电平),以实现外部ROM单元的读操作。 ④ file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif访问程序存储器控制信号 当file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif信号为低电平时,对ROM的读操作限定在外部程序存储器;而当file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif信号为高电平的时候,则对于ROM的读操作是从内部程序存储器开始,并可以延续至外部程序存储器。 ⑤ RST 复位信号 当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。 ⑥ XYAL1和XTAL2 外接晶体引线端 当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;但是当使用外部时钟脉冲信号。 ⑦ VSS 地线 ⑧ VCC +5V电源 以上就是AT89C51单片机芯片的40条引脚的定义及简单说明。 (2)信号引脚的第二功能 由于工艺及标准化等原因,芯片的引脚数目是有限的,例如MCS-51系列芯片引脚数目40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了供需矛盾。 ① EPROM存储器程序固化所需要的信号 有内部EPROM的单片机芯片,如87C51,为写入程序需提供专门的编程脉冲和编程电源,它们是由信号引脚的第二功能的形式提供的,即: 编程脉冲: 30脚(ALE/PROG) 编程电源:(25V)31脚(file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif/VPP) ② 备用电源的引入 MCS-51单片机的备用电源也是以信号引脚的第二功能方式由9脚(RST/VPD)引入的。当电源发生故障的时候,电源下降到下限值时,备用电源经此端向内部的RAM提供电压,以保护内部RAM信息不会丢失。 表2.4 P3口线的第二功能 | | | | | | | | | | file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif | | | file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif | | | | | | | | | file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif | | | file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif | |
(3)最后,引脚的第一、第二功能是不会在用的时候混淆的,因为: ① 对于各种型号的芯片,所有管脚的第一功能信号是相同的,所不同的是引脚的第二功能信号上。 ② 对于9、30和31各个引脚,由于第一功能信号与第二功能信号是单片机在不同的工作方式下的信号,因此不会发生使用上的矛盾。 ③ P3口线的情况却有所不同,它的第二功能信号都是单片机上的重要控制信号,因此,在实际使用的时候,总是先按照需要优先选用它的第二功能,剩下不用的再考虑作为口线使用。 2.5 单片机的复位与震荡电路 根据应用的要求,用到单片机,为了可靠的复位要外加一个复位电路。复位操作通常有:上电复位和上电或开关复位。工作原理是通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。上电复位的时间常数要在10ms以上,才能保证上电,一般可以取电容的大小为10μF,电阻为8.8KΩ。
file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image028.jpg 图2.5 AT89C51 的复位与震荡电路 Imel8279芯片是种通用可编程的键盘、显示,单个芯片就能完成键盘输入和LED自动显示控制两种功能。内含8个宁符的键盘输入F1FO,16个宁节 的显不RAM。键盘部分提供的扫描方式,可以显示_和具有 64个按键或传感器的阵列。能白动清除开关抖动以及N键同时按下的保护。 显示部分按扫描力式ll作,可以显示8或16位LED数码管。 (1)8279的引脚及功能 8279芯片采用双列直插式封装,各引脚排列如图23所示 A0:地址输入线,A0一O为数据口地址,A0一l为命令 状态口地址。 D7~D0:双向数据线,三态,用于与CPU之间的命令数据传送。 CLK:时钟输入线,用于8279的时钟输入,以产生内部定时的时钟脉冲, 其l作频率为1KMz, 般由CPU的ALE信号分频得到。
CS:片选输入线,低电半有效。 RD:读信号输入控制线,低电平有效。 WR:写信号输入线,低电平有效。 INT:rr『断请求输出线,高电平有效。在键盘___作方式卜,当FTFO/传感器RAM巾有数据时,输出高电平,在FIFO/传感器RAM每次读出时, 卜降为低电平工作方式,若在RAM中还有信息,则义变为高电平。在传感器工作方式中,每当探测到传感器信号变化时。中断线就变为高电平。 sLO~sL3:扫捕输出线,用来扫捕按键开关、传感器阵列和显示。 RL0~RL7:回送输入线,按键或传感器扫描时,回送扫描状态。其内部有上拉电阻,使之保持为高电平,当有按键闭合时,对应的回送输入线变为低电 平。 SHIFT:换挡输入线,高电半有效,用于键盘上下挡功能设置,在传感器工作方式中,输入无效。 CNTL在键盘工作方式时,常用来扩展开关的控制功能。 OA3~OAO及OB3~OBO:A组显示输出线和B组显示输出线,输出与扫描线sL0~sL3同步,可被独立控制输出。BD:消隐信号输出线,低电平有效, 也可看成一个8位端口控制输出。在显示信息切换时。不使切换信息输出仝LED上显不。 VCC:+5v电源输入线。 VSS:地线输入线。 命令及命令格式 8279有三种I作方式:键盘l作方式、显示_ll作方式和传感器_ll作方式。键盘工作方式:双键互锁和 N键轮回。双键互锁是指当有两个以卜按键同时按下时,只能识别最后一个被放的按键,并把其键值送入内部FlFO RAM中。N键轮回是指当有多个按键同时按下时,所有按键的键值均可按扫描顺序依次存入FIFORAM中。 显示_l_作方式:是指当CPU输入至8279内部FIFO RAM的数据的输出格式,有8个字符芹端入口显示、8个字符右端入口显示、16个字符芹端入口显 示、16个字符右端入口显示四种方式。 传感器工作方式:是指扫描传感器阵列时,一旦发现传感器的状态发生变化就置位INT向CPU申请中断。选择不 同的工作方式均是通过CPU对8279送入命令来进行控制。8279共有8种命令,命令寄存器为8位,其巾D7~D5为命令特征位,D4~D0为命令的控制位。CPU对8279写入的命令数据为命令字,读出的数据为状态字。
第三章 调试
3.1 硬件调试单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障是存调试软件时发现的,但通常是先排除系统中明显的硬件故障后才和软件结合起来 调试。 常见的硬件故障有: 逻辑错误:样机硬件的逻辑错误是由丁设计错误和加工过程中的工艺性错误所造成的。这类错误包括:错线、开路、短路、相位等。 元器件失效:元或怎能不符合要求;方向装反、二极管极器件失效的原因包括两个方面, 方面是器件本身已损坏另‘方面是组装过程中造成元器件失效,如电解电容方面性接反、集成电路或排电阻方向错误、三极管引脚接错等 可靠性差:引起系统不可靠的因素很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;内部和外部的干扰、电源纹波系统过人、器件负载过大或热稳定性差等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。 电源故障:若样机中存在电源故障,!J!IJ加电后将造成器件损坏。电源故障包括:电压值不符合设计要求,电源引出线和插座不对应,电源功率不足,负载能力差等。 更件的调试方式有: 脱机调试:脱机调试是存样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机的正确性,并核对元器件的型号、规格和安装是否符合要求。就特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总路线是否存在相互间的短路或与其它信号线的短路。对于样机所用电源事先必须单独调试,调试好后,检查其电压值、负载能力、极性等均符合设计要求,才能加到系统的各个部件上。在不插芯片的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意甲.片机插座上的电位是否正常,若有高压,可能损坏仿真机。联机调试:通过脱机调试可排除一些明显的硬件故障。有些硬件故障还是要通过联机调试才能发现和排除
3.2 软件调试软件调试与所选用的软件结构和程序设计技术有关。如果采用模块化程序发计技术,则逐个模块调好以后,再进行系统程序总调试。调试子程序时,一定要求符合现场环境,即入口条件和出口状态。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现稃序中的死循环错误、机器码错误及转换地址错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中逐步调整用户系统的软件和硬件。 各程序模块调试好后,可以把相关的功能模块联合起来起进行整体综合调试。存这个阶段若发生错误,可以考虑各子程序存运行时是否存破坏现场,缓冲区数据是否发生变化,标志位的建立和清除是否影响其它标志位的变化,堆栈区的深度是否小够,输入设备的状态是否正常等。 单步和断点调试后,还应进行连续调试,因为单片机的运行是在严格的时序下进行的,单步运行成功并不代表连续运行成功。待全部调试完成后,应反复运行多次,除了观察稳定性之外,还要考虑仿真条件是否与实际相符,如晶振频率是否与样机一致,所使用CPU资源是否与实际CPU资源相符等等。如调试时采用52系统CPU,并且程序中使用RAM地址80H~FFH,而目标程序写入51系列就不能正常运行程序。 在全部调试和修改完成后,将目标程序用相应设备写入程序存储器,插入仿真板,一般可能正常运行,至些软硬件高度完毕。 仿真结果,电机正常运行,LED显示器不亮,实验结果本应实现强中弱三档更迭洗涤和排水,但发动机通电而不运转,显示灯也不灵,没有达成实验成果,仔细检查原理和程序,几番修改,因学生水平有限,没能找出问题所在。 随后依次按下强洗,漂洗,甩干后,仿真图无变化。
第四章 设计体会与小结从12月17日到12月31日,在这为期两个星期里,通过对课程设计论文的方案设计与提出,程序的设计与编程。使我对大学所学的知识有了一个清晰明确的总体概括,虽然最后仿真实验未能成功,但还是让我学到了很多,亦让我明白还很需要学习。当然,通过本次课题设计,我了解到洗衣机控制器的主要设计思路,巩固了自己所学电气控制方面的大量学科知识,也加深了诸如PROTEL office办公软件特殊功能等。课程设计论文所需要的必须辅助技能的使用熟练程度,另外还有专门值得一提的是对新生事物的熟悉和迅速掌握其特性规律、结构原理及相关功能作用的认知能力有了大幅提高,这是关键的,也是我最看重的,最珍惜的。同时,也了解到洗衣机控制器系统具体步骤措施、这其中的要点难点、技术处理,和作为主控制器的AT89c5l单片机的工作原理以及电源电路的内部功能结构,完成本次设计后,使自己多年来所学的理论知识和实践有了一次有机结合允分发挥的绝好机会,进步深化巩固了自己的专业知识。 在我做设计的过程中遇到了很多问题,都是苏老师耐心的指导和讲解,让我的问题迎刃而解。在此也非常感谢苏老师给予我的指导和帮助,同样也佩服苏老师的知识阅历和严谨的教学作风,让我在学习的过程中受益良多,也使我明白了扎实的基础知识是提高和腾飞的关键,在日后的学习和生活中,我会更加努力学习课本内知识和课本外知识,提高自己。
参考文献[1]李勋.单片机微型计算机大学读本.[M]北京:北京航空航天大学出版社,2002 [2]吴金戌等.AT89C51单片机实践与应用,[M]北京:清华大学出版社,2002
[3]王治刚.单片机应用技术与实训.[M]北京:清华大学出版社,2004
[4]张积东等. 单片机51/98开发与应用.[M] 北京:电子工业出版社,1994 [5]周航慈等. 单片机程序设计基础. [M]北京:北京航空航天大学出版社,1997
附 录一.源程序 #include<reg51.h> int count=1; bit flag=0; int log=0; int help=0; char codedis_7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit p20=P2^0; sbit p21=P2^1; sbit p33=P3^3; sbit p34=P3^4; sbit p35=P3^5; sbit p36=P3^6; sbit p37=P3^7; sbit p31=P3^1; sbit p25=P2^5; sbit p26=P2^6; sbit p27=P2^7; sbit p14=P1^4; sbit p15=P1^5; sbit p17=P1^7; sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p32=P3^2; sbit p24=P2^4; int sum=0; int count; sbit p30=P3^0; int amount; int time=15; int h=0; int d=0; int k=0; sbit p13=P1^3; void delay(void)interrupt 1 using 1 { TL0=0xAF; TH0=0x3C; count++; if(count==10) { count=0; flag=1; } } void delay1ms(int t) { int i,j; for(i=0;i<t;i++) for(j=0;j<100;j++) ; } void scan(void) \\改时间\\ { EA=0; if(p17==0) {delay1ms(10);while(p17==0);h++;ET0=0; } if(p14==0&&h==1) {delay1ms(10);while(p14==0);time=time+1;if(time>99){time=1;sum=0;}} if(p15==0&&h==1) {delay1ms(10);while(p15==0);time=time+10;if(time>99){time=1;sum=0;}} if(h>1|h==0){h=0;ET0=1;} EA=1; void display(void) { int i,j; i=amount/10; j=amount%10; p20=0;p21=1;P0=dis_7;delay1ms(1);p21=1;p20=1;delay1ms(1);p20=1;p21=0;P0=dis_7[j];delay1ms(1);p21=1;p20=1;delay1ms(1);} void ruoxi(void) { ET0=1;EA=1; TMOD=0X21; TL0=0xAF; TH0=0x3c; TF0=0; 计数器溢出标志位 TR0=1; 计数器开始工作 p25=0;//进水 log=1; while(sum<time) { scan(); amount=time-sum; display(); if(flag) sum++; flag=0; } p25=1; p36=1; p37=0; p33=0;p34=1;p35=0;p27=0;//work 弱洗 sum=0; time=15; time=time+15;log=2; while(sum<time-15) {if(flag) sum++; flag=0; scan(); amount=time-sum; display(); } p36=1; p37=1; p30=0;p31=1;//change time=15;sum=0;log=3; while(sum<time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display(); } p26=0;p27=1;p30=1;p31=1;//fangshui sum=0;time=15;log=4; while(sum<=time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display();} p25=0;p26=1; p33=1;p34=1;p35=0;//piaoxi log=5;//biaozhi sum=0; time=10; while(sum<time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display();} p25=1;p27=0;p36=1;p37=0; sum=0;time=10;log=2; while(sum<time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display();} p36=1;p37=1; p27=1; p26=0; sum=0; time=10;log=7; while(sum<time) {if(flag) sum++; flag=0; amount=time-sum; scan(); display();} p27=0;p36=1;p37=0; p33=0; p34=0; p35=1; sum=0;time=10;log=2; while(sum<time) {if(flag) sum++; flag=0;scan();amount=time-sum; display();} p33=1;p34=1;p35=1;p27=1;p36=1;p37=1;p26=1; } void qiangxi(void) { ET0=1;EA=1; TMOD=0X21; TL0=0xAF; TH0=0x3c; TF0=0; TR0=1; p25=0;//进水 while(sum<time) { scan(); amount=time-sum; display(); if(flag) sum++; flag=0; } p25=1; p36=1; p37=0; p33=1;p34=0;p35=0;p27=0;log=2;//work sum=0; time=15; time=time+15; while(sum<time-15) {if(flag) sum++; flag=0; scan(); amount=time-sum; display(); } p36=1; p37=0;log=2; //nochange time=15;sum=0; while(sum<time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display(); } p26=0;p27=1;p36=1;p37=1;//fangshui sum=0;time=15; while(sum<=time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display();} p25=0;p26=1; p33=1;p34=1;p35=0;//piaoxi sum=0; time=10; while(sum<time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display();} p25=1;p27=0;p36=1;p37=0;log=2; sum=0;time=10; while(sum<time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display();} p36=1;p37=1; p27=1; p26=0; sum=0; time=10; while(sum<time) {if(flag) sum++; flag=0; amount=time-sum; scan(); display();} p27=0;p36=1;p37=0;log=2; p33=0; p34=0; p35=1; sum=0;time=10; while(sum<time) {if(flag) sum++; flag=0;scan();amount=time-sum; display();} p33=1;p34=1;p35=1;p27=1;p36=1;p37=1;p26=1; } void piaoxi(void){ ET0=1;EA=1; TMOD=0X21; TL0=0xAF; TH0=0x3c; TF0=0; TR0=1; p25=0;p26=1; p33=1;p34=1;p35=0;//piaoxi sum=0; time=10; while(sum<time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display();} p25=1;p27=0;p36=1;p37=0;log=2; sum=0;time=10; while(sum<time) {if(flag) sum++; flag=0; scan(); amount=time-sum; display();} p36=1;p37=1; p27=1; p26=0; sum=0; time=10; while(sum<time) {if(flag) sum++; flag=0; amount=time-sum; scan(); display();} p27=0;p36=1;p37=0;log=2; p33=0; p34=0; p35=1; sum=0;time=10; while(sum<time) {if(flag) sum++; flag=0;scan();amount=time-sum; display();} p33=1;p34=1;p35=1;p27=1;p36=1;p37=1;p26=1; } void shuaigan(void) { ET0=1;EA=1; TMOD=0X21; TL0=0xAF; TH0=0x3c; TF0=0; TR0=1; p33=0;p34=0;p31=1; p26=0;p36=1;p37=0;p27=0;log=2; sum=0;time=10; while(sum<time) {if(flag) sum++; flag=0;scan();amount=time-sum; display();} p33=1;p34=1;p35=1;p27=1;p36=1;p37=1;p26=1; } main() { EA=1;EX0=1; while(1) { log=0; if(p10==0){delay1ms(10);while(p10==0);sum=0;ruoxi();} if(p11==0){delay1ms(10);while(p11==0);sum=0;qiangxi();} if(p12==0){delay1ms(10);while(p12==0);sum=0;piaoxi();} if(p13==0){delay1ms(10);while(p13==0);sum=0;shuaigan();} } } void stop(void)interrupt 0 using 2 { EA=0; if(p32==0){delay1ms(5);while(p32==0);p24=0;if(log==2|log==3){p36=1;p37=1;p31=1;p30=1;}} while(p32==1) { d=amount/10; k=amount%10; p20=0;p21=1;P0=dis_7[d];delay1ms(1);p21=1;p20=1;delay1ms(1);p20=1;p21=0;P0=dis_7[k];delay1ms(1);p21=1;p20=1;delay1ms(1); } while(p32==0); if(log==2){p36=1;p37=0;p24=1;} if(log==3){p31=1;p30=0;p24=1;} p24=1; EA=1; }
二.总电路图 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image029.gif 本科生课程设计成绩评定表 姓 名 |
| |
| | | 课程设计题目:基于80C51单片机的全自动洗衣机控制系统的设计 | 课程设计答辩或质疑记录: 1.单片机的主要特点? 答:单片机的主要特点是:单片机内集成存储区有存储器,由于受到体积的限制,容量不大,但是可以根据需要进行扩展;单片机内的程序存储器ROM和数据存储器在空间上分开,采用不同的寻址方式,使用两个不同的地址指针PC及DPTR。另外,用户根据需要可以扩展程序存储器及数据存储器,这时CPU可以进行操作的存储器就分成四个区域:内部程序存储器、外部程序存储器、内部数据存储器和外部数据存储器;单片机的输入和输出接口在程序的控制下都可有第二功能;单片机的内部有一个是全双工的串行接口,可同时发送和接收,有两个物理上独立的接收、发送缓冲器SBUF,有四种工作方式;单片机内部有专门的位处理机(布尔处理机),具有较强的位处理功能[4]。 2. file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif信号为高低电平时,ROM的如何读操作? 答:当file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif信号为低电平时,对ROM的读操作限定在外部程序存储器;而当file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif信号为高电平的时候,则对于ROM的读操作是从内部程序存储器开始,并可以延续至外部程序存储器。
| | |
指导教师签字: 年 |