当前位置:文档之家› 微波炉控制系统

微波炉控制系统

河北工业大学计算机硬件技术基础(MCS-51)——微波炉控制系统设计报告学院土木工程班级姓名学号成绩 _ _一、设计题目:(编号12)微波炉控制系统设计二、设计目的:(1)模拟微波炉的控制系统,实现部分功能,包括:①大小火力的选择;②设定温火加热时间并显示;③时间倒计时并通过LED显示;④设置蜂鸣器来警告加热时间到;⑤设置中断来模拟开门等。

(2)通过试验进一步加深对MCS—51单片机内部结构和程序设计方法的理解。

(3)通过两个人的合作,增强团队精神。

三、总体设计1、分析问题的功能本设计主要预实现以下工作流程:1)按下电源键,指示灯亮,LED显示00,单位是秒。

2)通过键盘设置需要加热的时间,在LED上进行显示。

3)时间设定完后,通过大小两个按键,选择火力大小,启动微波炉开始工作。

4)LED显示剩余工作时间,定时时间到后蜂鸣器鸣叫,LED显示消失,火力指示灯和电源指示灯均熄灭。

5)微波炉运行过程中,若按下K1键,则微波炉停止工作,LED显示灭,指示灯灭。

2、系统总体结构设计1)硬件设计:单片机:MCS-51单片机I/O接口:P1口和P3口中断:采用外部中断1其他硬件设备:3个LED 灯(LED1、LED2、LED3)、 3个SWH 键(SWH1、SWH2、SWH3)、 一个K 键(K1)、 LED 显示(LED6、LED7)、键盘(S0—S9)、蜂鸣器。

设定 8031时钟频率 11.0592 MHz2)软件设计:(具体见程序清单中的文字解释)四、详细设计:1、硬件详细设计: 1)画出电路图;指示灯控制LED 显示和键盘控制蜂鸣器的连接图2)进行硬件资源分配(包括I/O口地址、所用各存储单元的用途)。

8000H 硬件入口地址8013H /INT1中断入口地址指示灯控制连线:P1.0 P1.1 P1.2 -→ SW1 SW2 SW3 ,P1.4 P1.5 P1.6 -→ LED1 LED2 LED3/INT0-→ K1LED显示和键盘的连线:P3.1-→ SCL , P3.0-→ SDA ,P3.4-→ RST-L ,INT_KEY -→ /INTO蜂鸣器连线:P1.7 -→ BUZZ2、软件详细设计:我们的1秒的延时是用软件来实现的。

DELAY2 子程序用软件计时来实现1秒的延时3、设计中的主要困难及解决方案在这部分论述设计中遇到的主要困难及解决方案。

1)在LED显示倒计时时遇到困难,问了问老师和同学,通过设置内外循环解决了这个难题。

2)在设置中断时遇到了困难,通过多次试验、修改终于成功实现。

