洗衣机部分功能实现.docx
- 文档编号:28668814
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:20
- 大小:125.55KB
洗衣机部分功能实现.docx
《洗衣机部分功能实现.docx》由会员分享,可在线阅读,更多相关《洗衣机部分功能实现.docx(20页珍藏版)》请在冰豆网上搜索。
洗衣机部分功能实现
宁波理工学院
课程设计(单片机)
题目洗衣机部分功能控制设计
姓名金超豪
学号3100403023
专业班级10通信工程1班
指导教师李林功
分院信息科学与工程学院
完成日期2013年5月31日
目录
第1章电路组成1
1.1AT89C51芯片1
1.1.1AT89C51的结构1
1.1.2AT89C51的引脚功能1
1.2复位电路3
1.3时钟3
1.4报警系统4
1.5洗衣机工作模式显示4
1.6按键控制模块5
1.7洗衣机显示模块5
第2章软件控制6
2.1主程序设计6
2.2动态数码管显示控制7
2.3状态选择按键的控制7
2.4暂停按键的控制8
2.5定时器设置8
2.6蜂鸣器控制9
附录11
附录一11
附录二11
第1章电路组成
1.1AT89C51芯片
1.1.1AT89C51的结构
AT89C51的封装形式是DIP40。
如图1.1所示。
图1.1AT89C51的封装形式
1.1.2AT89C51的引脚功能
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.1P3口的第二功能
7.RST
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
8.ALE/PROG
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振器频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
9.PSEN
程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时.每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。
10.EA/VPP
EA=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:
MOVB,#10;显示子程序
MOVP2,R1
MOVA,@R0
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR;查段码表
MOVP0,A
LCALLDELAY
LCALLYIWEI
MOVP2,R1
MOVA,B
MOVDPTR,#TAB
MOVCA,@A+DPTR;查段码表
MOVP0,A
LCALLDELAY
RET
YIWEI:
MOVA,R1;移位子程序
RLA
MOVR1,A
RET
2.3状态选择按键的控制
开启外部中断1的中断允许位EX1,设置触发方式脉冲触发,开启总中断EA,收到外部中断1请求的信号进入中断,R3状态标志位加1,然后进行判断来点亮哪种状态的LED灯,程序如下:
SETBEA
SETBEX1
SETBIT1
ANJIAN2:
JNBP3.3,ANJIAN2;按键松掉为1,程序顺序执行
INCR3
CJNER3,#00,D1
SETBP1.2
CLRP1.0
D1:
CJNER3,#01,D2
SETBP1.0
CLRP1.1
D2:
CJNER3,#02,D3
SETBP1.1
CLRP1.2
D3:
CJNER3,#03,EXIT2
SETBP1.2
MOVR3,#0FFH
EXIT2:
RETI
2.4暂停按键的控制
暂停按键的控制只需对TR0定时器开关控制位取反就行,另外设置外部中断0中断允许控制位EX0及它的触发方式IT0为1,同时开启总中断。
代码如下:
SETBEA
SETBEX0
SETBIT0
ANJIAN:
CPLTR0; "暂停"按键控制
RETI
2.5定时器设置
通过TH0和TL0来设置定时器的时间,通过TMOD设置定时器的工作方式,设置定时器T0溢出中断允许位,开启定时器运行控制位,另外中断响应程序里利用R3寄存器标志位来判断倒计时的时间以及点亮哪盏LED灯,代码如下:
SETBEA
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTMOD,#01H
SETBTR0
SETBET0
T1:
PUSHACC
MOVTH0,#3CH
MOVTL0,#0B0H;重置初始值
DJNZR2,EXIT
MOVR2,#20
CLRC
CJNER3,#0FFH,L0
INCR3
L0:
CJNER3,#00,L1;洗衣机状态1倒计时
MOVA,50H
SUBBA,#01H
MOV50H,A
CJNEA,#0FFH,EXIT
INCR0
L1:
CJNER3,#01,L2;状态2倒计时
MOVA,51H
SUBBA,#01H
MOV51H,A
CJNEA,#0FFH,EXIT
INCR0
L2:
CJNER3,#02,L3;状态3倒计时
MOVA,52H
SUBBA,#01H
MOV52H,A
CJNEA,#0FFH,EXIT
L3:
CJNER3,#03,EXIT
MOVR3,#0FFH
EXIT:
CJNEA,#0FFH,OUT
INCR3
OUT:
POPACC;退出中断
RETI
2.6蜂鸣器控制
蜂鸣器控制是给控制位P1.5低电平鸣叫,高电平蜂鸣器不工作。
实现的代码如下:
MOVR3,#00
CLRP1.5
LCALLDELAY1S
SETBP1.5
LCALLDELAY1S
INCR3
CJNER3,#03,H4
SETBP1.5
SJMP$
附录
附录一
1.总设计图
附录二
1.实验代码
ORG0000H
LJMPSTART
ORG0003H;定时中断
AJMPANJIAN
ORG000BH;外部中断0
AJMPT1
ORG0013H;外部中断1
AJMPANJIAN2
ORG0030H
START:
MOVR1,#0FEH;7SEG-MPX4-CC四个公阴二极管显示器1234是阴公共;端,至1号数码管亮
;MOVR0,#50H;用于控制显示哪个状态倒计时
MOV50H,#02H;状态一计数时间
MOV51H,#04H;状态二计数时间
MOV52H,#05H;状态三计数时间
MOVR2,#20
MOVR3,#0FFH;判断洗衣机工作的状态
SETBEA;打开总中断
SETBEX1;允许外部中断1中断
SETBIT1;外部中断1下降沿有效
MAIN:
JBP1.7,MAIN;P1.7为1时跳转,为0时顺序执行
LCALLDELAY05
JBP1.7,MAIN
CLREX1;关闭外部中断1允许位,防止洗衣机在工作时误按该按
;键而是洗衣机工作出错
CJNER3,#0FFH,S0;判断R3是否为0FFH,是顺序执行程序
INCR3
CLRP1.0
S0:
CJNER3,#00,S1;洗衣机1号状态
MOVR0,#50H;将50H内容给R0,从而显示一号状态的倒计时
S1:
CJNER3,#01,S2;洗衣机2号状态
MOVR0,#51H
S2:
CJNER3,#02,S3;洗衣机3号状态
MOVR0,#52H
S3:
MOVTH0,#3CH;定时器定时50ms
MOVTL0,#0B0H
MOVTMOD,#01H;定时器一号模式
SETBTR0;启动定时器计数
SETBET0;允许T0中断
SETBIT0;外部中断0下降沿触发
SETBEX0;外部中断0中断位
LOP:
MOVR1,#0FEH;lop为扫描程序,未有中断响应一直工作在此状态
LCALLXIANSHI
CJNER3,#00,H1;洗衣机状态1,点亮第一盏灯,同时关闭前一盏灯
SETBP1.2
CLRP1.0
H1:
CJNER3,#01,H2
SETBP1.0
CLRP1.1
H2:
CJNER3,#02,H3
SETBP1.1
CLRP1.2
H3:
CJNER3,#03H,LOP;判断是否已完成最后的状态,完成则进行蜂鸣器鸣;叫
MOVP2,#0FFH
MOVR3,#00
H4:
CLRP1.5
LCALLDELAY1S
SETBP1.5
LCALLDELAY1S
INCR3
CJNER3,#03,H4
SETBP1.5
SETBP1.2
SJMP$
;MOV50H,#02;到R1为止全为初始化
;MOV51H,#04
;MOV52H,#05
;MOVR0,#50H
;MOVR3,#00H
;MOVR1,#0FEH
;LJMPLOP
XIANSHI:
MOVB,#10;显示子程序
MOVP2,R1
MOVA,@R0
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR;查段码表
MOVP0,A
LCALLDELAY
LCALLYIWEI
MOVP2,R1
MOVA,B
MOVDPTR,#TAB
MOVCA,@A+DPTR;查段码表
MOVP0,A
LCALLDELAY
RET
YIWEI:
MOVA,R1;移位子程序
RLA
MOVR1,A
RET
ANJIAN:
CPLTR0; "暂停"按键控制
RETI
ANJIAN2:
JNBP3.3,ANJIAN2;按键松掉为1,程序顺序执行
INCR3
CJNER3,#00,D1;选择模式1,则相应的点亮第一盏小灯
SETBP1.2
CLRP1.0
D1:
CJNER3,#01,D2
SETBP1.0
CLRP1.1
D2:
CJNER3,#02,D3
SETBP1.1
CLRP1.2
D3:
CJNER3,#03,EXIT2
SETBP1.2
MOVR3,#0FFH
EXIT2:
RETI
T1:
PUSHACC;T1为定时器中断响应程序
MOVTH0,#3CH
MOVTL0,#0B0H;重置初始值
DJNZR2,EXIT
MOVR2,#20
CLRC
CJNER3,#0FFH,L0
INCR3
L0:
CJNER3,#00,L1;洗衣机状态1倒计时
MOVA,50H
SUBBA,#01H
MOV50H,A
CJNEA,#0FFH,EXIT
INCR0
L1:
CJNER3,#01,L2;状态2倒计时
MOVA,51H
SUBBA,#01H
MOV51H,A
CJNEA,#0FFH,EXIT
INCR0
L2:
CJNER3,#02,L3;状态3倒计时
MOVA,52H
SUBBA,#01H
MOV52H,A
CJNEA,#0FFH,EXIT
L3:
CJNER3,#03,EXIT
MOVR3,#0FFH
EXIT:
CJNEA,#0FFH,OUT;每次一个状态倒计时完,R3就加1,从而进入下一个;状态
INCR3
OUT:
POPACC;退出中断
RETI
DELAY:
MOVR5,#10;数码管显示延迟
DELAY1:
MOVR6,#1
DELAY2:
MOVR7,#20
DJNZR7,$
DJNZR6,DELAY2
DJNZR5,DELAY1
RET
DELAY05:
MOVR6,#20;按键延迟
DEY:
MOVR7,#248
DJNZR7,$
DJNZR6,DEY
RET
DELAY1S:
PUSHPSW
MOVR5,#10;蜂鸣器延时
DELAY3:
MOVR6,#200
DELAY4:
MOVR7,#250
DJNZR7,$
DJNZR6,DELAY4
DJNZR5,DELAY3
POPPSW
RET
TAB:
DB3FH,06H,05BH,04FH,66H,6DH,7DH,07H;段码表
;01234567对应内容
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
;89ABCDEF
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 洗衣机 部分 功能 实现