豆浆机的控制系统Word文档格式.docx

上传人:b****1 文档编号:1479420 上传时间:2023-04-30 格式:DOCX 页数:26 大小:441.61KB
下载 相关 举报
豆浆机的控制系统Word文档格式.docx_第1页
第1页 / 共26页
豆浆机的控制系统Word文档格式.docx_第2页
第2页 / 共26页
豆浆机的控制系统Word文档格式.docx_第3页
第3页 / 共26页
豆浆机的控制系统Word文档格式.docx_第4页
第4页 / 共26页
豆浆机的控制系统Word文档格式.docx_第5页
第5页 / 共26页
豆浆机的控制系统Word文档格式.docx_第6页
第6页 / 共26页
豆浆机的控制系统Word文档格式.docx_第7页
第7页 / 共26页
豆浆机的控制系统Word文档格式.docx_第8页
第8页 / 共26页
豆浆机的控制系统Word文档格式.docx_第9页
第9页 / 共26页
豆浆机的控制系统Word文档格式.docx_第10页
第10页 / 共26页
豆浆机的控制系统Word文档格式.docx_第11页
第11页 / 共26页
豆浆机的控制系统Word文档格式.docx_第12页
第12页 / 共26页
豆浆机的控制系统Word文档格式.docx_第13页
第13页 / 共26页
豆浆机的控制系统Word文档格式.docx_第14页
第14页 / 共26页
豆浆机的控制系统Word文档格式.docx_第15页
第15页 / 共26页
豆浆机的控制系统Word文档格式.docx_第16页
第16页 / 共26页
豆浆机的控制系统Word文档格式.docx_第17页
第17页 / 共26页
豆浆机的控制系统Word文档格式.docx_第18页
第18页 / 共26页
豆浆机的控制系统Word文档格式.docx_第19页
第19页 / 共26页
豆浆机的控制系统Word文档格式.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

豆浆机的控制系统Word文档格式.docx

《豆浆机的控制系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《豆浆机的控制系统Word文档格式.docx(26页珍藏版)》请在冰点文库上搜索。

豆浆机的控制系统Word文档格式.docx

控制都可以通过状态标志条件来控制。

(5)经过调试修改后的程序应进行规范化,除去修改“痕迹”。

规范化的程序便于交流、借鉴,也为今后的软件模块化。

标准化打下基础。

(6)实现全面软件抗干扰设计。

软件抗干扰是计算机应用系统提高可靠性的有力措施。

(7)为了提高运行的可靠性,在应用软件中设置自诊断程序,在系统工作运行前先运行自诊断程序,用于检查系统各特征状态参数是否正常。

2.3.应用系统开发过程

应用系统的开发过程包括四部分工作内容,即系统硬件设计、系统软件设计。

系统仿真调试及脱机运行调试。

在确定开发课题后,首先要进行方案调研,这是整个研制工作成败。

好坏的关键,千万不可忽视,方案调研包括查找资料,分析研究,并解决以下问题:

(1)了解国内外相似课题的开发水平,器材、设备水平,供应状态;

对接收委托研制项目,还应充分了解对方技术要求、环境状况,技术水平。

以确定课题的技术难度。

(2)了解可移植的软、硬件技术。

能移植的尽量移植,以防止大量的低水平重复劳动。

(3)摸清软、硬件技术难度。

明确技术主攻方向。

(4)综合考虑软、硬件分工与配合。

单片机应用系统设计中,软、硬件工作具有密切的相关性

通过调查研究,确定应用系统的功能技术指标,软、硬件指令性方案及分工。

系统的硬件设计与软件设计可并行。

硬件电路检查分两步走进行:

硬件电路检查与硬件系统诊断。

硬件电路检查在开发系统外进行,主要检查电路制作是否正确无误;

硬件系统诊断在开发系统上进行,用开发系统的仿真头代替应用系统中的单片机,开发系统输入各种诊断程序来检查应用系统中各部分是否正常。

系统软件结构方案确定后,软件的编制科根据开发系统的功能,利用交叉汇编屏幕编辑或手工编制,编制好的程序通过自动生成或手工翻译成目标程序后送入开发系统进行软件调试。

