当前位置:文档之家› 洗衣机部分功能实现

洗衣机部分功能实现

课程设计(单片机)题 目 洗衣机部分功能控制设计姓 名 金超豪 学 号 3100403023 专业班级 10通信工程1班 指导教师 李林功 分 院 信息科学与工程学院 完成日期 2013年5月31日宁波理工学院目录第1章电路组成........................... 错误!未定义书签。

1.1 AT89C51芯片...................... 错误!未定义书签。

1.1.1 AT89C51的结构.................. 错误!未定义书签。

1.1.2 AT89C51的引脚功能 ........... 错误!未定义书签。

1.2 复位电路.......................... 错误!未定义书签。

1.3 时钟.............................. 错误!未定义书签。

1.4 报警系统.......................... 错误!未定义书签。

1.5 洗衣机工作模式显示................ 错误!未定义书签。

1.6 按键控制模块...................... 错误!未定义书签。

1.7 洗衣机显示模块.................... 错误!未定义书签。

第2章软件控制......................... 错误!未定义书签。

2.1 主程序设计........................ 错误!未定义书签。

2.2 动态数码管显示控制................ 错误!未定义书签。

2.3 状态选择按键的控制................ 错误!未定义书签。

2.4 暂停按键的控制.................... 错误!未定义书签。

2.5 定时器设置........................ 错误!未定义书签。

2.6 蜂鸣器控制........................ 错误!未定义书签。

附录................................... 错误!未定义书签。

附录一................................. 错误!未定义书签。

附录二................................. 错误!未定义书签。

第1章电路组成1.1 AT89C51芯片1.1.1 AT89C51的结构AT89C51 的封装形式是DIP40。

如图1.1所示。

图1.1AT89C51的封装形式1.1.2 AT89C51的引脚功能1. Vcc:电源电压2.GND:接地3. P0口P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗转入端用。

4. Pl口P1是—个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

5. P2口P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

6.P3口①可以作为输入/输出口,外接输入/输出设备;②作为第二功能使用,每一位功能定义如表1.1所示。

表1.1 P3口的第二功能7.RST复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

8.ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟振器频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。

9.PSEN程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时.每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。

10.EA/VPPEA =0,单片机只访问外部程序存储器。

EA =1,单片机访问内部程序存储器。

11.XTAL1振荡器反相放大器的及内部时钟发生器的输入端。

12.XTAL2振荡器反相放大器的输出端。

1.2 复位电路如图1.2所示上电复位/按键式复位电路电路图。

当加电时,电容C3上的电压不能突变,RST引脚为高电平,开始复位;电容C不断充电,电阻R上的压降逐渐下降,当电容C充满电后,电路相当于开路,复位结束。

复位的时间与充电的时间有关,充电时间越长复位时间越长,增大电容或电阻都可以增加复位的时间。

另外当按键按下时,通过两电阻分压,使RST端产生高电平。

按键按下的时间决定了复位的时间。

图1.2 上电复位/按键式复位电路1.3 时钟如图1.3所示是单片机时钟电路。

时钟电路是由振荡器和分频器组成,振荡器产生基本的振荡信号,然后进行分频,得到相应的时钟。

此次大作业我用的是内部振荡器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

把放大器与作为反馈元器件的晶体振荡器和陶瓷电容连接,就构成了自激振荡器,其输出就是时钟脉冲。

图1.3 内部振荡器电路1.4 报警系统如图1.4所示是设计的报警系统,它的作用是当洗衣机工序全部完成时进行报警。

电路主要有PNP和蜂鸣器组成。

其中PNP三极管是起到放大电流的作用,使有足够的电流驱动蜂鸣器报警。

另外三极管基极接在P1.5口,低电平有效,至P1.5为低电平时,蜂鸣器鸣叫。

图1.4 洗衣机报警系统1.5 洗衣机工作模式显示如图1.5为设计的洗衣机工作模式显示模块,该模块由三盏LED灯和三个220欧姆的电阻组成,电阻起到限流的作用,从而保护LED灯。

三盏灯分别接在P1.0,P1.1,P1.2,低电平有效,通过控制该三个位的高低电平来控制三盏灯的亮灭。

图1.5 洗衣机工作模式显示模块1.6 按键控制模块如图1.6为洗衣机的按键控制模块,该模块设有三个按键,分别的作用是启动洗衣机,暂停,洗衣机工作模式选择。

三个按键的控制位分别为P1.7,P3.2,P3.3,其中P3.2,P3.3为外部中断0和外部中断1。

P1.7在程序中是扫描按键,通过判断P1.7位是否变为低电平来判断按键被按下。

P3.2是暂停功能,它是通过取反定时器TR0来实现的。

