《洗衣机功能设计_课程设计报告》由会员分享,可在线阅读,更多相关《洗衣机功能设计_课程设计报告(45页珍藏版)》请在金锄头文库上搜索。
1、计算机硬件技术基础课程设计报告 洗衣机功能设计指导教师: 硬件课程设计组老师学 生: 黄韬 张腾飞 魏兵 杨承炜廖贵川 学 号: 20104954 2010505920104903 20104965 20104984专 业: 自 动 化班 级: 2010 级 4 班设计日期: 2013.9.22013.9.13重庆大学自动化学院2013 年 9 月目录一、总体方案设计.11、引言: .12、硬件设计: .23、所用硬件结构及原理 .3(1 )步进电机 .3(2 )8254 定时/计数器 .4(3 )、键盘 .44、主流图设计 .65、初始化及流程图 .76、按键部分与状态显示 .77、声音提示
2、 .108、洗衣(洗涤、漂洗、甩干) .119、步进电机模拟 .1310、运行结束 .14二、操作说明 .14三、源程序 .15五、小组分工及设计心得 .351、分工 .352、心得体会 .35附录:计实物图 .40洗衣机功能设计第 1 页1一、总体方案设计1、引言:洗衣机广泛运用于家庭生活中,本实验研究洗衣机的基本原理,对洗衣机的大致过程用步进电机,LED 小灯,LED 数码管进行了基本功能模拟,本实验采用模块化的程序设计思想,模块化的设计具有许多优点:其一便于分块细化设计,其二让整个主程序思路清晰,结构明了;其三各个模块独立进行调试,当程序出现错误时,以便于纠错。本方案大致共分为六个部分:
3、初始化,按键,声音提示,状态显示,洗衣(洗涤、漂洗、甩干),步进电机模拟,结束。本实验报告将对实验进行具体分析。关键词:汇编语言,模块,水位档次,正反转,清洁模式,声音提示,数码管显示,指示灯,步进电机模拟。洗衣机功能设计第 2 页22、硬件设计:8254 接线部分:GATE0-PA7GATE1-+5VOUT0-PC4CLK0-OUT1CLK1-47KHZCS-CS18255 接线部分:第五片 8255 的 CS-CS28255-8254 小灯:PA0-D1PA1-D2PA5-D6PA6-D7PA6-D88255-步进电机:PB0PB3-HAHD8255-键盘:PC0PC3-P0P3键盘:Q0
4、-GND蜂鸣器:PB4洗衣机功能设计第 3 页33、所用硬件结构及原理(1 )步进电机步进电机驱动是通过对每相线圈中的电流的顺序使点击步进式旋转,所以调节脉冲信号的频率就可以改变步进电机的转速,改变相脉冲的先后顺序,可以改变电机的旋转方向。步进电机的转速应由慢到快逐步加速,刚启动时就应该避免就加太快的速度。洗衣机功能设计第 4 页4(2 )8254 定时/计数器Intel8254 是可编程定时/计数器。每个 8254 芯片有 3 个独立的 16 位计数器通道,每个计数器有 6 中工作方式,都可以按二进制货十进制(BCD 码)计数。洗衣机功能设计第 5 页5(3)、键盘在扩展的实验板上有 4 行
5、 4 列非编码键盘,按键的行、列信号 通过插孔引出,航信号通过插孔 P0P3 引出,列信号通过插孔 Q0Q3 引出,4*4 非编码键盘电路图如下图所示。键盘少藐视需要出列少苗,判断该行是否有键按下。现将对应列信号设置为 0,然后读入航信号,如果有键按下,则该行读入 0,否则为 1。洗衣机功能设计第 6 页64、主流图设计判断启停键是否按下开始调用状态初始程序8255,8254 初始化判断是否有开关键按下调用状态初始化程序灭小灯,灭数码管否开 LED是点亮开光标志灯调用查询子程序调用按键处理子程序开始调用状态初始程序, 初始化判断是否有开关键按下调用状态初始化程序灭小灯,灭数码管否开是点亮开光标
6、志灯调用查询子程序调用按键处理子程序否点亮起停标志灯根据设置选择洗涤类型调用相应洗涤程序蜂鸣器报警是否有启停键按下否是停止蜂鸣器报警洗衣机功能设计第 7 页7图 1 主程序流程图5、初始化及流程图本程序的初始化较为复杂,初始变量较多,在程序开始进行了备注,初始部分主要有三个部分组成,8254 初始化,8255 初始化和初始数据给定。图 2 给出了 8255 初始化的设计流程图:8255 初始化8255 四个控制口分别送入89808080H从第一片 8255A口开始依次显示0-3-0从第一片 8255B口开始依次显示0-0-0实际显示初始值003000,最后一个数码管关闭结束洗衣机功能设计第 8
7、 页8图 2 8255 初始化流程图6、按键部分与状态显示按键硬件部分:设计中按键部分主要对来自按键的设置信号进行输入,控制显示的状态,按键第一列为本实验所用的四个按键,第一个为电源键,在电源关闭的情况下按下该键,电源开,第一个小灯亮,再按一次小灯灭;第二个为启停键,负责电机的启停,启停键每按下依次状态切换一次,第二个小灯的亮灭也跟着相应的切换;第三个为水位设置键,负责设置水位的低中高三个状态,水位键每按下一次,状态依次改变,三色数码管中的第三块 LED 数码管也相应显示 01(低水位),02 (中水位),03 (高水位);第四个为洗涤方式键,按下可切换方式,分为标准洗涤、快速洗涤和甩干,按键
8、按下后进行选择,小灯D6、D7、D8 进行相应显示。按键软件部分:按键软件主要有三部分组成,按键查询,按键处理,状态设置。按键查询子程序通过查询按键按下状态对按键状态值 K 进行赋值按键查询子程序有无键按下电源键是否按下否启停键是否按下否水位键是否按下否洗涤键是否按下否否否 按键状态KEY=9KEY=0是KEY=1是KEY=2是KEY=3是调用延时按键是否弹起否是调用延时结束洗衣机功能设计第 9 页9图 3 按键查询子程序实现流程图按键处理子程序通过 KEY 值对各个按键的次数进行统计,程序实现流程图如图 4:按下启停键次数K1+1否按键处理子程序按键状态KEY=9?按键状态KEY=0?否按键
9、状态KEY=1?否按键状态KEY=2?否按键状态KEY=3?否结束是按下电源键次数K0+1是是按下水位键次数K2+1是按下洗涤键的次数K3+1是洗衣机功能设计第 10 页10图 4 按键处理子程序按键状态子程序通过对按键次数进行除法处理,让它变成实际的按键状态。比如初始电源按键次数 K0=0,后来电源按键按了 8 次变成了 8,这是我们给一个电源键状态值 NUM0=2(两种状态,开关)用 8/2,取余数为 0,证明电源键等同于关着的,以此类推我们设计了这种处理程序。图 5 按键状态设置实现的流程图:状态设置子程序电源按键次数 K0/电源键状态 2启停键次数 K1 除以启停键状态数 2水位设置键
10、次数 K2除以水位状态数 3洗涤键次数 K3 除以洗涤状态数 3得到按键实际状态结束洗衣机功能设计第 11 页11图 5 状态设置子程序7、声音提示8255 PB4 接蜂鸣器,洗涤完成后送入低电平,蜂鸣器响。8、洗衣(洗涤、漂洗、甩干)设计中给了两种洗衣方式,一种为标准洗衣,另一种为快速洗衣,标准洗衣有30S,快速洗衣为 25S,该部分为程序的重点和难点,洗衣过程分为三个部分,第一步为洗涤,时间长、有正反转、转速中等,第二部分为漂洗,时间短、有正反转、转速慢,第三部分为甩干,只有正转、转速快。三个部分程序具有相似性,其中衔接有步进电机子程序对整个洗衣过程进行模拟。图 6 是标准洗衣的实现流程图
11、:标准洗衣子程序初始洗衣剩余时间 SYSJ=30S,洗涤转速 500,洗涤结束时间XDSJ=18S调用洗衣第一步洗涤程序漂洗转速 500,漂洗结束时间PXSJ=10S调用第二步漂洗程序甩干转速count=100甩干结束洗衣机功能设计第 12 页12图 6 标准洗衣子程序流程图此处重点分析实验中的洗涤程序,洗涤开始后三色数码管显示 0130,随着洗涤的进行,30S 时间逐渐减少,洗涤开始为正转,然后反转,洗涤过程可以通过启停键控制洗衣的启停,图 7 是第一步洗涤过程的额实现流程图:洗涤程序数据初始化对送入显示值进行拆分处理,分十位个位分别显示调用 LEDXS 显示子程序显示当前状态正转标志DIRECT=0一秒定时小灯送值,关启停小灯(时间极短,如果没有按下停止键不会出现关小灯情况)调用按键查询处理设置三个子程序,进行启停状态扫描启停键是否按下,为停止状态是否小灯送值显示,开启停小灯显示开启调用电机程序正转判断 1S 延时是否完成否剩余时间 SYSJ-1,显示剩余时间是反转标志DIRECT=0FFH1S 定时小灯送值,关启停小灯调用按键查询处理设置三个子程序启停键是否按下,为停止状态是否小灯送值显示,开启停小灯调用电机反转程序电机反转判断 1S 延时是否完成是剩余时间 SYSJ-1,显示剩余时间判断洗涤是否结束结束