所有模块化软件调试完毕后要进行链接工作,链接成一个完整的系统应用软件。

软件链接调试后,要规范化,并重新修改ROM、RAM区域规则。

链接调试完毕后系统应用软件固化在EPROM中,然后可进行脱机(即离开开发系统)运行。

在一般情况下,应能正常运行,但有时却不可能,因此还必须要作必须的检查调试。

当脱机不能正常运行时,要考虑实际电路与仿真环境的差异。

2.4.应用系统工作过程

被选中的模式用LED显示器表明实现不同模式下的加工过程:

加热——粉碎1——加热——粉碎2——加热——完成报警,整个加工过程的进行按时间控制,时间自定液位检测和控制:

使被加工的食品液体限定在某一个给定的液位范内,当液体溢出容器时,报警并断电。

设计系统各个部分的工作电源。

家用豆类和谷物处理机(即全自动豆浆机)具有按预设模式自动粉碎谷物、加热功能、防止溢出、处理完毕报警等基本功能。

一般可以处理如豆类、玉米、其他五谷杂粮、蔬菜等多种食品。

全自动家用豆类和谷物处理机的处理食品的过程通常为:

加热——粉碎1——加热——粉碎2——加热——完成报警,整个加工过程的进行按时间控制。

由于食品原料的物理特性不同,在加工处理时采用不同的加工(过程)模式,其主要区别在于加热和粉碎时间的长短不同。

在工作过程中,被加工的食品液体被限定在某一个给定的液位范围内,当液体加热时泡沫达到溢出液位时,停止加热,待脱离溢出液位区时继续加热。

参数:

电机:

5W24VDC;

加热器:

500W220VAC;

加热容器:

1.25升;

电力供应:

220VAC

3.方案分析

3.1.硬件需求分析

硬件上豆浆机的控制系统首先需要有一个单片机芯片作为控制核心来控制它的工作过程,我们选用AT89C52。

模式选择时需用3×

1个微型按钮开关。

因为要显示工作模式和工作时间,我们选择了1个共阴极的SEG-MPX6-CCLED数码显示管。

并配套选用74LS245芯片以驱动数码管、74LS138芯片以产生数码管片选信号。

在刚开始时需要进行水位检测,这就需要一个传感器,为了减少成本,这里采用一个开关来模拟代替传感器的作用,然后开始进行加热和粉碎。

本设计过程用LED灯进行模拟指示即可。

超液位、液体溢出和液位过低信号同样用开关来模拟。

对豆浆再次加热完毕后,预示着豆浆加工完成了,最后发出报警信号,这里就选用一个报警器和一个蜂鸣器就可以了。

综上,现实中需要的硬件有1个AT89C52,1个SEG-MPX6-CCLED数码显示管,2个74LS245芯片,1个74LS138芯片,4个BUTTON开关,1个电动机(带粉碎刀头),1个发热板,2个LED指示灯(电源指示和报警灯),1个蜂鸣器和2个继电器等。

而本模拟控制过程只需1个AT89C52,1个SEG-MPX6-CCLED数码显示管,2个74LS245芯片,1个74LS138芯片,4个BUTTON开关,3个LED指示灯,1个蜂鸣器等即可。

本豆浆机系统框图如下图1a和图1b所示:

 

图1a系统框图

图1b豆浆机模拟控制系统硬件电路图

