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

📄 lengnuanfengji.asm

📁 采用中微半导体有限公司的66P23芯片
💻 ASM
📖 第 1 页 / 共 4 页
字号:
          RET        42H
          RET        42H
          RET        43H

          RET        44H
          RET        44H
          RET        45H

          RET        46H
          RET        46H

          RET        47H
          RET        48H
          RET        48H

          RET        49H
          RET        50H
          RET        50H

          RET        51H
          RET        51H

          RET        52H 
          RET        53H
          RET        54H

          RET        55H
          RET        55H
          RET        56H

          RET        57H
          RET        57H
          RET        58H

          RET        59H
          RET        59H
          RET        59H

          RET        60H
          RET        60H
          RET        61H

          RET        62H
          RET        62H
          RET        63H

          RET        64H
          RET        64H
          RET        65H

          RET        66H
          RET        66H
          RET        66H

          RET        67H
          RET        68H
          RET        68H

          RET        69H
          RET        69H

          RET        70H
          RET        71H
          RET        72H

          RET        73H
          RET        73H
          RET        74H

          RET        75H
          RET        75H
          RET        76H

          RET        77H
          RET        77H
          RET        78H

          RET        78H
          RET        79H

          RET        80H
          RET        80H
          RET        81H

          RET        82H
          RET        82H
          RET        83H

          RET        84H
          RET        84H
          RET        85H

          RET        86H
          RET        86H

          RET        87H
          RET        87H
          RET        88H

          RET        89H
          RET        89H

          RET        90H
          RET        91H
          RET        92H

          RET        93H
          RET        93H
          RET        94H

          RET        95H
          RET        95H

          RET        96H
          RET        96H
          RET        97H

          RET        98H
          RET        98H
          RET        99H
;********************************************************************
;****************按键处理程序****************************************
MAINK:
          SNZB       KEYF,CLICK    ;如果指定数据存储器的第b位为1,则程序计数器跳过下一条指令
          JP         TRET    ;程序计数器的内容被指定地址所取代,程序由新地址继续执行,当新地址被加载入时,必须插入一个空指令周期,所以此指令为2 个周期的指令
          CLRB       KEYF,CLICK     ;指定数据存储器中的b位清除为0
MAINK1:
          SZB        WORK,ON_OFF    ;如果指定数据存储器的第b位为0,则程序计数器跳过下一条指令
          JP         MAINK2
          LDIA       02H        ;将立即数载入至累加器中
          SUBA       KCOUNT     ;将累加器中内容减去指定数据存储器的数据,把结果储存回累加器。如果结果为负,C 标志位清除为0,反之结果为正或0,C 标
                                   ;志位设置为1
          SNZB       FLAGS,Z
          JP         TRET
MAINK2:
          LD         A,KCOUNT   ;将累加器的内容复制到指定数据存储器
          ANDIA      07H        ;将存在累加器中的数据和立即数作AND 的运算,然后把结果储存回累加器
          ADDR       PCL        ;将指定数据存储器和累加器的内容相加后,把结果储存回指定数据存储器
          JP         TRET
          JP         MAINK_FAN
          JP         MAINK_ON_OFF             ;开/关机
          JP         MAINK_HEAT
          JP         MAINK_ADD                ;加
          JP         MAINK_DEC                ;减
          JP         MAINK_TIMER
          JP         MAINK_CC_FF
;********************************************************************
;********************************************************************
MAINK_ON_OFF:
          LDIA       01H       ;将立即数载入至累加器中
          ANDR       WORK      ;将指定数据存储器和累加器的内容相加后,把结果储存回指定数据存储器
          XORR       WORK    ;将存在累加器和指定数据存储器中的数据作XOR 的运算,然后把结果储存回数据存储器
          CLR        TIMER                     ;关机状态定时无效
          CLR        PWR_CNT
          JP         MAINK_COM
;********************************************************************
;********************************************************************
MAINK_HEAT:
          INCR       PWR_CNT     ;将指定数据存储器内的数据加1
          LDIA       03H
          ANDR       PWR_CNT
          SZB        FLAGS,Z       ;如果指定数据存储器的第b位为0,则程序计数器跳过下一条指令
          CLRB       WORK,FAN_EN2              ;关闭加热时同时关闭风机
          JP         MAINK_COM
;********************************************************************
;********************************************************************
MAINK_FAN:
          LDIA       20H
          XORR       WORK
          JP         MAINK_COM
;********************************************************************
;*****************按键定时关机***************************************
MAINK_TIMER:
          CLRB       WORK,T1S_EN
          CALL       INIT_1_SEC
          CALL       INIT_30_MIN
          SETB       WORK,TIM_EN       ;将指定数据存储器的第b位置位为1

          INCR       TIMER        ;将指定数据存储器内的数据加1
          LDIA       0FH
          ANDR       TIMER        ;将存在累加器和指定数据存储器中的数据作AND 的运算,然后把结果储存回数据存储器
          SZB        FLAGS,Z      ;如果指定数据存储器的第b位为0,则程序计数器跳过下一条指令
          CLRB       WORK,TIM_EN   
          JP         MAINK_COM