三、程序清单:SDA BIT P3.0SCL BIT P3.1RST BIT P3.4INT_KEY BIT P3.2MTD EQU 40HMRD EQU 48HDisBuf EQU 38H ;定义ZLG7290器件地址及子地址ZLG7290 EQU 70HACK BIT 10HSLA DATA 50HSUBA DATA 51HNUMBYTE DATA 52HKey DATA 53HSystemReg EQU 00HKeyReg EQU 01HCmdBuf0 EQU 07HCmdBuf1 EQU 08HDpRam EQU 10HORG 8000HLJMP MAIN ;定义主程序入口地址ORG 8013H ;定义中断入口地址LJMP INTISVORG 8100H ;定义入口地址;-------主程序如下:MAIN: MOV SP,#70HSETB EA ;开中断SETB IT1 ;外部中断1的触发控制位,输入脚上的高到低的负跳有效SETB EX1 ;外部中断一中断允许控制位CLR RSTLCALL DELAYSETB RSTLCALL DELAYlcall ClsDisp ;清除显示内容MAINLOOP: MOV p1,#0FFH ;将P1口全部置1JB P1.0,MAINLOOP ;查询 P1.0 ,是1则继续查询;是0则继续执行 MOV A,P1SWAP AMOV P1,A ;将SW键与LED灯交换,电源指示灯亮mov DisBuf+7,#0mov DisBuf+6,#0lcall Display ;调用显示子程序,LED7和LED6显示00 WaitKey: JB INT_KEY,WaitKey 查询INT_KEY ,是1则继续查询;是0则继续执行lcall GetKeymov A,Keyjz WaitKeyMOV DisBuf+6,Keylcall DisplayCLR A ;检查个位数字并显示,并将A清零WAITKEY2: JB INT_KEY, WAITKEY2lcall GetKeymov A,Keyjz HLKZ ;若键值为0,则转到HLKZMM: MOV DisBuf+7,DisBuf+6MOV DisBuf+6,Keylcall DisplayCLR ALJMP HLKZ ;检查十位数字并显示,转到HLKZHLKZ:HLD:JB P1.1,HLXMOV A,P1SWAP AMOV P1,ALJMP DELAY1HLX:JB P1.2,HLDMOV A,P1SWAP AMOV P1,ALJMP DELAY1 ;火力控制大小的选择,SW1为大火力,SW2为小火力DELAY1: MOV R2,3FHM1:MOV A,R2MOV DisBuf+7,Alcall DisplayMOV R3,3EHM2: MOV A,R3MOV DisBuf+6,Alcall DisplayLCALL DELAY2 ;调用1秒的子程序DJNZ R3,M2MOV A,R2JZ NEXTDEC R2LJMP M1 ;用来显示倒计时NEXT: CPL P1.7LCALL DELAYCPL P1.7 ;蜂鸣器鸣叫36.5msMOV P1,#0FFHlcall ClsDisp ;指示灯灭,LED显示清除SJMP $DELAY2: MOV R5,#50DLY1: MOV R6,#100DLY2: MOV R7,#100DJNZ R7,$DJNZ R6,DLY2DJNZ R5,DLY1RET ;1秒延时子程序;子程序名:ClsDisp;功能:清除显示内容;调用:VI2C_ASM.INC;入口参数:无;出口参数:无;占用资源: R0,R1,R2,R3(工作寄存器组1),ACC,Cy,R5(当前工作寄存器组)ClsDisp: mov R5,#8mov A,#01100000BCls1: MOV SLA,#ZLG7290MOV SUBA,#CmdBuf0MOV MTD,Amov MTD+1,#1FHMOV NUMBYTE,#02Hpush ACCpush PSWsetb RS0clr RS1LCALL IWRNBYTEpop PSWpop ACCinc ALCALL DELAYdjnz R5,Cls1ret;子程序名:Display;功能:在8段LED数码管显示;调用:VI2C_ASM.INC;入口参数: Disbuf+0~ Disbuf+7,8字节显示缓冲区;出口参数:无;占用资源: R0,R1,R2,R3(工作寄存器组1),ACC,Cy,R0,R5(当前工作寄存器组)Display: mov R5,#8mov A,#01100000Bmov R0,# DisbufDisp1: MOV SLA,#ZLG7290编号:12MOV SUBA,#CmdBuf0MOV MTD,Amov MTD+1,@R0MOV NUMBYTE,#02Hpush ACCpush PSWsetb RS0clr RS1LCALL IWRNBYTEpop PSWpop ACCinc Ainc R0LCALL DELAYdjnz R5,Disp1ret;子程序名:GetKey;功能:获取用户按键值(Key);调用:VI2C_ASM.INC;入口参数:无;出口参数:Key;占用资源: R0,R1,R2,R3(工作寄存器组1),ACC,CyGetKey: MOV SLA,#ZLG7290MOV SUBA,#01HMOV NUMBYTE,#01Hpush ACCpush PSWsetb RS0clr RS1LCALL IRDNBYTEpop PSWpop ACCmov Key,MRDret;子程序名: DELAY;功能:延时约36.5 ms(11.0592MHz时钟);调用:YS500US;入口参数:无;出口参数:无;占用资源: R7,R6DELAY: MOV R7,#80HMIN: LCALL YS500USDJNZ R7,MINRET;子程序名: YS500US;功能:延时约279us(11.0592MHz时钟);调用:无;入口参数:无;出口参数:无;占用资源: R6YS500US:MOV R6,#80HDJNZ R6,$RET$INCLUDE(VI2C_ASM.INC)INTISV: MOV P1,#0FFHlcall ClsDispRETI ;中断子程序END备注:VI2C_ASM.INC 内容见后面的附表1.四、调试程序的方法:1)硬件调试方法(编译—调试—右击,set program counter—运行)按电路图连接电路2)软件调试方法编译—调试—右击,set program counter—运行五、你所设计的程序最终完成的功能:试验结果的演示:1、微波炉正常工作1)当SWH1置于低电平时,电源指示灯LED1亮,LED显示00;2)通过键盘输入4秒,则LED显示为04;3)通过SWH2选择大火力(或通过SWH3选择小火力),同时时间倒计时开始,并在LED上显示剩余工作时间;4)定时时间到,蜂鸣器鸣叫,LED显示消失,同时电源指示灯灭,火力大小指示灯熄灭。

2、微波炉中断1)通过上述的1中的1)、2)、3)使微波炉正常工作;2)当按下K1键时,触发中断,LED显示消失,同时电源指示灯灭,火力大小指示灯熄灭。

(说明:对应到现实问题是指在微波炉工作过程中按下END键工作过程停止。

)六、对该设计题目的自我评价和完善方案:1、对自己完成程序进行自我评价。

本次试验由我和张磊合作完成,我们分工明确,我负责连线和校正,她负责编写程序,排除错误,运行程序。

我们基本完成了老师布置的任务,回答老师的提问时没有遇见困难,团队合作较好。

本实验的创新点在于条理清楚,硬件设备齐全,连线复杂但清晰,功能实现的较好,但由于设计时间仓促,对所学知识的掌握仍有一定的欠缺,所以程序仍有很多需要完善的地方。

2、对课题提出更完善的方案。

本实验仍有需要改进的地方:比如说①可以用一个指示灯指示门关闭,这样按键才能起作用;②在定时到时后,显示“END”;③火力选择可以再设置一个中档(由于学校硬件设备有限,这条想过了,没有执行)。

相关主题