河北工业大学计算机
硬件技术基础(MCS-51)2008年秋季综合性、开放性实验报告
学院 土木工程 班级 姓名 学号 成绩_ _
一、题目:
全自动洗衣机控制系统设计(编号/06)
二、问题的提出
进一步加深对MCS-51单片机内部结构和程序设计方法的理解,提高综合运
用MCS-51单片机的软硬件进行程序设计的能力。
三、总体设计
1、运用MCS-51单片机的中断,延时等操作来模拟全自动洗衣机工作的全过程,用指示灯的点亮,熄灭来表示洗衣机的正转反转及开盖,注水,脱水等全过程
2、系统总体结构设计
接通电源后,打开洗衣机盖子放入衣物和洗衣粉,盖上盖子。
通过刷卡启动注水,利用外部中断0模拟注水达标志位,停止注水并开始洗衣。
洗衣过程为:正转10秒(利用延时实现),间歇4秒,然后反转10秒,间歇4秒, 再正转(这里认为已洗静),然后开始排水,同样利用延时模拟排水达标志位,排水结束, 如此循环往复3次(注水—洗涤—排水 过程),认为洗衣过程结束。然后开始脱水操作, 利用延时,定时时间到,打开洗衣机盖子取出衣物,等待下一次刷卡,即下一次洗衣任务。 实验中用各指示灯的亮灭来表示洗衣过程各环节的相应状态。
四、详细设计:
1、硬件详细设计: 1)画出电路图;
第1页/共8 页
编号:06
2)进行硬件资源分配(包括I/O口地址、所用各存储单元的用途)。2、软件详细设计:
开始 开电源 INT1 引脚置高电平 等待中断 P1.2=0 P1.2 =1 给A赋初值 判断A A≠0 关闭排水阀 调用子程序 关盖 调用子程序 注水 调用子程序 正转 调用子程序 反转 调用子程序 正转 调用子程序 排水 调用子程序 A=0 脱水结束 调用子程序 排水 调用子程序 关闭 等待下一次洗衣
第2页/共8 页
编号:06
3、在这部分论述设计中遇到的主要困难及解决方案。
1)由于计时器方面的知识学的不扎实,延时控制只好改由软件实现
2)在创新过程中,本打算用LED显示器来显示倒计时以使设计更加人性化,但由于程序一直没能调试好,最后只好放弃。
三、程序清单
ORG 8000H LJMP TMAIN
ORG 8003H LJMP TY TMAIN: MOV SP, #30H SETB EA SETB IT0 SETB EX0
SETB P1.2 CLR P1.7 MAIN:
JB P1.2, FF AJMP MAIN FF:
SETB P1.5 CLR P1.0 MOV 7AH, #00H MOV 79H, #04H
LCALL DELAY SETB P1.0 MOV R1, #03H FF0:
MOV A, R1 ;程序开始首地址 ;中断入口地址 ;电源指示灯亮 ;等待中断 ;脱水指示灯灭 ;开盖 ;调用子程序
;关盖 ;注水—洗涤—排水
第3页/共8 页
;注水、洗涤、脱水循环三次 编号:06
JZ FF2 ;如果A=0,转FF8,开始脱水 DEC R1 ;R1减1 FF1:
CLR P1.6 ;关闭排水阀 CLR P1.1 ;开始注水 MOV 7AH, #00H MOV 79H, #04H
LCALL DELAY SETB P1.1 CLR P1.3 MOV 7AH, #01H MOV 79H, #00H
LCALL DELAY SETB P1.3 CLR P1.2 MOV 7AH, #00H MOV 79H, #04H
LCALL DELAY SETB P1.2 CLR P1.4 MOV 7AH, #01H MOV 79H, #00H
LCALL DELAY SETB P1.4 CLR P1.2 MOV 7AH, #00H MOV 79H, #04H
LCALL DELAY SETB P1.2 CLR P1.3 ;调用子程序 ;关中断 ;反转 ;调用子程序 ;反转停 ;中断 ;调用子程序 ;关中断
第4页/共8 页
;调用子程序;停止注水;正转;调用子程序;正转停;中断;正转编号:06
MOV 7AH, #01H MOV 79H, #00H
LCALL DELAY ;调用子程序 SETB P1.3 ;正转停 SETB P1.6 ;排水 MOV 7AH, #01H MOV 79H, #00H
LCALL DELAY AJMP FF0 FF2:
CLR P1.6 MOV 7AH, #00H MOV 79H, #06H
LCALL DELAY CLR P1.5 SETB P1.6 MOV 7AH, #00H MOV 79H, #06H
LCALL DELAY SETB P1.5
SETB P1.7 RET DELAY: MOV A, #03H MOV DPTR, #0FF20H
MOVX @DPTR, A TT: MOV R2, #02H TT1: MOV R4, #10H TT2: DJNZ R4 , DISP4
开始脱水
;LED显示倒计时 ;方式控制字03H送A ;方式控制字送8155命令口第5页/共8 页
;调用子程序;关闭排水阀;调用子程序;脱水结束;排水;调用子程序;关闭电源;洗衣结束 DJNZ R2, TT1 MOV R3, 79H DEC 79H
CJNE R3, #00H, TT INC 7AH DJNZ 7AH, TT3 RET TT3: DEC 7AH MOV 79H, #09H AJMP TT DISP4:
MOV R5, #01H MOV R0, #79H MOV A, R5
LD0: MOV DPTR, #0FF21H MOVX @DPTR, A MOV DPTR, #0FF22H MOV A, @R0 ADD A, #0EH MOVC A, @A+PC MOVX @DPTR, A ACALL DLAY INC R0 MOV A, R5 JB ACC.1, LD1 RL A MOV R5, A AJMP LD0 LD1: SJMP TT2
;C口地址送DPTR ;位码送位选端; ;B口地址送DPTR ;待显字符偏移量送A ;对A进行地址修正 ;查段码表 ;段码送B口 ;调用延时子程序 ;显示缓冲区地址加1 ;位码送A
;若显示一遍则返回 ;位码右移一位 ;送回R5 ;显示下一个数码 编号:06
第6页/共8 页
编号:06
DB 0C0h,0F9H,0A4H,0B0H,99H,92H ;0 1 2 3 4 5 DB 82H,0F8H,80H,90H,88H,83H,0C6H ;6 7 8 9 A B C DB 0A1H,86H,8EH,0FFH,8CH,89H ;D E F 暗 P H DB 7FH,0BFH ; . — DLAY: ;延时子程序 MOV R7, #0FH DL1: MOV R6, #0FFH DL2: DJNZ R6, DL2 DJNZ R7, DL1 RET
TY: MOV P1,#0FFH ;中断子程序 SJMP $ RETI
END
四、调试程序的方法
1)硬件调试方法:运行实验,看是否遵循设计的要求,指示灯亮十秒,灭四秒,往复三次。分别表示:注水—洗涤—排水过程。指示灯的亮灭表示洗衣过程各环节的相应状态。如果不符,则仍然继续修改直到正确为止。
2)软件调试方法:将所编写的实验程序在WIN51文件下的DICE51.EXE中进行编译,看是否有错误出现,根据编译结果,如果出现错误,则根据错误提示修改。修改后再进行编译,如果还不能达到要求的结果,继续进行修改,直到所编写的程序无误。
五、你所设计的程序最终完成的功能
能通过灯的亮灭来模拟全自动洗衣机洗衣的全部过程,并能利用外部中断来实现洗衣过程中的停止洗衣功能。
六、对该设计题目有何更完善的方案
1、对自己完成程序进行自我评价。
程序过程烦琐,不十分明了,不太容易读懂。程序运行的实验次数太多,由于硬件设备的缺陷,显示结果使人觉得不是很满意,该显示的不能充分实现。
2、对课题提出更完善的方案。
第7页/共8 页
编号:06
如果能利用到LED显示器来显示倒计时将会使设计更加人性化。
五、收获及心得体会
这次设计我进一步加深了对MCS-51单片机内部结构和程序设计的理解,提高了自身综合运用MCS-51单片机的软硬件进行设计的能力。通过这次设计我了解到书本知识与日常生活用具之间的联系,扩大了自己的知识面,将课本上的知识与实际相结合,体会到知识的重要性。同时看着自己设计的程序,能够成功运行,形象而生动的描述自动洗衣机的运作过程,内心充满了喜悦和自豪感。在设计过程中,我又一次深深体会到了科学无止境这句话的含义,通过一次又一次的上网查询,去图书馆查找资料,我总能发现自己先前的设计的缺点和漏洞。促使自己多次改进更新,力求使设计的程序更完美,更充分,更确切的描述设计要求。通过这一系列学习,不单是掌握了这门知识,巩固了这门知识,同时适当学习其他学科的知识还可以提高自己,思考,动手的能力。对于我们是百利而无一害。
日期: 2008年12月30日
第8页/共8 页
因篇幅问题不能全部显示,请点此查看更多更全内容