;********************************************************************
;*****************按键转换华氏度和摄氏度*****************************
MAINK_CC_FF:
          LDIA       04H
          XORR       WORK
          SZB        WORK,CC_FF
          JP         FF_MIN_CHK
          JP         CC_MIN_CHK
;********************************************************************
;***************设置温度加*******************************************
MAINK_ADD:
          SNZB       FLAG,SET_MODE
          JP         ENTER_SET_MODE

          SZB        WORK,CC_FF
          JP         MAINK_ADD_FF
MAINK_ADD_CC:
          INCR       SET_CC
          JP         CC_MIN_CHK
MAINK_ADD_FF:
          INCR       SET_FF
          JP         FF_MIN_CHK
;********************************************************************
;***************设置温度减*******************************************
MAINK_DEC:
          SNZB       FLAG,SET_MODE
          JP         ENTER_SET_MODE

          SZB        WORK,CC_FF
          JP         MAINK_DEC_FF
MAINK_DEC_CC:
          DECR       SET_CC
          JP         CC_MIN_CHK
MAINK_DEC_FF:
          DECR       SET_FF
          JP         FF_MIN_CHK
;********************************************************************
;***************摄氏度处理******************************************
CC_MIN_CHK:
          LDIA       D'15'
          SUBA       SET_CC
          SZB        FLAGS,C
          JP         CC_MAX_CHK
          LDIA       D'35'
          JP         CC_MIN
CC_MAX_CHK:
          LDIA       D'36'
          SUBA       SET_CC
          SNZB       FLAGS,C
          JP         TMP_SET_COM
CC_MAX:
          LDIA       D'15'
CC_MIN:
          LD         SET_CC,A
          JP         TMP_SET_COM
;********************************************************************
;***************华氏度处理*******************************************
FF_MIN_CHK:
          LDIA       D'59'
          SUBA       SET_FF
          SZB        FLAGS,C
          JP         FF_MAX_CHK
          LDIA       D'98'
          JP         FF_MIN
FF_MAX_CHK:
          LDIA       D'99'
          SUBA       SET_FF
          SNZB       FLAGS,C
          JP         TMP_SET_COM
FF_MAX:
          LDIA       D'59'
FF_MIN:
          LD         SET_FF,A
          JP         TMP_SET_COM
;********************************************************************
;********************************************************************
ENTER_SET_MODE:
          SETB       FLAG,SET_MODE
TMP_SET_COM:
          CLR        TCNT
          CLR        TIME_3S                      ;设置状态3秒无动作,则退出设置状态
          SETB       FLAG,CF_EN                   ;温度单位转换标志位
;********************************************************************
;********************************************************************
MAINK_COM:
          LDIA       01H
          LD         RBEEP,A
          LDIA       02H
          LD         BEEPH,A
          CLR        BEEPL
          JP         TRET1
;********************************************************************
;********************************************************************
;程序功能:PTC加热输出控制
;********************************************************************
;********************************************************************
OUT_CTRL:
          LDIA        07H
          SZB         FLAG,SET_MODE
          LDIA        03FH
          ANDR        P2_RAM
          SNZB        WORK,ON_OFF
          JP          OUT_CTRL_COM
OUT_CHK:
          SZB         FLAG,SET_MODE
          JP          OUT_FAN
          SZB         FLAG,OUT_EN
          JP          OUT_CHK2
OUT_CHK1:
          LD          A,TMP_NTC
          SUBA        TMP_SET
          SZB         FLAGS,C
          SETB        FLAG,OUT_EN
          JP          OUT_FAN
OUT_CHK2:
          LDIA        03H
          ANDR        PWR_CNT
          LDIA        03H
          SUBA        PWR_CNT
          SNZB        FLAGS,C
          JP          PTC_OUT_EN
          CLRB        WORK,FAN_EN1
          SETB        WORK,FAN_EN2
;********************************************************************
;********************************************************************
;程序功能:温度控制,当NTC的温度大于设置温度3度后停止加热
;********************************************************************
;********************************************************************
PTC_OUT_EN:
          LDIA        03H
          ADDA        TMP_SET
          LD          TEMP,A
          LDIA        06H
          ADDA        TEMP
          SZB         FLAGS,HC
          LD          TEMP,A
          LD          A,TEMP
          SUBA        TMP_NTC
          SZB         FLAGS,C
          CLRB        FLAG,OUT_EN
PTC_CHK:
          SZB         PWR_CNT,0
          SETB        P2_RAM,5

          SZB         PWR_CNT,1
          SETB        P2_RAM,4
OUT_FAN:
          SZB         WORK,FAN_EN1
          SETB        P2_RAM,FAN                   ;风机输出
          SZB         WORK,FAN_EN2
          SETB        P2_RAM,FAN
OUT_CTRL_COM:
          LD          A,P2_RAM
          LD          P2,A
          JP          TRET
;********************************************************************
;********************************************************************
;==================程序功能:环境温度检测=============================
;********************************************************************
;********************************************************************
TMP_CHK:
          LDIA       B'01000000'
          LD         ADPORT,A

          SZDECR     TCNT               ;250US*16*30=120MS
          JP         TRET
          LDIA       D'30'
          LD         TCNT,A

          SZB        RBEEP,0
          JP         TRET
          SZB        FLAG,SET_MODE

⌨️ 快捷键说明

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