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

📄 000.asm

📁 315M无线解码程序和遥控发送和接收原理图
💻 ASM
字号:
;倒计时器程序:
               ORG   0000H
               AJMP  MAIN
               ORG   0003H
               AJMP  NT0    ;外中断0
               ORG   000BH
               AJMP  TCT0   ;定时器0
               ORG   0030H
;**************************************************
        MAIN:  MOV   SP,#60H
               CLR   00H      ;工作状态标志位,0为设置,1为工作
               CLR   20H      ;指示灯状态标志位,0为LED不亮,1为亮
               CLR   21H      ;控制信号标志位,0为P3.6底,1为P3.6高
               MOV   22H,#00H ;100ms计数器清0
               MOV   23H,#00H ;秒计数器清0
               MOV   25H,#10   ;分计数器预置100min
               MOV   TH0,#3CH ;100ms预置初值
               MOV   TL0,#0B0H
               SETB  EA
               SETB  ET0      ;T0中断允许
               SETB  EX0      ;外中断0允许
               SETB  IT0      ;T0优先中断
               CLR   TR0
               MOV   34H,#2 ;显示缓冲器置数(十位)
               MOV   35H,#4;显示缓冲器置数(个位)
       L:      ACALL LED      ;调指示灯状态控制
               JNB   00H,L    ;查询工作状态指示
               ACALL BINBCD
               ACALL DIS      ;显示倒计时器中的值
               JB    02H,OUT  ;查询控制输出位,1为P3.6高
               AJMP  L
;*****************************************************
      OUT:     CLR   EX0
               CLR   TR0
               SETB  P3.6
               JNB   P3.4,OUT1  ;按P3.4清除输出
               AJMP  OUT
      OUT1:    JNB   P3.4,$     ;消抖
               CLR   P3.6
               CLR   02H
               SETB  EX0
               CLR   00H        ;设置状态
               AJMP  L
;*****************************************************
;状态灯指示:
      LED:     JB    01H,LED0
               CLR   P3.5
               RET
      LED0:    SETB  P3.5
               RET
;*****************************************************
;二进制转换为十进制:
;入口:24H单元内容
;出口:30H单元BCD码十位数
;     31H单元BCD码个位数
     BINBCD:   MOV   A,24H
               MOV   B,#10
               DIV   AB
               MOV   30H,A
               MOV   31H,B
               RET
;*****************************************************
;显示倒计时器:
;入口:30H单元BCD码十位数
;     31H单元BCD码个位数
     DIS:      MOV   R0,#30H
               MOV   DPTR,#TAB
               MOV   A,@R0
               MOVC  A,@A+DPTR
               MOV   P0,A      ;显示十位
               CLR   P2.6
               ACALL DELAY10
               INC   R0
               SETB  P2.6
               MOV   A,@R0
               MOVC  A,@A+DPTR
               MOV   P0,A      ;显示个位
               CLR   P2.7
               ACALL DELAY10
               SETB  P2.7
               RET
;***************************************************
;外部中断0:
      NT0:     CLR   EX0       ;关中断
               PUSH  ACC
               PUSH  PSW
               CLR   P3.5      ;工作状态LED灭
               ACALL DIS1      ;调设定值显示
      KEY:     JB    P3.2,RETURN
      KEY0:    ACALL DIS1
               JNB   P3.2,KEY0 ;等待键放
      KEY2:    JB    P3.3,KEY3 ;判K2按下?未按转判K3
               ACALL DIS1
               INC   34H       ;K2按下,十位加1
               MOV   A,34H
               CJNE  A,#0AH,KEY22
               MOV   34H,#00H
      KEY22:   ACALL DIS1
               JNB   P3.3,KEY22
               AJMP  KEY2
      KEY3:    ACALL DIS1
               JB    P3.4,KEY1 ;判K3按下?未按,转判K1
               INC   35H       ;K3按下,个位加1
               MOV   A,35H
               CJNE  A,#0AH,KEY33
               MOV   35H,#00H
      KEY33:   ACALL DIS1
               JNB   P3.4,KEY33
               AJMP  KEY3
      KEY1:    ACALL DIS1
               JB    P3.2,KEY2 ;K1未按,转判K2、K3
      KEY10:   ACALL DIS1      ;等待键放
               JNB   P3.2,KEY10;K1未按,进入工作状态
               ACALL BCDBIN    ;调十进制转换为二进制
               SETB  00H       ;置位进入“工作状态”标志
      RETURN:  SETB  EX0
               SETB  TR0
               POP   PSW
               POP   ACC
               RETI
;******************************************************
;十进制转换为二进制:
;入口:34H单元BCD码十位数
;     35H单元BCD码个位数
;出口:24H单元二进制

⌨️ 快捷键说明

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