(注:

键1、键2、键3分别为模式1、模式2、模式3的选择开关。

SW1为超液位信号模拟开关。

SW2和SW3分别为液体溢出和液位过低信号模拟开关。

LEDD3和D2分别为加热和粉碎指示灯。

功能工作时第3个数码管显示模式,第5、6两个数码管显示计时时间。

3.2.软件功能分析

软件上就是对单片机的编程了,在编程前需要画出一个流程图,如图2。

根据豆浆机控制系统的设计要求及目的,即插上电源按下按钮后,先对豆浆机进行水位检测,符合要求后,再设定工作模式。

根据豆浆机的工作场合,我们模拟设定3个工作模式:

模式1,加热6S,粉碎6S;

模式2,加热9S,粉碎9S;

模式3,加热12S,粉碎12S。

当粉碎2次,加热3次后,豆浆机完成工作,此时关电源,报警。

另外,程序需设3个中断:

超液位中断、液位溢出中断和液位过低中断(液位溢出中断和液位过低中断可用一个中断)。

超液位中断时,系统暂停工作,报警灯亮。

待液位下降至安全位置时,继续之前的操作;

当液位溢出断和液位过低中断时,系统直接断电结束操作,报警灯亮,蜂鸣器响。

按照上述对豆浆机控制系统的要求,软件程序应包括主程序、键盘子程序、显示子程序、两个中断子程序和报警子程序。

具体程序见附图。

用软件的编程配合硬件的设计以至于完成整个豆浆机控制系统的设计。

4.主要硬件元件分析

4.1.AT89C52芯片的介绍

图2主程序简单流程图

AT89C52提供以下标准功能:

8k字节可重擦写Flash

闪速存储器、256×

8字节内部RAM、32个可编程I/O

口线、一个6向量两级中断结构,一个全双工串行通

信口,片内振荡及时钟电路。

同时,AT89C52可降至

0Hz的静态逻辑操作,并支持两种软件可选的节电

工作模式。

空闲方式停止CPU的工作,但允许RAM

、定时/计数器、串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容。

振荡器停止工作并禁

止其它所有部件工作直到下一个硬件复位。

AT89C52的引脚封装图如右图3所示。

电源及时钟引脚

Vcc:

电源接入引脚;

GND:

接地引脚;

XTAL1:

晶体振荡器接入的一个引

图3AT89C52的引脚封装图

脚(采用外部振荡器时,此引脚接地);

XTAL2:

晶体振荡器接入的另一个引

脚(采用外部振荡器时,此引脚作为外部振荡信号的输入端)。

控制线引脚

RST:

复位信号输入引脚。

并行I/O口引脚

P0.0--P0.7:

一般I/O口引脚或数据/低位地址总线复用引脚;

P1.0--P1.7:

一般I/O口引脚

P2.0--P2.7:

一般I/O口引脚或数据/高位总线引脚;

P3.0—P3.7:

一般I/O口引脚或第二功能引脚。

4.2.74LS245驱动器

如图474LS245的引脚图,图表一为其功能表。

图中CE为使能端,AB/BA为方向控制端,A0-A7为A端的数据输入/输出,B0-B7为B端的数据输入/输出。

74LS245是一种三态输出的8总线收发驱动器,无锁存功能。

当CE为低电平时,如果AB/BA为高电平,则74LS245将A端的数据传送至B端;

如果AB/BA为低电平,则74LS245将B端的数据传送至A端。

在其他情况下不传送数据,输出呈高阻态。

CE

AB/BA

操作

L

H

A→B

B→A

×

高阻

4.3.数码显示管

8段LED数码管是一种显示设备。

它是由若干个发光二极管组成的显示字段。

有共阳极和共阴极两种连接方式,在此设计中我们都用共阴极连接,即把所有的发光二极管的阴极连接一起。

共阴数码管的公共端COM接低电平,当某个显示字段控制端接高电平时,对应的字段就点亮,当显示字段控制端接低电平时,该显示字段熄灭。

由于每个显示字段显示通常需要十到几十毫安的驱动电流,因此显示控制信号必须经过驱动电路(即通过74LS245)才能使显示器正常工作。

6.调试

6.1.接电源等待状态

当接通电源且没有按键选择模式时,电源指示灯亮。

显示器显示“00”,表示处于等待状态。

出现的问题及解决办法:

刚开始测试时,上电后显示管显示乱码。

原因可能有三:

1.编程问题,2.芯片问题。

经过反复测试,终于找出原因,改正后显示管显示正常。

6.2.模式选择

在等待状态下按下键1、键2或键3时,就会选择工作模式1、模式2或模式3。

现以模式3为例,其余两种模式雷同。

当按下键3时,显示器显示“312”,表示选择了模式3,加热时间是12S。

如图6所示。

此后显示器上模式“3”闪三次后,豆浆机开始工作。

在此过程中,由于89C51芯片的原因,使得键盘比较混乱。

原来设定的按键不会工作了。

经过反复测试,测定了芯片P2口的管脚顺序,重新定义了按键,之后工作正常。

6.3.加热状态

当显示器上模式“3”闪三次后,豆浆机开始第一次加热,加热指示灯(红灯)亮,计时显示器开始倒计数。

加热时发现豆浆机倒计时12S和现实中的12S有较大的误差。

经分析找出病因:

在定时器定时1S(20MS×

50)的过程中,没有考虑显示程序所调用的1MS时间。

经改进,将定时器定时改为19MS×

50。

定时准确了。

6.4.粉碎状态

当第一次加热计时到0时,加热结束,开始第一次粉碎。

计时显示器重新开始倒计时,粉碎指示灯(黄灯)亮。

之后又进行第二次加热,第二次粉碎。

6.5.工作完成状态

当两次粉碎,三次加热结束后,豆浆机工作完毕。

此时豆浆机主动关电源,同时报警灯亮,蜂鸣器响。

6.6.超液位中断状态

当在工作中液位超过安全位置时,豆浆机暂停工作,报警灯亮。

待液位回落后,继续接着执行之前的操作。

6.7.液体溢出中断和液位过低中断状态

在工作中当液体溢出或液位过低时,豆浆机直接停止工作,并报警,报警灯亮,蜂鸣器响。

7.总结

经过将几周的单片机课程设计,我做的豆浆机的控制系统的设计终于完成了。

虽然经过了多次曲折的修改和整理,最终还是比较圆满的实现了本次设计的基本要求。

针对这个控制系统,我比较满意的有两点:

第一,完美的安全防范措施。

其有三重安全保护,使豆浆机的使用更安全;

第二,全过程完全自动化,只需要将豆类等谷物和水加入豆浆机,并按键,片刻之后就会变成鲜美的豆浆。

操作简便,更加人性化。

在本次设计的过程中,我发现了很多的问题,并且也学会了很多东西。

此刻我已经对单片机这科有了比较深的认识,能熟练地运用相关的编程软件和仿真软件,会用单片机去做一些比较简单的控制系统。

这就是我在这次课程设计中的最大收获。

虽然我的作品成功了,但我觉得还有一些可以改进的地方。

第一:

我将同一个模式下的加热时间和粉碎时间设置成相同的,虽然程序简单了,但不是很合理;

第二:

可以再加上加热很粉碎次数的统计;

第三:

我的控制系统中加热很粉碎是通过时间来控制的,我觉得要是改用温度来控制就更好了。

等等。

8.附录

8.1.豆浆机控制程序清单

ORG0000H

LJMPMAIN

ORG0003H

LJMPINT0_RD;

INT0口中断(液位溢出和液位过低中断)入口

ORG0013H

LJMPINT1_RD;

INT1口中断(超液位中断)

ORG0030H;

置初始状态

MAIN:

MOVSP,#70H

SETBIT0;

INT0口中断触发方式为跳变触发`

SETBIT1 ;

INT1口中断触发方式为跳变触发

SETBEA;

开放中断

MOVIE,#85H;

开中断

MOVIP,#01H;

INT0中断源为高优先级,INT1中断源为低优先级

CLRP3.0;

设初值

CLRP3.1

MOV30H,#00H;

设置时间单元清零

MOV31H,#00H;

显示模式单元清零

MOV34H,#00H;

显示定时时间单元清零

MOV32H,#00H;

计时显示十位清零

MOV33H,#00H;

计时显示个位清零

SCAN_RD:

LCALLXS_RD ;

开始无键按下,显示00

LCALLSCAN_KEYB;

模式选择

JZSCAN_RD;

有键按下向下

LCALLKEY_PRSD

MOVDPTR,#JMP_RD;

设置转移表首地址

MOVA,R5;

取键值

RLA;

键值乘以2

INCR5

JMP@A+DPTR

JMP_RD:

AJMPPRO_00;

模式0

AJMPPRO_01;

模式1

AJMPPRO_02;

模式2

PRO_00:

MOV30H,#06;

定时时间为6s

AJMPLOOP_W

PRO_01:

MOV30H,#09;

定时时间为9s

AJMPLOOP_W

PRO_02:

MOV30H,#12;

定时时间为12s

;

模式选择后闪烁3次

LOOP_W:

MOV34H,30H;

调入定时时间显示数据

MOVR7,#3;

闪烁3次

LOOP_RD:

MOVR6,#30;

延时20MS的次数

LOOP0_RD:

LCALLXS_RD;

调显示程序

LCALLDL20MS

DJNZR6,LOOP0_RD;

1S

MOVR6,#25;

LOOP1_RD:

LCALLXS0_RD

LCALLDL20MS

DJNZR6,LOOP1_RD;

0.5S

DJNZR7,LOOP_RD;

开始工作

MOVR6,#02;

粉碎次数

LCALLJR_RD

G00N_GZ:

LCALLFS_RD

LCALLJR_RD

DJNZR6,G00N_GZ

LCALLBAOJ_WRD

加热子程序

JR_RD:

MOV34H,30H;

给显示单元置数

SETBP3.0;

加热

MOVR4,#50;

20MS程序循环50次

GOON_JR:

LCALLTIME_19MS;

调用定时20MS子程序

LCALLXS_RD;

显示

DJNZR4,GOON_JR;

到1S了

MOVR4,#50;

DJNZ34H,GOON_JR;

倒计时完成

CLRP3.0;

停止加热

RET

粉碎子程序

FS_RD:

MOV34H,30H;

重新给显示单元置数

SETBP3.1;

粉碎

MOVR4,#50;

GOON_FS:

LCALLXS_RD;

DJNZR4,GOON_FS;

到1S

DJNZ34H,GOON_FS;

粉碎完毕

CLRP3.1;

停止粉碎

键盘子程序

SCAN_KEYB:

MOVP2,#0EFH;

扫描有无按键按下

MOVA,P2

ANLA,#0EFH

XRLA,#0EFH

JZNO_KEY

ACALLDL20MS

ANLA,#0EFH

XRLA,#0EFH

JZNO_KEY

NO_KEY:

RET

KEY_PRSD:

MOVR4,P2

MOVR5,#00H

MOVDPTR,#KEY_TAB

CAL_VAL:

MOVA,R5

MOVCA,@A+DPTR;

查键值表

XRLA,R4

JZFIXED

INCR5;

键值加1

SJMPCAL_VAL

FIXED:

MOVA,P2;

判断按键是否释放

ANLA,#0EFH

XRLA,#0EFH

JNZFIXED

ACALLDL20MS

MOVA,P2

XRLA,#0EFH

JNZFIXED

KEY_TAB:

DB0EBH,0EDH,0EEH

DL20MS:

MOVR3,#20

DD1:

MOVR4,#200

DD2:

NOP

NOP

NOP

DJNZR4,DD2

DJNZR3,DD1

显示子程序

XS_RD:

MOV31H,R5;

调入模式显示数据

MOVR0,#31H;

显示缓存区数据

MOVP1,#00000010B;

第三个灯为显示位置

ACALLDISP_RD;

显示一位

XS0_RD:

MOVA,34H;

将定时数据分为两位

MOVB,#10

DIVAB

MOV32H,A;

十位

MOV33H,B;

个位

CJNEA,#00H,XS1_RD0;

十位是否为0

AJMPXS1_RD

XS1_RD0:

MOVR0,#32H

MOVP1,#00000100B;

第五个为显示位置

ACALLDISP_RD;

显示一位

XS1_RD:

MOVR0,#33H;

显示缓存区数据

MOVP1,#00000101B;

第六个灯为显示位置

ACALLDISP_RD;

RET

DISP_RD:

MOVDPTR,#LED_RD;

字型码表首地址

MOVA,@R0;

取显示数据

MOVCA,@A+DPTR;

求显示数据的字型码

MOVP0,A;

输出字型码

ACALLDL1MS;

稳定显示1ms

RET;

返回

延时小程序

DL1MS:

MOVR3,#200

DDD1:

DJNZR3,DDD1

;

字型码表

LED_RD:

DB3FH,06H,5BH,4FH,66H;

'

0,1,2

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2