东北石油大学
课程设计
课程单片机课程设计
题目基于单片机的洗衣机控制系统院系电气信息工程学院测控技术与仪器系专业班级
学生姓名
学生学号
指导教师
2013年7 月8日
东北石油大学课程设计任务书
课程单片机课程设计
题目基于单片机的洗衣机控制系统
专业姓名学号
一、任务
以AT89C51单片机为控制核心,利用独立键盘、LED显示电路、直流电机等部分模拟一套完整的洗衣机模型控制系统。
二、设计要求
[1] 利用独立键盘模拟洗衣机操作按钮,K1为设置洗衣操作时间,K2为电机启动按钮,当K2按下后,电机正转30秒后,反转30秒后,反复执行此操作到洗衣操作时间结束。
[2] 利用LED显示单元,显示时间信息。
[3] 基本电路包括:单片机最小系统、电机驱动电路、LED显示电路等。
[4] 提交设计报告、电路图及程序源码。
三、参考资料
[1] 张毅刚.单片机原理及应用[M]. 北京:高等教育出版社.2003:160-190.
[2] 李光飞.单片机C程序设计实例指导[M].北京:北京航天航空大学出版社.2005.9.
[3]王晓娟.单片机原理及应用系统设计.[M].北京:机械工业出版社.2012.8
[4] 韩全立,赵德申.微机控制技术及应用[M]北京:机械工业出版社.2003.6
[5]. 周润景.基于Proteus的电路与单片机仿真系统设计与仿真[M]. 北京:北京航空航天大学出版社. 2005..7
[6] 万光毅.单片机实验与实践教程[M]. 北京:北京航空航天大学出版
社.2005.1.
完成期限2013.7.1 - 2013.7.10
指导教师
专业负责人
2013年6月29
目录
第1章绪论 (1)
1.1什么是单片机 (1)
1.2单片机的结构 (1)
1.3 AT89C51单片机的引脚功能 (1)
1.4 本设计任务 (5)
第2 章总体方案论证与设计 (6)
2.1 总体硬件组成框图 (6)
第3章系统硬件设计 (8)
3.1 显示电路与按键控制设计 (8)
3.2 电动机的控制电路 (8)
3.3 硬件总体电路设计 (8)
第4章系统的软件设计 (10)
4.1 主程序设计 (10)
4.2 显示程序设计 (11)
4.3 电机程序设计 (11)
结论 (12)
参考文献 (13)
附录1 仿真效果图 (14)
附录2 程序 (15)
第1章绪论
1.1什么是单片机
单片机即单片微型计算机。(Single-Chip Microcomputer ),是集CPU 、RAM 、ROM 、定时器、计数器和多种接口于一体的微控制器。这样所组成的芯片级芯片级微型计算机称为单片微型计算机(Single-Chip Microcomputer ),简称位单片微机或单片机。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。由于单片机的硬件结构与指令系统都是按工业控制要求设计的,常用于工业的检测、控制装置中,因而也称为微控制器或嵌入式控制器。单片机按用途可分为通用型和专用型两大类,按内部数据通道的宽度又可分为4位、8位、16位及32位。而51 单片机是各单片机中最有代表性的一种[1]。
1.2单片机的结构
AT89C51 芯片内部集成了CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些部件连接在一起。
AT89C51 单片机内部包含以下一些功能部件:
(1) 一个8位CPU;
(2) 一个片内振荡器和时钟电路;
(3) 4KB 的ROM
(4) 128x8字节内部RAM;
(5) 可寻址64KB的外ROM和外RAM控制电路;
(6) 两个16位定时/计数器;
(7) 21个特殊功能寄存器;
(8) 4个8位并行I/O口,共32条可编程I/O端线;
(9) 一个可编程全双工串行口;
(10) 5个中断源;
1.3 AT89C51单片机的引脚功能
AT89C51单片机一般采用双列直插DIP封装,共40个引脚,图1-2为单片机引脚排列图。40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。
图1-2 单片机引脚排列图
1.3.1电源
(1)VCC(40脚)——芯片电源,接+5V;
(2)VSS(GND20脚)——接地端。
1.3.2时钟
XTAL1(19脚)、XTAL2(18脚)——晶体振荡电路反相输入端和输出端。
使用内部振荡电路时外接石英晶体如图1-3[2]。
图1-3晶体振荡电路
1.3.3控制信号引脚线
控制线共有4根,其中3根是复用线。所谓复用线是指具有两种功能,正常使用时是一种功能,在某种条件下是另一种功能。
(1)ALE/PROG(30脚)地址锁存允许/片内EPROM编程脉冲。
①ALE功能:用来锁存P0口送出的低8位地址。
AT89C51在并行扩展外存储器(包括并行扩展I/O口)时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。那么如何区分是低8位地址还是8位数据信号呢?当ALE为高电平时,P0口传送的是低8位地址信号;ALE为低电平时,P0口传送的是8位数据信号。在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号[3]。
②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
PSEN(29脚)——外ROM读选通信号。
80C51读外ROM时,没个机器周期内PSEN两次有效输出。PSEN可作为外ROM芯片输出允许OE的选通信号。在读内ROM或读外RAM时,PSEN无效。PSEN可驱动8个LSTTL门电路。
(3) RST/Vpd(9脚)——复位/备用电源。
①正常工作时,RST(Reset)端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,80C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行指令。8051的复位方式可以是自动复位,也可以是手动复位,见下图1—4上电自动复位电路和图1—5手动复位电路。
图1-4上电自动复位电路图1-5 手动复位电路
②Vpd功能:在Vcc掉电情况下,该引脚可接上备用电源,由Vpd向片内供电,以保持片内RAM中的数据不丢失[4]。
(4) EA/VPP(31脚)——内外ROM选择/片内EPROM编程电源。
①EA功能:正常工作时,EA为内外ROM选择端。AT89C51单片机ROM 寻址范围为64KB,其中4KB在片内,60KB在片外。当EA保持高电平时,先访问内部ROM,但当PC(程序计数器)值超过4KB(0FFFH)时,将自动转向
执行外ROM中的程序。当EA保持低电平时,则CPU只访问外ROM,当EA 为高电平时,则CPU要先对内部ROM访问,然后自动延至外部超过4KB的ROM。
②Vpp功能:片内有EPROM的芯片,在EPROM编程期间,此引脚用于施加编程电源Vpp。
1.3.4输入/输出引脚(I/O口线)
(1)P0口(32—39脚)——8位双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时, P0口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时, P0口可用于分时传送低8位地址(地址总线)和8位数据信号(数据总线)。P0口能驱动8个LSTTL门。(2)P1口(1——8脚)——8位准双向I/O 口(“准双向”是指该口内部有固定的上拉电阻)。P1口能驱动为4个LSTTL门。
(3) P2口(21——28脚)——8位准双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时, P2口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时, P2口可用于传送高8位地址(属地址总线) 。P2口能驱动4个LSTTL门。引脚上拉电阻同P1口。在结构上,P2口比P1口多一个输出控制部分[5]。
(4) P3口(10——17脚)——8位准双向I/O口。可作一般I/O口用,同时P3口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。P3口驱动能力为4个LSTTL门。
P3口第二功能如下:
P3.0——RXD:串行口输入端;
P3.1——TXD:串行口输出端;
P3.2——INT0:外部中断0请求输入端;
P3.3——INT1:外部中断1请求输入端
P3.4——T0:定时/计数器0外部信号输入端;
P3.5——T1:定时/计数器1外部信号输入端;
P3.6——WR:外RAM写选通信号输出端;
P3.7——RD:外RAM读选通信号输出端。
上述4个I/O口,各有各的用途。在不并行扩展外存储器(包括并行扩展I/O 口)时, 4个I/O口都可作为双向I/O口用。在并行扩展外存储器(包括并行扩展I/O 口)时, P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号。P3口根据需要常用于第二功能,真正可提供给用户使用的I/O口是P1口和一部分未用作第二功能的P3口端。
1.4 本设计任务
单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。
由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。
单片机主要用于计算机外设、实时控制、仪器仪表、通信和家用电器等各个领域,是计算机技术和电子技术的综合性应用,在不同应用场合其技术要求各不相同,因此设计方法和研制的步骤不完全一样。单片机应用系统由硬件和软件组成。硬件是指MCU、存储器、I/O接口和外设等物理器件的有机组合。软件是指系统监控程序的总称。在开发的过程中,它们的设计不能完全分开,二者需要互相配合、不断调整才能组成高性能的应用系统。单片机应用系统的开发包括系统总体设计、硬件设计、软件设计、系统调试等几个阶段,它们有时交叉进行。
第2 章总体方案论证与设计
本系统采用单片机AT89C51为洗衣机的控制核心,系统主要包括状态显示模块、电机驱动模等。
洗涤时间需要显示出来,我们需要选择显示状态的器件。有LED数码管和LCD液晶显示可供我们选择。
LCD是液晶显示器英文名称的缩写,液晶显示器是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的特征,达到白底黑字或黑底白字显示的目的。
LCD有明显的优点:工作电流小其功耗很低;尺寸小;字迹清晰、美观、使人舒服;寿命长,使用方便且能够显示四行汉字,更加人性化的特点。液晶动态显示功能强大,可以实现多种信息的显示,提供了一个友好的用户界面,使系统更加直观,人性化。但是LCD液晶显示器价格贵,且占I/O端口比较多LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。
LED 数码管的主要特点如下:(1) 编程容易,硬件电路调试简单。(2)能在低电压、小电流条件下驱动发光,能与CMOS、ITL 电路兼容。(3)发光响应时间极短(<0.1μs),高频特性好,单色性好,亮度高。(4)体积小,重量轻,抗冲击性能好。(5)寿命长,使用寿命在10 万小时以上,甚至可达100 万小时。成本低。因此它被广泛用作数字仪器仪表、数控装置、计算机的数显器件[6]。
本次设计只是显示时间,所以采用LED就可以达到目的了。
直流电机作为驱动部分,需要来回正反转动,我们可以利用输出高低电平控制三极管的导通来控制直流电机的正负极性,即简单又方便,还可减少器件损耗。
2.1 总体硬件组成框图
图2-1控制系统的电路组成
第3章系统硬件设计
3.1 显示电路与按键控制设计
LED显示器有静态显示和动态显示2种方式。
LED显示器工作于静态显示方式时,各位的共阴极(共阳极)连接在一起并接地(或+5V);每位的段码线(a-dp)分别与一个8位的锁存器输出相连。之所以称之为静态显示,是因为各个LED的显示字符一经确定,相应锁存器锁存的段码输出将维持不变,直到送入另一个的段码为止。正因为如此,静态显示器的亮度都较高,但静态现实的缺点是占用口线太多,如果显示器的位数太多,则需要加锁存器,因此一般情况下采用动态显示[7]。
在多位LED显示时,为简化硬件电路,通常将所有位的段码线相应段并联在一起,由1个8位I/O口控制,形成段码线的多路复用,而各位的共阴极或共阳极分别由相应的I/O线控制,形成各位的分时选通
显示部分主要是通过一个两位数码管显示系统的工作时间信息。该数码管共有10个管脚,其中A——G 7个管脚为数码管的段选,1和2为数码管的位选,DP为小数点显示。其中数码管的段选与单片机的P0.0——P0.6口相连接,数码管的位选1和2分别与单片机的P2.0和P2.1相连接。
该系统通过两个独立按键来控制系统的启动、停止和时间设置,两个键k1,k2分别为:时间增加和启动。两个键分别与单片机的P1.0和P1.2口相连接:
3.2 电动机的控制电路
电动机控制部分由一个直流电机,四个PNP三极管,四个电阻组成。电动机有四个控制端,D1,D2,D3,D4分别于P1.6,P1.7,P3.6,P3.7相连。当洗衣机接到“正转”指令时P1.6,P1.7输出高电平,P3.6,P3.7输出低电平,使得Q1,Q4,导通Q2,Q3断开,从而使得电机正转。
当洗衣机接到“反转”的指令时P1.6,P1.7输出低电平,P3.6,P3.7输出高电平,使得Q1,Q4断开,Q2,Q3导通,从而使得电机反转。
3.3 硬件总体电路设计
硬件电路主要有这几部分组成:
1.单片机最小系统:(1)复位电路(2)时钟电路(3)AT89C51;
2.按键控制部分
3.LED数码显示部分 5.报警部分7.电动机部分
该电路主要组成部件是由AT89C51单片机、电动机、蜂鸣器、LED数码管、及2只按键组成。其组成如图3.1所示。电动机有4个控制端,两端控制电动机正转且与P1.6,P3.7相连,另两端控制电动机的反转且与P1.7,P3.6相连。显示器为一个两位数码管,P0控制显示器的段选,P2控制显示器的位选。蜂鸣器有由P1.5控制,当P1.5输出为“0”时蜂鸣器发声。本系统采用12M的晶体振荡器定时器0设置为每隔50ms产生一次中断[8]。
图3-1电路原理图
第4章系统的软件设计
4.1 主程序设计
本系统中单片机89C51的主要功能就是实现LED数码管上时间的显示,电机的转动,蜂鸣器报警等功能。其主程序流程如图4-1所示[9]。
4.2 显示程序设计
显示部分使用LED数码管显示,在定时器0的作用下,显示洗衣的剩余时间[10]。
4.3 电机程序设计
电机由四个端口连接的三极管控制,由连接端口发出高低电平控制电机正反
转。
图4-3电机程序流程图
结论
基于单片机的洗衣机控制系统的设计是基于单片机及其接口技术、计算机技术、微电子技术综合应用的设计。实现了对洗衣机整个洗衣过程的控制包括时间参数输入、洗衣、脱水和结束报警四个阶段。控制系统主要由开关控制电路、电机电路,显示电路,蜂鸣器电路,最小系统五大模块构成。控制系统负责控制洗衣机的工作过程,主要由AT89C51单片机、7段两位共阳LED数码管、按键、蜂鸣器、电动机组成。实验调试使用划分模块的方式,方便找出问题并改正。编程用到定时中断,使数码管显示出剩余时间。
参考文献
[1] 张毅刚.单片机原理及应用[M]. 北京:高等教育出版社.2003:160-190.
[2] 李光飞.单片机C程序设计实例指导[M].北京:北京航天航空大学出版社.2005.9.
[3]王晓娟.单片机原理及应用系统设计.[M].北京:机械工业出版社.2012.8
[4] 韩全立,赵德申.微机控制技术及应用[M]北京:机械工业出版社.2003.6
[5]. 周润景.基于Proteus的电路与单片机仿真系统设计与仿真[M]. 北京:北京航空航天大学出版社. 2005..7
[6] 万光毅.单片机实验与实践教程[M]. 北京:北京航空航天大学出版社.2005.1.
[7] 马忠梅.单片机的C 语言应用程序设计[M].北京:北京航空航天大学出版社.2006.5
[8] 彭伟.单片机c语言程序设计实训100例——基于8051+Proteus仿真[M].北京:电子工业出版社. 2009.5
[9] 林立.单片机原理及应用——基于Proteus和Keil C[M].北京:电子工业出版社.2009.2
[10] 彭为. 单片机典型系统设计实例精讲[M]. 北京:电子工业出版社,2006..3
附录1 仿真效果图
附录2 程序
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit d1=P3^6;
sbit d2=P3^7;
sbit d3=P1^6;
sbit d4=P1^7;
sbit key1=P1^0;
sbit key2=P1^2;
sbit feng_m_qi=P1^5;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x9 2,0x82,0xf8,0x80,0x90};
uint a,sm1,sm2,i;
int time;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uint sm1,uint sm2)
{
P2=0x01;
P0=table[sm1];
delay(2);
P0=0xFF;
P2=0x02;
P0=table[sm2];
delay(2);
P0=0xFF; }
void keyscan()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
while(key1==0);
time=time+1;
}
}
if(key2==0)
{ delay(10);
TR0=1;
}
}
void dingshi() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20)
{
a=0;
time--;
if(time<=0)
{
d1=1;
d2=0;
d3=0;
d4=1;
delay(600);
d1=0;
d2=0;
d3=0;
d4=0;
feng_m_qi=0;
delay(5000);
feng_m_qi=1;
}
}
}
void xidi()
{ if(key2==0)
{ delay(10);
for(i=0;i