微波炉控制系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北工业大学计算机

硬件技术基础(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 MHz

2)软件设计:(具体见程序清单中的文字解释)

四、详细设计:

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-→ K1

LED显示和键盘的连线:P3.1-→ SCL , P3.0-→ SDA ,P3.4-→ RST-L ,INT_KEY -→ /INTO

蜂鸣器连线:P1.7 -→ BUZZ

2、软件详细设计:

我们的1秒的延时是用软件来实现的。

DELAY2 子程序用软件计时来实现1秒的延时

3、设计中的主要困难及解决方案

在这部分论述设计中遇到的主要困难及解决方案。

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

这个难题。

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

三、程序清单:

SDA BIT P3.0

SCL BIT P3.1

RST BIT P3.4

INT_KEY BIT P3.2

MTD EQU 40H

MRD EQU 48H

DisBuf EQU 38H ;定义ZLG7290器件地址及子地址

ZLG7290 EQU 70H

ACK BIT 10H

SLA DATA 50H

SUBA DATA 51H

NUMBYTE DATA 52H

Key DATA 53H

SystemReg EQU 00H

KeyReg EQU 01H

CmdBuf0 EQU 07H

CmdBuf1 EQU 08H

DpRam EQU 10H

ORG 8000H

LJMP MAIN ;定义主程序入口地址

ORG 8013H ;定义中断入口地址

LJMP INTISV

ORG 8100H ;定义入口地址

;-------主程序如下:

MAIN: MOV SP,#70H

SETB EA ;开中断

SETB IT1 ;外部中断1的触发控制位,输入脚上的高到低的负跳有效

SETB EX1 ;外部中断一中断允许控制位

CLR RST

LCALL DELAY

SETB RST

LCALL DELAY

lcall ClsDisp ;清除显示内容

MAINLOOP: MOV p1,#0FFH ;将P1口全部置1

JB P1.0,MAINLOOP ;查询 P1.0 ,是1则继续查询;是0则继续执行 MOV A,P1

SWAP A

MOV P1,A ;将SW键与LED灯交换,电源指示灯亮

mov DisBuf+7,#0

mov DisBuf+6,#0

lcall Display ;调用显示子程序,LED7和LED6显示00 WaitKey: JB INT_KEY,WaitKey 查询INT_KEY ,是1则继续查询;是0则继续执行

lcall GetKey

mov A,Key

jz WaitKey

MOV DisBuf+6,Key

lcall Display

CLR A ;检查个位数字并显示,并将A清零

WAITKEY2: JB INT_KEY, WAITKEY2

lcall GetKey

mov A,Key

jz HLKZ ;若键值为0,则转到HLKZ

相关文档
最新文档