河北工业大学计算机硬件技术基础 (MCS-51单片机原理及应用)
综合性、开放性实验报告书
学 院:土木工程
班 级:土木122 姓 名:段伟 学 号:
2014年12月21日
河北工业大学计算机硬件技术基础(2014)
综合性、开放性实验报告
学院 土木工程 班级 土木122 成绩 姓名 段伟 学号
同组人
学号
一、题目:用单片机模拟消毒碗柜的工作过程(12)
二、问题的提出
我们实验的题目是用单片机模拟消毒碗柜的工作过程。
三、总体设计
1、实现的功能:
消毒碗柜可以定时对碗筷等进行消毒,当用户放入碗筷,关闭厨门并且按下开始按钮以后,消毒开始,10分钟以后自动结束,如果中途用户开门,则必须立即停止消毒,防治臭氧泄漏。
2、系统总体结构设计
⑴硬件设计:SW-51PROC-1单片机综合实验平台、51 TRACER、PC机一台、蜂鸣器、八段显示器、R0,R2,R7,K1、P1.0~P1.3,L1~L3,P1.6,P1.7,P2.0~P2.7、S1、外部中断P3.3。
⑵软件设计:此次设计我们根据问题功能分为外部中断、定时器、八段LED显示输出和蜂鸣器四大模块。
①外部中断:外部中断开启代表按下消毒开始按钮;
②定时器:定时器0控制消毒时间,定时器1给蜂鸣器一定频率的脉冲 ③八段LED显示输出:显示消毒剩余时间; ④蜂鸣器:消毒结束后蜂鸣器响提醒用户已完成消毒;
四、详细设计:
1、硬件详细设计: ⑴实验流程图
⑵接线方法:
①八段LED显示器部分:将P2.0~P2.7分别与a~dp依次相连接,P1.7连DS1; ②LED灯:将P1.1~P1.3分别与L1~L3依次相连接; ③外部中断将P3.3连K1 ④蜂鸣器接P1.6。
3、设计中的主要困难及解决方案
主要困难:(1)厨门一打开程序立即停止(2)消毒倒计时的实现(3)蜂鸣器提醒消毒结束。
解决方案:
(1)在主程序和中断程序中一直判断厨门状态,若是开门则马上跳到关闭
控制定时器0。
(2)通过编写一个倒计时的字形表,每次一秒送给八段数码管一个字形码。 (3)在消毒程序结束后开启定时器1,通过定时器中断给蜂鸣器一定的脉冲,发声提醒消毒程序结束。
五、程序清单
ORG 0000H ;;主程序入口处
MAIN: H: H4: KS: H1: NEXT1: H2: LJMP MAIN
ORG 0013H ; ;外部中断入口处 LJMP KS
ORG 000BH LJMP H2 ORG 001BH LJMP BJ1 ORG 0050H
MOV SP,#5FH ; ;主程序给堆栈赋初值
MOV TMOD,#11H ;;设定时器0和定时器1的模式是模式1 MOV TH0,#3CH ; ; t/co 计50ms MOV TL0,#0B0H MOV R2,#00H
MOV IE,#10001110B SETB IT1
SETB P1.2 ; ;厨门状态指示灯 SETB P1.3 ; ;消毒状态指示灯 CLR P1.1 CLR P1.7
JB P1.0,H4 ;;循环判断厨门开关 SETB P1.2 ; ; H4;clr p1.2状态 SJMP H ; CLR P1.2 AJMP H
JNB P1.0,H1 ;;厨门开关 状态 CLR P1.2 LJMP NEXT1 SETB P1.2 MOV R7,#0
SETB TR0 ;;开启定时器零 CLR P1.3 RETI
CLR P1.3 ;;开始计时控制 MOV TH0,#3CH MOV TL0,#0B0H INC R2
JB P1.0,H3 ; ;判断厨门开关 CJNE R2,#20,NEXT ;; 1s使p1.1取反一次 MOV DPTR,#TAB MOV A,R0 MOVC A, @A+DPTR MOV P2,A INC R0 CPL P1.1 INC R7
MOV R2,#00H CJNE R7,#10,NEXT CLR TR0 CLR P1.1 SETB P1.3 MOV R0,#00 MOV DPTR ,#TAB
AJMP S_T1 S_T1: MOV TH1,#0FDH MOV TL1,#90H SETB TR1 AJMP NEXT BJ1: MOV TH1,#0FDH MOV TL1,#90H JB P1.0,H3 CPL P1.6 AJMP NEXT H3: CLR TR0 CLR TR1 SETB P1.3 CLR P1.2 NEXT: RETI TAB: DB 90H,80H,0F8H,82H,92H,99H,0B0H,0A4H,0F9H,0C0H 倒计时字形表 END
六、调试程序的方法
⑴硬件调试方法:软件调试完成后,在开关闭合下,按下K1,开始模拟消毒过程。中途打开开关,消毒过程立即停止。数码管显示剩余时间。10秒钟后,
消毒停止蜂鸣器响起。
⑵软件调试方法:输入程序后,单击“重建所有目标文件”,进行编译,看有无错误和警告。若无错误和警告,则单击“开始/停止调试”按钮,进行调试程序。
七、你所设计的程序最终完成的功能
⑴程序最终完成的功能: ①完成定时10秒消毒过程; ②在数码管上同步显示剩余时间; ③厨门一打开,消毒过程马上停止; ④消毒过程结束,蜂鸣器报警 ⑵运行结果
八、对该设计题目有何更完善的方案
不足:未能实现消毒时间可变。
改进:可加入行列式键盘,通过键盘控制消毒时间。
九、收获及心得体会
通过这次单片机实验课的学习,不仅把课堂上学到的知识运用到实践当中,也提高了自己实践动手能力。在实验的过程中,遇到了不少的困难,在自己看书复习下得到了解决。同学的交流和老师的指导更是在很大程度上帮助我顺利完成这次任务。可以说,这是一次非常成功的课程设计。