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

📄 关于液晶的显示程序.txt

📁 关于液晶的显示程序,希望大家感兴趣
💻 TXT
字号:
     ORG    0000H
     AJMP   MAIN     ;主程序
     ORG    0003H
     AJMP   NT0      ;外部中断
     ORG    000BH
     AJMP   TCT0     ; 定时器
     ORG    0030H
MAIN:MOV    SP,   #60H       ;设置堆栈
     CLR    00H              ;工作状态标志位,0为设置,1为工作
     CLR    01H              ;指示灯状态标志位,0为LED不亮,1为亮
     CLR    02H              ;控制信号标志,0为P3.7低,1为高
     MOV    22H,  #00H       ;100ms计数器清零
     MOV    23H,  #00H       ;秒计数器清零
     MOV    24H,  #10        ;分计数器预置10min
     MOV    TH0,  #3CH       ;100ms计数器初值
     MOV    TL0,  #0B0H
     MOV    TMOD, #02H
     SETB   EA               ;
     SETB   ET0              ;允许定时器T0中断
     SETB   EX0              ;允许外部中断0中断
     SETB   IT0
     CLR    TR0
     MOV    34H,  #01H       ;显示缓冲器预置数(十位)
     MOV    35H,  #00H       ;显示缓冲器预置数(个位)


  L: ACALL  LED             ;调指示灯状态控制程序 
     JNB    00H,  L        ;查询工作状态指示,0为"设置"(00H状态不为1时转至L处)
     ACALL  BINBCD          ;二进制转十进制
     ACALL  DIS             ;显示倒计时器中的值
     JB     02H,  OUT       ;查询控制输出位,1为P3.5高报警(02H状态为1时转至LED处)
     AJMP   L
   
 LED:JB    01H,LED0         ;01H状态为1时,程序转之LED0处
     CLR    P3.7
    RET
LED0:SETB   P3.7
     RET
BINBCD:MOV   A,   24H       ;取二进制数
       MOV   B,   #10
       DIV   AB             ;A中存十位数,B中存个位数
       MOV   30H, A         ;存十位数
       MOV   31H, B         ;B中存个位数
       RET

 DIS:  MOV   R0,  #30H
       MOV   DPTR, #TAB
       MOV   A,    @R0
       MOVC  A,    @A+DPTR
       MOV   P1,   A        ;显示十位
       SETB   P3.3
       (在这加10ms延时程序也可不加,只不过显示的不对)
       INC   R0
       CLR   P3.3
       MOV   A,    @R0
       MOVC  A,    @A+DPTR
       MOV   P1,   A        ;显示个位
       SETB  P3.2
       (在这加10ms延时程序也可不加,只不过显示的不对)
       CLR  P3.2
       
      RET



OUT1:JNB    P3.4,  $           ;消抖
     CLR    P3.5               ;按P3.5清除报警输出
     CLR    02H
     SETB   EX0
     CLR    00H
     AJMP   L                  ;设置状态

OUT: CLR    EX0
     CLR    TR0
     SETB   P3.5               ;P3.5高,报警
     JNB    P3.4,   OUT1       ;按P3.4清除输出
     AJMP   OUT

DIS1:  MOV   R0,  #34H
       MOV   DPTR, #TAB
       MOV   A,   @R0
       MOVC  A,   @A+DPTR
       MOV   P1,  A           ;显示十位
       CLR   P3.3
       (在这加10ms延时程序也可不加,只不过显示的不对)
       INC   R0
       SETB  P3.3
       MOV   A,   @R0
       MOVC  A,   @A+DPTR
       MOV   P1,  A          ;显示个位
       CLR   P3.2
       (在这加10ms延时程序也可不加,只不过显示的不对)
       SETB  P3.2
       RET

 NT0:  CLR   EX0               ;关中断
       PUSH  ACC
       PUSH  PSW
       CLR   P3.7              ;工作状态LED灭
       ACALL DIS1              ;调设定值显示
RETURN:SETB  EX0
       SETB  TR0
       POP   PSW
       POP   ACC
       RETI
 KEY:  JB    P3.0,   RETURN
 KEY0: ACALL DIS1
       JNB   P3.0,   KEY0      ;等待键释放
 KEY2: JB    P3.1,   KEY3      ;判K2键按下?未按下,转判断k3
       ACALL DIS1
       INC   34H
       MOV   A,    34H
       CJNE  A,    #0AH,KEY22
       MOV   34H,  #00H
 KEY22:ACALL DIS1
       JNB   P3.1,  KEY22
       AJMP  KEY2
 KEY3: ACALL DIS1
       JB    P3.4,  KEY1
       INC   35H
       MOV   A,    35H
       CJNE  A,   #0AH,KEY33
       MOV   35H, #00H
KEY33: ACALL DIS1
       JNB   P3.4, KEY33
       AJMP  KEY3
KEY1:  ACALL DIS1
       JB    P3.0, KEY2
BCDBIN:MOV   B,   #10
       MOV   A,   34H
       MUL   AB
       ADD   A,   35H
       MOV   24H, A
       RET

KEY10: ACALL DIS1
       JNB   P3.0, KEY10
       ACALL BCDBIN
       SETB  00H
TCT0:  PUSH   ACC
       PUSH   PSW
       INC    22H           ;100ms单元加1
       MOV    A,   22H
       CJNE   A,   #10,EXIT
       MOV    22H, #00H
       INC    23H          ;秒单元加1
       CPL    01H
       MOV    A,   23H
       CJNE   A,   #60,EXIT
       MOV    23H, #00H
       DEC    24H          ;分单元减一
       MOV    A,    24H
       CJNE    A,   #00H,EXIT  ;分计数单元不为“0”,继续
       CLR    TR0
       SETB   02H
       SETB   01H
       CLR    00H



TAB:   DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,03H
EXIT:  POP    PSW
       POP    ACC
       
       END

⌨️ 快捷键说明

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