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