为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

洗衣机程序

2017-11-29 12页 doc 27KB 10阅读

用户头像

is_633808

暂无简介

举报
洗衣机程序洗衣机程序 dspbuf equ 30h ;显示的值 count equ 41h ;显示的次数 k2 bit p1.0 org 0000h ljmp main org 0030h ;;;;;;;;;;;; ;;;;;子程序 delay: mov r7, #10 ;延时10ms子程序 dly1: mov r6, #50 djnz r6, $ djnz r7, dly1 ret ;;;不闪烁的显示子程序 display: mov dptr, #tab mov a, dspbuf mov b, #...
洗衣机程序
洗衣机程序 dspbuf equ 30h ;显示的值 count equ 41h ;显示的次数 k2 bit p1.0 org 0000h ljmp main org 0030h ;;;;;;;;;;;; ;;;;;子程序 delay: mov r7, #10 ;延时10ms子程序 dly1: mov r6, #50 djnz r6, $ djnz r7, dly1 ret ;;;不闪烁的显示子程序 display: mov dptr, #tab mov a, dspbuf mov b, #10 div ab xch a, b anl a, #0fh movc a,@a+dptr mov p3, a setb p1.4 ;熄灭数码管LED1 clr p1.5 ;点亮数码管LED2 lcall delay mov a, dspbuf mov b, #10 div ab anl a, #0fh movc a,@a+dptr mov p3, a setb p1.5 ;熄灭数码管LED2 clr p1.4 ;点亮数码管LED1 lcall delay ret ;;0.5秒闪烁的显示程序 display2: inc count mov a, #25 clr c subb a, count jc dsp20 ;;前面的25次要显示 mov dptr, #tab mov a, dspbuf mov b, #10 div ab xch a, b anl a, #0fh movc a,@a+dptr mov p3, a setb p1.4 ;熄灭数码管LED1 clr p1.5 ;点亮数码管LED2 lcall delay mov a, dspbuf mov b, #10 div ab anl a, #0fh movc a,@a+dptr mov p3, a setb p1.5 ;熄灭数码管LED2 clr p1.4 ;点亮数码管LED1 lcall delay ;;;后面的25次不显示 dsp20: mov dptr, #tab mov a, dspbuf mov b, #10 div ab xch a, b anl a, #0fh movc a,@a+dptr mov p3, a setb p1.4 ;熄灭数码管LED1 setb p1.5 ;点亮数码管LED2 lcall delay mov a, dspbuf mov b, #10 div ab anl a, #0fh movc a,@a+dptr mov p3, a setb p1.5 ;熄灭数码管LED2 setb p1.4 ;点亮数码管LED1 lcall delay ;;判断有无到50次 mov a, #50 xrl a, cout jnz dsp21 mov count , #00 dsp21: ret tab: db 03h, 9fh, 25h db 0dh, 99h, 59h db 0c1h, 1fh, 01h db 0bh tab2: db 0c0h, 0f9h, 0b4h db 0b0h, 99h, 9ah db 83h, 0f8h, 80h db 50h ;鸣叫一下程序 play: clr p1.7 ;让LED亮200MS mov r5, #10 lp2: lcall display ;显示子程序 djnz r5, lp2 setb p1.7 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; main: mov sp, #50h mov 30h, #00 ;显示00值 mov count, #00 ; mov dspbuf, 30h lp1: lcall display ;显示子程序 jb k2, lp1 lcall display ;延时20MS去抖动 jb k2, lp1 ;按键按下 key: inc 30h mov a, #0ah xrl a, 30h jnz key0 mov 30h, #01 key0: mov dspbuf, 30h lcall display ;显示子程序 lcall play ;鸣叫 ;等待按键释放 lp3: lcall display ;显示子程序 jnb k2, lp3 lcall display ;延时20MS去抖动 jnb k2, lp3 ;三秒判断 mov r5, #150 lp4: lcall display ;延时20MS去抖动 jb k2, lp5 lcall display ;延时20MS去抖动 jb k2, lp5 sjmp key lp5: djnz r5, lp4 ;鸣叫6下开始洗衣 mov r4, #6 lp8: clr p1.7 ;让LED亮200MS mov r5, #10 lp6: lcall display ;显示子程序 djnz r5, lp6 setb p1.7 ;让LED灭200MS mov r5, #10 lp7: lcall display ;显示子程序 djnz r5, lp7 djnz r4, lp8 start: mov 30, #42 ; mov dspbuf, 30h clr p0.0 ;进水 mov r3, #2 lp12: ;;;一分钟 mov r2, #50 lp11: mov r4, #60 lp10: lcall display2 jnb p0.1, xidi ;水位满,结束进水 lcall ifpause ;判断是否暂停 djnz r4, lp10 djnz r2, lp11 dec 30h ;时间减一 mov dspbuf, 30h djnz r3, lp12 ;2分钟没进满水,继续进水,时间不减 lp20: lcall display2 jnb p0.1, xidi ;水位满,结束进水 jb k2, nopause2 ;有没有暂停按键 lcall pause nopause2: sjmp lp20 ;;;;暂停处理子程序 ifpause: jb k2, nopause1 ;有没有暂停按键 mov a, p0 ;保存现在的状态 push acc mov p0, #0ffh ;关闭进水、正转、反转 lcall play paus2: jb k2, paus1 ;等待按键释放 lcall display sjmp paus2 paus1: ;等待重新启动 jnb k2, paus3 lcall display sjmp paus1 paus3: ;重新启动按下 lcall play paus31: jb k2, paus4 lcall display sjmp paus31 ;等到重新启动的按键释放 paus4: pop ACC ;恢复状态 mov p0, a nopause1: ret ;电机正反转达洗衣 xidi: setb p0.0 mov 30h, #40 mov r2, #15 ;15分钟 xidi12: mov r3, #14 ;一分的次数 xidi10: ;;;花时4.32s clr p0.4 ;正转1.6秒 mov r4, #80 xd01: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, xd01 setb p0.4 ;暂停0.56秒 mov r4, #28 xd02: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, xd02 clr p0.6 ;反转1.6秒 mov r4, #80 xd03: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, xd03 setb p0.6 ;暂停0.56秒 mov r4, #28 xd04: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, xd04 djnz r3, xidi10 dec 30h ;一分钟时间减一 djnz r2, xidi12 ;;;;;; paishui: mov 30h, #25 clr p0.2 ;打开排水阀 ;;;排水D秒 mov r3, #01 ts2: ;;;;一秒 mov r4, #50 ts1: lcall display2 lcall ifpause ;判断有无暂停 jnb p0.1, ts4 ;D秒内水位开关断开,排水正常 djnz r4, ts1 ;;;;有无60秒 inc r3 mov a, #60 xrl a, r3 jnz ts2 ;;;;排水不畅报警 sjmp $ ;;;排水D秒 ts4: dec 30h ;;;;一秒 mov r4, #50 ts5: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, ts5 djnz r3, ts4 ;;;;继续排水T=60秒 mov r3, #60 ts6: ;;;;一秒 mov r4, #50 ts7: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, ts7 djnz r3, ts6 dec 30h tuoshui: mov 30h, #23 clr p0.4 ;电机正转脱水4秒 mov r3, #4 ts9: ;;;;一秒 mov r4, #50 ts8: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, ts8 djnz r3, ts9 setb p0.4 ;关闭电机正转脱水3秒 mov r3, #3 tss1: ;;;;一秒 mov r4, #50 tss2: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, tss2 djnz r3, tss1 clr p0.4 ;电机正转脱水三分钟 mov r3, #180 tss3: ;;;;一秒 mov r4, #50 tss4: lcall display2 lcall ifpause ;判断有无暂停 djnz r4, tss4 djnz r3, tss3 ljmp main
/
本文档为【洗衣机程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索