P3.3是工作模式选择,它是通过一个寄存器R3作为标志来告诉洗衣机该运行哪个状态。

图1.6 洗衣机按键控制模块1.7 洗衣机显示模块图1.7是洗衣机工作计时显示模块,该模块由一个动态扫描数码管组成,其中P2口的P2.0,P2.1,P2.2,P2.3控制动态扫描数码管哪个位显示,P0口用来控制动态数码管显示的数字。

该动态扫描管是共阴数码管,所以驱动数码管的亮灭是低电平有效为亮,反之为灭。

另外电路中接的8个电阻是因为P0口做输出时必须接上拉电阻,否则会呈高阻态。

图1.7 洗衣机显示模块第2章软件控制2.1 主程序设计主程序由四部分组成,分别是外部中断0控制暂停,外部中断1控制状态选择,同时P1.7来控制进入主程序。

进入主程序时利用寄存器R3来判断哪个LED 亮,同时开启定时器以及外部中断0,另外关闭外部中断1来保护状态正常运行,防止误按状态选择按钮。

当定时器50ms到时进入定时器中断,此时先利用R3判断倒计时的时间,然后进行减一运算,期间如果有外部中断0请求,则进入外部中断0程序,取反TR0来关闭或开启定时器,达到暂停的功能。

当状态三运行完毕时将蜂鸣器的控制位P1.5至低电平使它鸣叫,延时1秒,将它至高电平使它停止鸣叫,同时也延时1秒,如此循环3次从而实现“嘀”“嘀”“嘀”鸣叫3下的报警功能。

2.2 动态数码管显示控制用寄存器R1来给P2口,从而来控制显示的位,用寄存器R0来存放倒计时时间存放的地址,并用除法取数据的高位和地位,代码如下:XIANSHI: MOV B,#10 ;显示子程序MOV P2,R1MOV A,@R0DIV ABMOV DPTR,#TABMOVC A,@A+DPTR ;查段码表MOV P0,ALCALL DELAYLCALL YIWEIMOV P2,R1MOV A,BMOV DPTR,#TABMOVC A,@A+DPTR ;查段码表MOV P0,ALCALL DELAYRETYIWEI: MOV A,R1 ;移位子程序RL AMOV R1,ARET2.3 状态选择按键的控制开启外部中断1的中断允许位EX1,设置触发方式脉冲触发,开启总中断EA,收到外部中断1请求的信号进入中断,R3状态标志位加1,然后进行判断来点亮哪种状态的LED灯,程序如下:SETB EASETB EX1SETB IT1ANJIAN2:JNB P3.3,ANJIAN2 ;按键松掉为1,程序顺序执行INC R3CJNE R3,#00,D1SETB P1.2CLR P1.0D1: CJNE R3,#01,D2SETB P1.0CLR P1.1D2: CJNE R3,#02,D3SETB P1.1CLR P1.2D3: CJNE R3,#03,EXIT2SETB P1.2MOV R3,#0FFHEXIT2:RETI2.4 暂停按键的控制暂停按键的控制只需对TR0定时器开关控制位取反就行,另外设置外部中断0中断允许控制位EX0及它的触发方式IT0为1,同时开启总中断。

代码如下:SETB EASETB EX0SETB IT0ANJIAN:CPL TR0 ;"暂停"按键控制RETI2.5 定时器设置通过TH0和TL0来设置定时器的时间,通过TMOD设置定时器的工作方式,设置定时器T0溢出中断允许位,开启定时器运行控制位,另外中断响应程序里利用R3寄存器标志位来判断倒计时的时间以及点亮哪盏LED灯,代码如下:SETB EAMOV TH0,#3CHMOV TL0,#0B0HMOV TMOD,#01HSETB TR0SETB ET0T1: PUSH ACCMOV TH0,#3CHMOV TL0,#0B0H ;重置初始值DJNZ R2,EXITMOV R2,#20CLR CCJNE R3,#0FFH,L0INC R3L0: CJNE R3,#00,L1 ;洗衣机状态1倒计时MOV A,50HSUBB A,#01HMOV 50H,ACJNE A,#0FFH,EXITINC R0L1: CJNE R3,#01,L2 ;状态2倒计时MOV A,51HSUBB A,#01HMOV 51H,ACJNE A,#0FFH,EXITINC R0L2: CJNE R3,#02,L3 ;状态3倒计时MOV A,52HSUBB A,#01HMOV 52H,ACJNE A,#0FFH,EXITL3:CJNE R3,#03,EXITMOV R3,#0FFHEXIT: CJNE A,#0FFH,OUTINC R3OUT: POP ACC ;退出中断RETI2.6 蜂鸣器控制蜂鸣器控制是给控制位P1.5低电平鸣叫,高电平蜂鸣器不工作。

相关主题