⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fxyj.asm

📁 我51单片机系统实验做的
💻 ASM
字号:
     org 0000h
    ajmp main
     org 0030h
main:mov p2,#00h
     mov r1,#30h
     mov r7,#10h
circ:mov @r1,#00h         ;30h到3fh清0
     inc r1     
     djnz r7,circ
     
     mov  r1,#30h
baks:mov  r0,#32h         ;键盘     
     mov  r2,#0feh
     mov  a,r2
     mov  dptr,#tab
loop:mov  33h,#0ah        ;显示 
     mov  37h,#0ah
     mov  a,r2  
     mov  p0,a
     mov  a,@r0
    movc  a,@a+dptr
     mov  p3,a
   acall dy10ms
     mov  a,r2
     jnb  acc.7,baks2
      rl   a
     mov  r2,a
     inc  r0
    ajmp loop

baks2:mov p1,#0fh
   acall key
     jnz ctnu
    ajmp baks

dy10ms:mov r7,#02h
   dl0:mov r6,#0ffh
  dl10:djnz r6,dl10
      djnz r7,dl0
      ret
ctnu:acall delay
       mov p1,#0fh
     acall key
       jnz row
      ajmp baks

row: mov r3,#00h
     mov a,#0efh
     mov p1,a
   acall key
     jnz line
     mov r3,#04h
     mov a,#0dfh
     mov p1,a
   acall key
     jnz line
     mov r3,#08h
     mov a,#0bfh
     mov p1,a
   acall key
     jnz line
     mov r3,#0ch
     mov a,#7fh
     mov p1,a
   acall key
     jnz line
    ajmp baks

line:jnb acc.0,line1
     mov a,#00h
     add a,r3
    push acc
    ajmp nokeys
line1:jnb acc.1,line2
      mov a,#01h
      add a,r3
     push acc
     ajmp nokeys
line2:jnb acc.2,line3
      mov a,#02h
      add a,r3
     push acc
     ajmp nokeys
line3:jnb acc.3,line4
      mov a,#03h
      add a,r3
     push acc
     ajmp nokeys
line4:ajmp baks

nokeys:mov p1,#0fh
     acall key
       jnz nokeys
       pop acc
       mov @r1,a
       inc r1
       
test1: clr c             ;进水灯开 
       mov a,30h
      subb a,#0ch
        jz jinshui1
      sjmp test2  
jinshui1:mov p2,#01h 


test2: clr c             ;进水灯关
       mov a,31h
      subb a,#0ch
        jz jinshui2
      sjmp test3  
jinshui2:mov p2,#00h         
       
test3: clr c
       mov a,3ah
      subb a,#0bh      
        jz start        ;定时后转移到倒计时
      ajmp baks
key:   mov a,p1
       cpl a
       anl a,#0fh
       ret
 
     
delay:mov r7,#18h
tm:   mov r6,#0ffh
tm6: djnz r6,tm6
     djnz r7,tm
      ret


start:ljmp begin        ;定时器  
       org  000bh       ;定时器T0中断入口
      ljmp serve
       org 0200h
begin:mov tmod,#01h
      mov 20h,#14h
      
     setb et0           ;开定时器T0中断
     setb ea            ;CPU开中断
      mov th0,#3ch
      mov tl0,#0b0h
     setb tr0           ;启动定时器T0
    acall xian

serve:push psw
      push acc
      mov th0,#3ch
      mov tl0,#0b0h
     djnz 20h,retunt
      mov 20h,#14h
      
      mov a,32h
      orl a,34h
      orl a,35h
      jz  shuai
      
   xi:mov p2,#04h         ;洗衣 
      mov a,35h
      jz  adj1
      dec 35h
     ajmp retunt 
 adj1:                    ;倒计时调整
      mov a,34h
      jz  adj2
      dec 34h
      mov 35h,#09h
     ajmp retunt
 adj2:
      dec 32h 
      mov 35h,#09h
      mov 34h,#05h  
     ajmp retunt 
     
shuai:                   ;甩干放水
     mov p2,#10h
     mov a,36h
      orl a,38h
      orl a,39h
      jz  exit
      mov a,39h
      jz  adj11
      dec 39h
     ajmp retunt 
 adj11:                  ;倒计时调整
      mov a,38h
       jz adj22
      dec 38h
      mov 39h,#09h
     ajmp retunt
 adj22:
      dec 36h 
      mov 39h,#09h
      mov 38h,#05h  
     ajmp retunt     
         
    
retunt:pop acc
       pop psw
       reti
xian: mov  r1,#32h        ;显示子程序   
      mov  r2,#0feh
      mov  a,r2
      mov  dptr,#tab
lp1:  mov  33h,#0ah
      mov  37h,#0ah

      mov  a,r2
      mov  p0,a
      mov  a,@r1
     movc  a,@a+dptr
      mov  p3,a
    acall  d10ms
      mov  a,r2
      jnb  acc.7,xian
       rl  a
      mov  r2,a
      inc  r1
     ajmp lp1   
      ret 
  tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,7fh    
d10ms:mov  r7,#02h
   dl:mov  r6,#0ffh
  dl1:djnz r6,dl1
      djnz r7,dl
      ret
exit: mov p2,#40h          ;结束
      clr ea               ;清中断
     sjmp xian 
      ret
      end


























⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -