单片机课程设计 豆浆机.docx
《单片机课程设计 豆浆机.docx》由会员分享,可在线阅读,更多相关《单片机课程设计 豆浆机.docx(17页珍藏版)》请在冰豆网上搜索。
单片机课程设计豆浆机
电气与电子信息工程学院
《单片机》课程设计报告
题目:
智能豆浆机
专业班级:
电气工程及其自动化2012级(3)班
学 号:
201240220326
姓名:
李越
同组人:
陈俊亚
指导教师:
胡蔷黄磊
设计时间:
2014年12月15日—2014年12月19日
设计地点:
K2-407单片机、微机原理实验室
课程设计任务书
2014~2015学年第1学期
一、课程设计题目:
(智能豆浆机)
二、课程设计要求
1.根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。
要求概念清楚、方案合理、方法正确、步骤完整;
2.熟悉、掌握各种外围接口电路芯片的工作原理和控制方法;
3.熟练使用单片机汇编语言或C51进行软件设计;
4.熟练使用Proteus、Keil软件进行仿真电路测试;
5.熟练使用Protel软件设计印刷电路板;
6.学会查阅有关参考资料和手册,并能正确选择有关元器件和参数;
7.编写设计报告,参考毕业设计论文格式。
(1)根据课题要求确定系统设计方案;
(2)绘制系统框图、系统仿真原理图(印刷电路板图),列出元器件明细表;
(3)计算电路参数和选择元器件,画出软件流程图(列出程序清单);
(4)打印仿真结果,根据测试结果进行误差分析与修改调整;
(5)对设计进行全面总结。
3、课程设计内容(含技术指标)
本次设计采用单片机AT89S52来实现全智能豆浆机各个功能的控制,只要功能内容如下:
1.针对食品原料的物理特性不同,在加工处理时采用三种不同的工作模式,其主要区别在于粉碎和加热时间长短不同,用蓝色、黄色LED灯分别来表示加热、粉碎过程。
2.不同的工作模式、温度、加热与粉碎设定时间,以及其剩余时间都用数码管显示出来。
3.当液位溢出或干烧状态时,实现立即停止工作,蜂鸣器发出声音产生报警(以中断方式采用拨码开关来模拟)。
4.每个模式工作完成后自动报警。
1.总体方案
1.1引言
随着我们生活水平的提高,五谷杂粮成为了当今人们的健康理念。
豆浆越来越受到大家的喜爱,豆浆不仅营养价值高,更是许多爱美、养生人士的必备补品。
今天就来介绍由单片机AT89C52来控制的全智能豆浆机。
豆浆机的工作过程主要是加热和粉碎,通过键盘来选择三种工作模式,区别仅仅是加热、粉碎时间不同。
豆浆机出现干烧、溢出时采用外部中断INT0(P3^2)和INT1(P3^3)来实现,设为高优先级中断,豆浆机立即停止工作,产生报警。
加热与粉碎分别用不同颜色的LED灯来显示,同时工作模式、粉碎加热时间以及温度显示都用数码管一一显示。
每个工作模式完成后,蜂鸣器便会发出声音来提醒用户豆浆做好了。
1.2设计思路
本次设计的智能豆浆机主要由温度传感器、防溢防干烧电路、复位电路、按键电路、加热粉碎电路、报警电路以及六位数码管组成。
其中防溢防干烧电路以中断方式采用拨码开关来模拟,采用蜂鸣器与红色LED灯进行声光报警。
加热粉碎电路中,分别采用两个不同颜色的LED灯来显示,在工作状态时,LED灯点亮。
设定工作模式有三种,模式1:
上电后按键按下1(工作模式1),豆浆机自动检测有无溢出、干烧状况,确保无误后开始正常工作,否则产生报警。
工作过程是加热----粉碎----加热----粉碎----加热。
加热3分钟,粉碎3分钟,一共是45分钟。
在程序中用1s代替1分钟,也就是45s,每个工作模式完成后豆浆机以报警来提醒用户,三种工作模式区别仅在于加热粉碎时间长短不同。
键盘上设置了1~4按键,按键1~3是用来选择工作模式,按键4是用来显示温度。
设计中采用DS18B20是一线式数字温度传感器,通过键盘扫描,当四键按下时测量液体温度,并将温度显示五秒,显示之后为初始值。
六位LED动态显示数码管,第一位来显示工作模式,第二三位显示加热粉碎设置时间,后三位则是正计时。
1.3原理框图
本智能豆浆机控制系统设计原理如下图所示:
图1-1智能豆浆机控制系统框图
系统主要有:
显示模块、时钟模块、复位模块、定时控制模块、按键模块。
说明:
AT89C52的P0口接74LS245的A0~A7口,用来驱动数码管显示,完成数据传输;单片机P1.0~P1.2口接74LS138的A,B,C端口,P1.3口接温度传感器通过数码管来显示温度,P2.1~P2.3接键盘的1、2、3来控制豆浆机模式的选择,P2.5~P2.7接键盘的A、B、C端来控制温度显示、粉碎溢出的功能;P3.2与P3.3两个外部中断来处理溢出、干烧的状况;P3.6~P3.7接两个LED灯分别表示加热和粉碎。
2.系统硬件设计
2.1单片机AT89C52
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。
P0口(P0.0~P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。
外部不扩展而单片应用时,则作一般双向I/O口用。
P0口每一个引脚可以推动8个LSTTL负载。
P2口(P2.0~P2.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。
外部不扩展而单片应用时,则作一般双向I/O口用。
每一个引脚可以推动4个LSTL负载。
P1口(P1.0~P1.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。
仅供用户作为输入输出用的端口。
P3口(P3.0~P3.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。
功能部件及特性:
1、兼容MCS51指令系统
2、8kB可反复擦写(大于1000次)FlashROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中断;
6、时钟频率0-24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;
11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
本次设计使用到的功能有:
1)复位信号输入端RST,本设计中我们使用的是上电自动复位,其是通过外部复位电路的电容充电来实现的,只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源即可完成系统复位初始化。
2)P1口作为单功能的I/O口,P1.0~P1.2接到138译码器的输入端,输出端又接245总线收发器,通过245总线收发器连接数码管的位选端。
P1.3接到温度传感器的输入端DQ,来驱动温度显示。
3)P0口在本次设计中作为低八位数据输出,由于P0口驱动负载能力有限,所以通过连接芯片245来驱动数码管。
4)P2口作为高八位地址输出线,它与P0口输出的低八位地址一起构成16位地址,可以寻址64KB的地址空间。
在设计中用来控制键盘输入。
5)两个外部中断请求INT0和INT1,低电平有效。
位于P3口的P3.2和P3.3.INT0:
外部中断请求0,中断请求信号由INT0引脚输入,中断请求标志为IE0。
INT1:
外部中断请求1,中断请求信号由INT1引脚输入,中断请求标志为IE1。
P3.6、P3.7分别用来控制加热、粉碎电路。
2.2温度检测电路设计
图2-1温度检测电路
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚T0-92小体积封装形式,温度测量范围为-55度到+125度,可编程为9位-12位A/D转换精度,测温分辨率可达0.0625度,被测温度用符号扩展的16位数字量方式串行输出。
DS18B20的技术特性:
1、独特的单线接口方式,DS18B20在与单片机相连时仅需一条线即可实现单片机与DS18B20的双向通讯,为读写以及温度转换可以从数据线本身获取能量,所以不需要外接电源。
2、测量温度范围为-55~125摄氏度;
3、工作电源为3.0~5.5V;
4、在使用中不需要任何外围元件;
5、测量结果以9~12位数字量方式串行传送;
6、每一个DS18B20包含一个特殊的序号,多个DS18B20可以同时存在于同
条总线,可以对室温进行监测和控制,引脚DQ接单片机P1.3口。
由于独特的一线接口,只需要一条口线通信,DS18B20可以使用外部电源VDD,也可以使用内部的寄生电源。
当VDD端口接3.0V—5.5V的电压时是使用外部电源;当VDD端口接地时使用了内部的寄生电源。
无论是内部寄生电源还是外部供电,电路图图所示。
2.3复位电路的设计
图2-2复位电路
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送斯密特触发器,再有片内复位电路在每个机器周期的S5P2时刻对斯密特触发器的输出进行采样,然后才得到内部复位操作所需的信号。
本设计中我们使用的是上电自动复位,其是通过外部复位电路的电容充电来实现的,只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源即可完成系统复位初始化。
如图所示
2.4报警电路的设计
图2-3报警电路
在豆浆机控制系统的设计中,我们设计了当豆浆机干烧和豆浆制作完成两种情况的蜂鸣报警,声音信号电流从单片机的P3.2脚输入到蜂鸣器发出声音,通过事先编写的程序,在单片机的控制下,系统开始工作,当上述两种情况中的一种发生时,单片机P3.2脚自动输出一个高平,使蜂鸣器通电导通,于是蜂鸣器发出报警,提醒用户。
2.5按键电路
图2-4按键电路
单片机的P2.1~P2.3接键盘的3、2、1来控制豆浆机模式的选择,按下键1时选择模式一,按下键2时选择模式二,按下键3时选择模式三;P2.5~P2.7接键盘的A、B、C端来控制温度显示、粉碎溢出的功能。
如图所示
2.6芯片74LS245
图2-574LS245引脚图
在这里用来驱动数码管,它是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
当AT89C52单片机的P0口输出到数码管,那就要考虑到数码管的亮度以及P0口带负载的能力,选用74LS245提高驱动能力。
P0口的输出经过74LS245提高驱动后,输出到数码管显示电路,AB/BA端接高电平时表示数据传输从A到B,若接低电平是则表示数据传输从B到A。
2.7芯片74LS138
图2-674LS138引脚图
当一个选通端(E1)为高电平,另两个选通端((/E2))和(/E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
A0~A对应Y0~Y7;A0,A1,A2以二进制形式输入,然后转换成十进制,对应相应Y的序号输出低电平。
2.8共阴极数码管
图2-7数码管驱动电路
采用动态扫描法显示LED数码管。
AT89C52的P1.0,P1.1,P1.2与74LS138的A,B,C连接74LS138通过74LS245与LED数码管的阴极相连来选择数码管,用P0口通过一片74LS245与数码管的阳极相连,P2口与键盘连接,传感器18B20与P1.3口相连构成温度控制。
2.9防溢、防干烧电路
使用单片机P3.2和P3.3两个外部中断来处理水位溢出、干烧状况。
(以中断方式采用拨码开关来模拟)加热和粉碎采用不同颜色的LED灯来显示工作状态。
图2-8防溢防干烧电路
3.系统软件设计
3.1系统程序流程图
图3-1系统程序流程图
4.仿真结果及其分析
4.1仿真原理图
图4-1仿真原理图
4.2仿真工作模式1
图4-2模式1的仿真
按下按键1,则表示工作在模式1状态下,数码管第一位表示工作模式,第2、3位分别表示加热、粉碎的时间,后三位是正计时。
工作1模式完成后,豆浆机将自动报警提醒用户。
图中可见,在工作第2秒时,加热状态LED灯点亮,豆浆机在加热状态,在随后的时间里会看到粉碎状态也会点亮。
4.3仿真工作模式2
图4-3模式2的仿真
按下按键2,表示工作在模式2状态下,加热4分钟,粉碎四分钟,也就是数码管前三位244.后三位是正计时。
加热LED灯与粉碎LED灯在工作状态时就会点亮。
4.4仿真工作模式3
图4-4模式3的仿真
按下按键3,表示工作在模式3状态下,加热5分钟,粉碎5分钟,也就是数码管前三位355.后三位是正计时。
加热LED灯与粉碎LED灯在工作状态时就会点亮。
4.5温度显示
图4-5温度显示仿真
按下按键4,将显示此时工作温度。
4.6报警仿真
图4-6报警仿真
任一个开关溢出或干烧合上,或是工作模式完成,则蜂鸣报警,如图可见,报警指示灯红灯点亮。
5.总结
本设计主要由单片机系统、数码管显示、键盘、报警系统组成。
系统主要实现模式选择,在规定时间内完成加热、粉碎,温度显示,在豆浆机干烧、溢出和豆浆制作完成两种情况的蜂鸣报警等功能。
由于豆浆机是在单片机的控制下运行,所以在设计中,加热、粉碎电路是用两个LED灯来模拟显示的,灯亮就表示在工作状态。
以及防止溢出、干烧电路以中断方式采用拨码开关来模拟。
与实物设计存在一定差别。
第一次完成单片机设计,发现问题重重,自己在单片机学习上有待提高,以至于在体现豆浆机的智能性上不全面,比如,在豆浆机加热时,温度到达某一值时,系统将自动停止加热,而是保温。
这样既省电又环保。
另外,中断产生后系统不能回复原来的程序,只能重新工作。
最后,关于每个工作模式完成后自动报警时,如果设置成报警蜂鸣器响3下,然后自动断电,这样在用户不能及时关掉电源时,蜂鸣器就不会一直响,噪音太大。
通过这次豆浆机的设计,受益匪浅,让我提高了对单片机的学习,keil和proteus是非常好用的工具用于单片机的编程和仿真。
对软件prteus和keil的操作更进一步的熟悉,学习单片机的种种控制原理,对芯片功能,以及单片机是如何控制有了进一步的认识。
这次的课程设计联系生活且非常有趣味,把理论知识应用到实践大大提高了动手能力,在老师和同学的帮助下,各种问题一一解决,豆浆机的设计完成比较早,做出了仿真的心情很激动。
单片机课程设计成绩评定表
设计题目:
智能豆浆机
答辩记录:
1、报警的声音信号从哪儿来?
答:
在豆浆机控制系统的设计中,我们设计了当豆浆机干烧和豆浆制作完成两种情况的蜂鸣报警,声音信号电流从单片机的P3.2脚输入到蜂鸣器发出声音,通过事先编写的程序,在单片机的控制下,系统开始工作,当上述两种情况中的一种发生时,单片机P3.2脚自动输出一个高平,使蜂鸣器通电导通,于是蜂鸣器发出报警,提醒用户
2、按键电路是如何控制数码管显示的?
答:
按下按键1,则表示工作在模式1状态下,数码管第一位表示工作模式,第2、3位分别表示加热、粉碎的时间,后三位是正计时。
按下按键2,表示工作在模式2状态下,加热4分钟,粉碎四分钟,也就是数码管前三位244.后三位是正计时。
按下按键3,表示工作在模式3状态下,加热5分钟,粉碎5分钟,也就是数码管前三位355.后三位是正计时。
按下按键4,将显示此时工作温度。
成绩评定
考勤(10%)
答辩(20%)
仿真或实物测试(20%)
设计报告(50%)
总分
(百分制)
成绩
评语:
指导教师签字:
2014年12月日