一位计数器,按p3.2数码管加1,到9后回0,同时小喇叭响一下报警.asm

来自「本人跟网上学单片机时,调试用过的资料,有汇编和C,」· 汇编 代码 · 共 40 行

ASM
40
字号
;一位计数器,按p3.2数码管加1,到9后回0,同时小喇叭响一下报警,


         jmp start      ;跳到主程序
         org 0030h
start:   mov 30h,#0ffh  ;30h送ff即-1
 main:   INC 30H
         mov a,30h
         setb p3.5      ;把键盘口送高电平
   mm:   jnb p3.5,tt    ;如果p3.2按下则执行tt
         ljmp mm        ;如果没有按下则反复监测键盘
   tt:   MOV DPTR,#TAB
         MOVC A,@A+DPTR
         CLR P2.6      ;开数码管
         MOV P0,A      ;送显示
         lcall delay   ;延时一段时间
         cjne a,#60h,main ;如果是最后一个数据重新开始
         cjne a,#20h,BB   ;如果是数字9到小喇叭响的程序
         ljmp start       ; 否则30H 清除
         ret
TAB: DB 28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60H;数据表,0--9(如果反向排列则为倒计数
 BB:
         mov r1,#255      ;小喇叭响的次数
ppp:     cpl p3.3         ;小喇叭响
         call deL         ;小喇叭响的速率
         djnz r1,ppp      ;小喇叭响255次。
         jmp start
delay:   mov r5,#20     ;延时子程序1闪烁灯调用
   d1:   mov r6,#20
   d2:   mov r7,#255
         djnz r7,$
         djnz r6,d2
         djnz r5,d1
      ret
  del:                  ;延时子程序2小喇叭调用
        mov r4,#255
        djnz r4,$
      ret
      end

⌨️ 快捷键说明

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