电脑电饭煲控制器设计
辽 宁 工 业 大 学
单片机原理及接口技术 课程设计(论文)
题目: 电脑电饭煲控制器设计
院(系): 电气工程学院 专业班级: 电气 学 号: 学生姓名:
指导教师: (签字) 起止时间:2013.06.24-2013.07.12
课程设计(论文)任务及评语
院(系):电气工程学院 教研室:电气教研室 注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算
摘 要
本课程设计对电脑电饭煲控制器进行设计,在硬件部分,本文在详细说明了单片机控制的温控表电路和定时电路的设计原理及其构造的基础上,对其各个部分进行了设计。即分别对电源电路、CPU 最小系统、温度传感器、温度测量通道、复位电路、时钟电路、定时显示电路、加热驱动电路进行了设计。CPU 最小系统由单片机、片外RAM 、键盘/显示接口、复位电路构成。其中CPU 选用的是美国ATMEL 公司生产的AT89C51单片机。温度测量通道主要由K 型热电偶、AD595芯片、A/D转换器ICL7135芯片构成。
在软件部分采用了模块化的设计方法。本系统的程序设计主要包括主程序流程图和汇编程序。
关键词:CPU ;传感器;驱动电路;
目 录
第1章 绪论 .......................................................... 1
1.1 电脑电饭煲概况 ............................................... 1 1.2 本文研究内容 ................................................. 1 第2章 CPU最小系统设计 .............................................. 2
2.1 电脑电饭煲总体设计方案 ....................................... 2 2.2 时钟电路 ..................................................... 2 2.3 复位电路 ..................................................... 3 2.4 CPU 最小系统图 . ............................................... 4 2.5 CPU 的选择 . ................................................... 4 2.6 显示电路 ..................................................... 6 2.7 电源电路 ..................................................... 6 2.8 加热驱动电路的设计 ........................................... 7 2.9 温度采集部分电路 ............................................. 8 第3章 系统软件设计 ................................................. 10
3.1 主程序流程 .................................................. 10 3.2 子程序介绍 .................................................. 11
3.2.1 诊断子程序 .......................................................................................... 11 3.2.2 键盘扫描子程序 .................................................................................. 11 3.2.3 温度采集子程序 .................................................................................. 11 3.3 程序清单 .................................................... 11 第4章 课程设计总结 ................................................. 15 参考文献 ............................................................ 16
第1章 绪论
1.1 电脑电饭煲概况
目前,市场上的电饭煲大部分采用机械式或者是采用固定功率的方式加热,能源利用率低,功能单一,难以满足人们日益增长的生活需求。因此,开发功能齐全,安全可靠的微电脑电饭煲是非常用必要的。电饭煲从机械式原理到现在的智能电饭煲,期间经历了许多的阶段。电饭煲发挥高新技术优势,以美味炊煮为主导,使产品更加丰富与时尚化,现已形成微电脑、电脑与机械三大类型、十大不同款式。机械电饭煲虽然价格方面体现它的优势之外,其他方面就很难满足人们对现代生活高品质的需求。微电脑或电脑控制的智能电饭煲符合现代人的要求,人性化的界面设计,使得人们一眼看出当前工作状态,让您更安心,各种烹调过程全部由电脑自动控制,并且大多的智能电饭煲采用太空“黑晶”内胆,超硬耐磨,恒久美观,所有的这些特点符合现代人的省时、省力、耐用的观念。
1.2 本文研究内容
本文主要介绍利用89C51芯片来对电饭煲的过程进行控制,工作频率为12MHz ,工作电压5V ,有64KB 的RAM 和64K 字节的 ROM ,有32个可编程I/O口,8通道10位A/D转换器,2个16位定时/计数器,有低电压、上电、看门狗、外部信号、错误地址复位,并且有一个蜂鸣器输出口。
第2章 CPU 最小系统设计
2.1 电脑电饭煲总体设计方案
利用89C51设计的智能电饭煲控制系统原理框图如图2.1所示,通过按键来选择功能模式、显示电路完成显示当前状态和定时时间;通过温度传感器来对温度进行采样;通过MCU 的控制最终实现对继电器的控制,从而来控制对加热盘的加热与否,电源部分完成对单片机系统和外围电路提供5V 电源,并且对加热盘进行加热
图2.1 控制系统构成框图
2.2 时钟电路
计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的,这个脉冲是由单片机控制器中的时序电路发出的。时钟电路用于产生单片机所需的时钟信号,
时钟信号可以由两种方式产生:内部时钟方式和外部时钟方式。如图2.2所示
图2.2 时钟电路
.
.
1
.
.
C1
2
2.3 复位电路
复位电路的设计在整个原理的设计中非常重要,并且要结合本项目的功能要求进行复位电路的设计。复位操作可以使单片机初始化,也可以使死机状态下的单片机重新启动,因此非常重要。单片机的复位都是靠外部复位电路来实现的,在时钟电路工作后,只要在单片机的RESET 引脚上出现24个时钟振荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。
复位电路如图2.3所示
2.4 CPU 最小系统图
图2.4 CPU 最小系统图
. .
.
.
.
. .
2.5 CPU 的选择
本系统采用89C51单片机,此芯片是一种带4KB Flash ROM程序存储器的低电压、高性能的8位微处理器。
(1)基本特性
与MCS —51系列单片机兼容;
片内有4KB 可重新编程的Flash 程序存储器,可擦/写1000次以上; 全静态逻辑,工作频率范围:0~24Hz; 三级程序存储器加密; 128B 字节片内RAM ; 32个可编程I/O口;
提供待机和掉电两种省电工作方式; 两个16位定时/计数器;
有5个中断矢量,允许6个中断源;
一个全双工串行口;具有与工业标准80C51一致的指令集和引脚布置。 AT89C51是低功耗高性能COMS8位单片机。它除了具有与MCS —51完全兼容的若干特性外,最为突出的优点就是片内集成了4K 字节Flash PEROM (Programable Erasable Read Only Memory),可存放应用程序,这个Flash 程序存储器允许用一般的编程器离线编程外,还允许在应用系统中实现在线编程,并且还提供了对程序进行三级加密保护的功能。AT89C51的另一个特点是工作速度更高,晶振频率可高达24MHz ,一个周期仅500μs,比MSC —51快了一倍。
(2)AT89C51增加的功能
AT89C51引脚布置和定义与MCS —51完全兼容,电脑由于它具有片内Fla 程序存储器,一些引脚在编程时能提供专门的用途。
P0口在编程时接受程序代码,校验时输出程序代码。校验时要求将P0口由外部电路上拉(尽管所有的I/O端口都具有内置上拉电路);
P1口在编程期间有内部多路开关切换到地址总线,接受编程器送来的低8位地址信息;
P2口在编程期间接受编程器送来的高4位地址信息,同时P2口的另外两个引脚(P2.6,P2.7)还接受编程与校验的有关控制信息;
P3口除了具有与MCS —51相同的双功能外,在编程期间,P3.6,P3.7两端口线还接受有关的控制信息;
ALE/PROG端除了输出地址锁存允许(ALE )脉冲外,在编程期间还作为编程脉冲输入端,参与控制对Flash 存储器的读、写、加密、擦除等工作。一般情况下,ALE 端输出频率为fose/6的脉冲,可作为一个要求并不很严格的时钟源去控制其它芯片和设备。该(ALE )脉冲串仅在每次外部数据存储器存取周期仅有一个ALE 周期被跳过。如果需要,AT89C51的ALE 脉冲输出可以禁止,只要对特殊寄存器区域8EH 单元的bit0写入1就禁止了ALE ,这时仅当单片机处于MOVX 或MOVC 指令周期时ALE 才生效,否则该引脚呈现弱上拉逻辑状态。如果AT89C51构成的系统使用外部存储器,即处于外部程序执行模式,对8EH 的bit 置1将是无效的,不会对系统的正常工作产生影响;
/EA/Vpp端在寻址片内4KB Flash程序存储器(000H ——FFFH )时,必须连到Vcc ,如果将此端连到GND 端,将迫使单片机寻址外部000H ——FFFH 范围的程序存储器。如果加密位被编程了,AT89C51的CPU 将对/EA的状态不得与实际使用的内部或外部程序存储器的状态发生矛盾。对那些需要12V 编程电压的器件。这个端子还接受12V 编程使用电压(Vpp )。
2.6 显示电路
显示电路由共阳极数码管和10个LED 组成,通过单片机位选和所送的数据来点亮相应的LED 和数码管的显示状态。其电路原理图如图2.5所示:
图2.5显示电路原理图
2.7 电源电路
电源部分为单片机提供+5V的直流稳压源,并且通过降压、整流、滤波之后的+14V电压对继电器进行供电,通过控制三极管射极的导通与否来控制继电器的工作状态。电源电路原理图如图2.6所示
图2.6电源电路
2.8 加热驱动电路的设计
为保证驱动电路可靠工作,其驱动电路应满足如下要求: 1)动态驱动能力强,能提供驱动脉冲,使加热电路迅速导通。
2)能提供适当的正向偏压和足够的反向偏压,使加热电路可靠的开通和关断,一般取正偏电压为+15V,反偏电压为-10V 为宜。
3) 有足够的输入输出电气隔离能力,使信号电路与栅极驱动电路隔离,且具有灵敏的短路、过流保护功能。
其中HP3101是高速光耦,用于实现输入输出信号的电气隔离,Q1,Q2组成功率放大电路,采用+15V和-10V 双电源供电,保证正负偏压满足要求。OUT1、OUT3来自控制电路。
该驱动电路能安全接受输入信号,在接到正确的控制信号后对加热电路进行驱动,加热电路开始工作,对外部进行加热,最大功率可达到2000W 。从而实现电饭煲的加热过程。
驱动电路工作原理电路如图2.7所示
图2.7 驱动电路工作原理电路
2.9 温度采集部分电路
J2和J3是温度传感器的两个接口,其中J2和J3分别是顶盖和底盘温度传感器的接口,单片机检测的信号实际上是与温度传感器分压的电阻的电压值,因为温度传感器的电阻值会随温度的上升而减小,所以分压电阻的电压值间接反映了某一时刻的温度,电路原理图如图2.8所示:
图2.8温度传感器
热电阻传感器主要用于测量温度及与温度有关的参数,在工业生产中被广泛用于测量-200到+500℃范围内的温度,按照热电阻的热度不同,热电阻可以分为金属热电阻和半导体热电阻两类,前者称为热电阻,后者称为热敏电阻。以热电阻或热敏电阻为主要器件制成的传感器称为热电阻传感器或热敏电阻传感器。
根据本设计中所需要测量的温度范围、敏感度、精确度以及考虑其经济性,热敏电阻传感器为最合适的测温元件。
由金属氧化物的粉末按照一定比例混合烧结而成的热敏电阻是今年来出现的一种新型半导体测温元件。热敏电阻的工作原理简单,即在温度的作用下,热敏电阻的有关参数将发生变化,从而变换成电量输出。以具有负温度系数的热敏电阻为例,这类热敏电阻随着温度的上升而阻值下降,并在下降过程中把温度量的变化转换成电量的变化。
本系统的对温度控制的要求是0~150℃,所以选用热电偶作测温元件,热电偶具有结构简单、热容量小、材料的互换性好,滞后效应小,信号能够远距离传送和多点测量,便于检测和控制等优点。在这里根据本系统的测温范围选用国际标准化热电偶的K 标志热电偶,K 型热电偶属于廉金属热电偶,故价格便宜。鉴于以上情况,在设计温度测量系统的前向通道中,从简化电路及程序设计保证采集精度出发,在以K 型热电偶作为温度传感器时选择集成温度放大器AD595使热电偶的冷端温度得到补偿,并使之输出信号放大、线性化选择ICL7135作为A/D转换器,利用它的“BUSY"(引脚21) 输出特性辅以单片机89C51的定时器直接计数,通过一个简单算法就可以得到最终的温度值.
第3章 系统软件设计
3.1 主程序流程
从样机分析中大致设计整个系统,整个系统输入包括2个温度传感器,5个按键;输出包括2位七段数码管、10个发光二极管、继电器控制信号等。根据控制功能,将程序设计为几个主要的模块,程序主流程见图3.1所示:
图3.1控制器软件流程图
3.2 子程序介绍
3.2.1 诊断子程序
诊断程序主要进行温度采集并判断传感器是否良好,主要对2个温度传感器连续检测20次,若测到的数据不在范围内(温度范围:0℃~150℃),则表明传感器短路或断路错误,数码显示“E ”,并禁止按键操作。
3.2.2 键盘扫描子程序
程序每循环一次扫描一次键盘,如果扫描到有键按下,则暂存键值,如果连续5次扫描到的键值都一样,则认为是稳定的键值。
3.2.3 温度采集子程序
热敏电阻灵敏度高,为了防止干扰及其它原因导致测出的温度值变化太快,引起控制部件频繁动作,温度采集采用滑动平均值滤波方法。即在同一个通道上连续采集三个数据,取其中的中间值。
3.3 程序清单
系统共有2位七段数码管显示及10个发光二极管显示。数码管主要有6种状态需要显示:待机状态、出错显示、焖饭、保温、煮饭中及定时时间显示。发光二极管显示所选择的功能、开始及保温状态。功能显示需采用轮循方式,在按下开始键之前,开始灯闪烁。进入保温状态后,保温指示灯亮。LED 显示程序由位码扫描子程序及数码显示状态选定子程序组成。
计时子程序
.iram
.public _end_120 .var _end_120=0 .code
.public _Time_Count _Time_Count: .proc
r1=[_STATUS] cmp r1,0 je Count_end
r1=[T1_1] //取第一个数据//
r1+=[T1_2] //第一个数据和第二个数据相加// r1+=[T1_3] //前三个数据相加// r1+=[T1_4] //前四个数据相加// cmp r1,0 //和与0相比较//
je Time2_Count //等于0转到定时2的计数// r1=[_end_120]
cmp r1,120 //是否到了120次//
jne ADD_1 //不到转向ADD_1继续相加// r1=0x00
[_end_120]=r1 //到了清0为下次中断作准备// call _Time_count_down1 //调用预置减子程序// jmp Time_Count_Over ADD_1: r1=r1+1 [_end_120]=r1 Time_Count_Over:
r1=[P_IOA_Buffer] //一次中断计时后秒点反相// r2=0x8000 r1^=r2
[P_IOA_Data]=r1 jmp Count_end
Time2_Count:r1=[T2_1] //取第一个数据//
r1+=[T2_2] //第一个数据和第二个数据相加// r1+=[T2_3] //前三个数据相加// r1+=[T2_4] //前四个数据相加// cmp r1,0 je Count_end r1=[_end_120] cmp r1,120 jne ADD_2 r1=0x00
[_end_120]=r1
call _Time_count_down2 jmp Count_end ADD_2: r1+=1 [_end_120]=r1 Count_end: retf .endp
中断子程序IRQ3 .text .public _IRQ3 _IRQ3:
push r1,r5 to [sp] r1=0x0080 r1&=[P_INT_Ctrl] jnz IRQ3_Is_Key r1=0x0100 r1&=[P_INT_Ctrl] jnz IRQ3_Is_Exit1 r1=0x0200 r1&=[P_INT_Ctrl] jnz IRQ3_Is_Exit2 IRQ3_Is_Key:
[P_INT_Clear]=r1 pop r1,r5 from [sp] reti IRQ3_Is_Exit1:
[P_INT_Clear]=r1
call _F_Export pop r1,r5 from [sp] reti IRQ3_Is_Exit2:
[P_INT_Clear]=r1 pop r1,r5 from [sp] reti
//调用功率输出子程序//
键盘扫描子程序
.define C_DebounceCnt 5; //去抖延时循环次数// .ram
.var Key_Buff; //本次键值存储单元// .var Key_Debounce; //计数单元// .code
.public _KeyScan; _KeyScan:.proc
r2=[P_IOA_Data] r2&=0x001F //读键口//
jnz F_SomeKeyIsPressed //有键按下跳转进行按键比较// r1=0x0000 [Key_Buff]=r1 retf
F_SomeKeyIsPressed: //按键比较// r1=[Key_Buff] //读上次键值// [Key_Buff]=r2 //存本次键值// cmp r1,r2
je L_KS_StableTWOSample //若按键相同跳转进行去抖延时// r1=C_DebounceCnt //初始化计数单元// [Key_Debounce]=r1 r1=0x0010 retf
L_KS_StableTWOSample: //去抖延时// r1=[Key_Debounce]
jz L_KS_StableOverDebounce //计数结束跳转形成键码// r1-=1
[Key_Debounce]=r1 r1=0x0010 retf
L_KS_StableOverDebounce: //形成键码// r1=[Key_Buff] retf .endp
第4章 课程设计总结
家用电器的智能化极大的方便了人们的日常生活,本文从硬件设计上,阐述了电路设计的原理及连接。在软件设计上阐述了各个功能的程序流程。在煮饭的软件实现中引入了电脑电饭煲控制器的理论,着重写了如何进行温度的实时控制,本文中论述了其原理并列举电路图,作为支持理论的依据。本文阐述的功能并不是很全面,只是实现目前电饭煲普遍能实现的功能,其他功能有待今后进一步开发实现。
本课程设计对电脑电饭煲控制器进行设计,在硬件部分,本文在详细说明了单片机控制的温控表电路和定时电路的设计原理及其构造的基础上,对其各个部分进行了设计。即分别对电源电路、CPU 最小系统、温度传感器、温度测量通道、定时显示电路、加热驱动电路进行了设计。CPU 最小系统由单片机、片外RAM 、键盘/显示接口、复位电路构成。其中CPU 选用的是美国ATMEL 公司生产的AT89C51单片机。温度测量通道主要由K 型热电偶、AD595芯片、A/D转换器ICL7135芯片构成。在软件部分采用了模块化的设计方法。本系统的程序设计主要包括主程序流程图和汇编程序
参考文献
[1] 梅丽凤等编著 单片机原理及接口技术 清华大学出版社2009.7
[2] 刘春玲,王咏,田国红. 电力参数数字化测量的常用算法研究[J] . 辽宁工学院
学报,2001(12),17~19
[3] 于海生 编著 微型计算机控制技术 清华大学出版社2003.4
[4] 黄俊,王兆安. 电力电子交流技术(第三版). 西安:西安交通大学出版社,
2004.12
[5] 赵晶 主编 Prote199高级应用,人民邮电出版社,2000
[6] 魏民. 智能型电力参数测试仪的研究与设计[D]. 硕士论文. 自动化学院, 武汉
理工大学,2003.5
[7] 钱伟. 非正弦波形有功功率的采样测量. 电工技术学报. 1996(4) [8] 龙可微. 一种新型电力参数检侧装置[J]. 电工技术. 1999.12
[9] 孙佐 单片机实现的电力参数测量装置[J]. 安徽池州:池州师专学报,2006(10) [10] 刘春玲,王咏,田国红. 电力参数数字化测量的常用算法研究[J] .辽宁工学院
学报,2001(12)
[11] 龙可微. 一种新型电力参数检侧装置[J].电工技术.1999年12期,26-28. [12] 张俊谟.SoC 单片机原理与应用——基于C8051F 系列[M].北京:北京航空航
天大学出版社,2007(4).