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

📄 nuanfeng.asm

📁 暖风机的相关程序及原理图,调试成功,希望对大家有用
💻 ASM
📖 第 1 页 / 共 4 页
字号:
原程序如下
;4M,4CLOCK,每个指令1U
;======================================================================================
;本程序为暖风机器所写,2004-03-24开始开发
;======================================================================================
              R0       ==    0X00
              TCC      ==    0X01
              PC       ==    0x02
              R3       ==    0X03
              R4       ==    0X04
              P5       ==    0X05
              LED      ==    3
              KEY      ==    0 ;按键
              NTS      ==    1 ;光敏电阻
              R10K     ==    2 ;标准电阻
              P6       ==    0X06
              REM      ==    7   ;遥控接收
              DATA     ==    7
              WR       ==    6
              CS       ==    5
              BELL     ==    2
              JDQ1     ==    0
              JDQ2     ==    1
              YT       ==    3
              FS       ==    4
              
              IOC5     ==    0X05
              IOC6     ==    0X06
              IOC7     ==    0X07
              IOCA     ==    0X0A
              IOCB     ==    0X0B
              IOCC     ==    0X0C
              IOCD     ==    0X0D
              IOCE     ==    0X0E
              IOCF     ==    0X0F
              RF       ==    0X0F

              C        ==    0
              Z        ==    2
              
              ;-------------------------------------------
              ;全局变量
              ;--------------------------------------------
              RKEY     ==    0X28           ;键值保存
              R_A      ==    0X29
              R_R3     ==    0X2A
              TEMP     ==    0X2B
              STEMP    ==    0X2C
              STIME    ==    0X2D           ;0.5到7.5各放半个字节,高字节实际时间,底字节设置时间
              FTIMES   ==    0X2E           ;闪烁7次
              R250MS   ==    0X2F
              R05S     ==    0X30
              R30M    ==     0X31
              R66MS    ==    0X32
              R200MS   ==    0X33 ;奉命器发生
              R1M      ==    0X18
              R15S     ==    0X19
              ADID     ==    0X1A
              
              R10KTC1  ==    0X20   ;求平均值
              R10KTC2  ==    0X21
              R10KTC3  ==    0X22
              R10KTC4  ==    0X23
              RNTSTC1  ==    0X24
              RNTSTC2  ==    0X25
              RNTSTC3  ==    0X26
              RNTSTC4  ==    0X27
              D0       ==    0X34;0X3A~0X3F为显示存储空间!!!
              
              FLAG     ==    0X1B
              FHWKEY   ==    0
              F250MS   ==    1
              F33MS    ==    2
              F33MSS   ==    3      ;蜂鸣器发生标志
              FLED     ==    4
              F05S1    ==    5
              ;FOFFPOWER==    6
              F05S     ==    7
              FLAG1    ==    0X1C    ;开关状态保存
              F1       ==    1
              F2       ==    2
              F3       ==    3
              F4       ==    4
              FKO      ==    5 ;开关键值保存
              FKS      ==    6 ;摇头保存
              FTIME    ==    0
              FTEMP    ==    7
              
              R30S     ==    0X1D
              temp1    ==    0x1e
              ;-------------------------------------------
              ;局部变量
              ;--------------------------------------------
              
              DIV1     ==    0X10
              DIV2     ==    0X11
              DIV3     ==    0X12
              CHU1     ==    0X13
              YU       ==    0X14
              SHANG1   ==    0X15
              SHANG2   ==    0X16
              DIV_CNT  ==    0X17
              
              B3       ==    DIV1
              B8       ==    DIV2
              RX       ==    DIV3
              
              RTCC     ==    DIV1                 
              RKEYTC   ==    DIV2;TCC保存
              
              DCNT2    ==    DIV_CNT
              B        ==    CHU1
              DCNT1    ==    YU  ;注意,DCNT,与DIV1~3,SHANG1~2不能复用     
              R_ADL    ==    SHANG1     
              R_ADH    ==    SHANG2  
              
              BINARY   ==    DIV1	;BINARY<0X64
              BCD      ==    DIV2
              BCD_CNT  ==    DIV3
              
              
           ;   KS       ==    1;摇头
           ;   KH       ==    2;加热
           ;   KT       ==    3;间设定
           ;   KTE      ==    4;温度
           ;   KP       ==    5;+按键
           ;   KD       ==    6;-按键
           ;   KO       ==    7;开关按键
;===================================================================
              ORG     000H
              CALL    INIT
  MAIN:       CALL    FANGDIAN          ;放电
              CALL    HW_TEST           ;红外检测,30ms
              CALL    MAIN_AD           ;包括按键检测与处理,温度检测与处理
              CALL    SYSTIME
              CALL    MAINDISPLAY
              JMP     MAIN
              ORG     008H
              
              MOV    R_A,A
              SWAP   R_A
              SWAPA  R3
              MOV    R_R3,A  
              
              CLR    RF
              BS     FLAG,F33MS           ;
              bs     flag,f33mss
              DJZ    R250MS
              JMP    TCC_RETURN
              MOV    A,@8;
              MOV    R250MS,A
              BS     FLAG,F250MS
              
              DJZ    R05S
              JMP    TCC_RETURN
              BS     FLAG,F05S
              BS     FLAG,F05S1
              MOV    A,@2
              MOV    R05S,A
              
              DJZ    R1M
              JMP    TCC_RETURN
              MOV    A,@250;120;由于250ms加长,所以此处减115
              MOV    R1M,A
              
              DJZ    R30M
              JMP    TCC_RETURN
              MOV    A,@30
              MOV    R30M,A
              
              MOV    A,STIME
              AND    A,@0XF
              JBS    R3,Z
              JMP    TCC_RETURN0
              BC     P6,JDQ1
              BC     P6,JDQ2
              BC     FLAG1,FKO
              JMP    TCC_RETURN
              
 TCC_RETURN0: DEC    STIME                                           
 TCC_RETURN:  SWAPA  R_R3
              MOV    R3,A
              SWAPA  R_A
              RETI
              
PRTTAB:     ADD      PC,A
            JMP      PRT0
            JMP      PRT1
            JMP      PRT2
            JMP      PRT3
            JMP      PRT4
            JMP      PRT5
            JMP      PRT6  ;益处
            JMP      PRT7  ;益处              

TEMPTAB0:     ADD    PC,A
              RETL   @0X9f
              RETL   @0Xa4
              RETL   @0Xa9
              RETL   @0Xae
              RETL   @0Xb3
              RETL   @0Xb8
              RETL   @0Xbe
              RETL   @0Xc4
              RETL   @0Xca
              RETL   @0Xd0
              RETL   @0Xd6
              RETL   @0Xdd
              RETL   @0Xe4
              RETL   @0Xeb
              RETL   @0Xf2
              RETL   @0XFF;fa

TEMPTAB1:     ADD    PC,A
              RETL   @0X02
              RETL   @0X0a
              RETL   @0X12
              RETL   @0X1b
              RETL   @0X24
              RETL   @0X2e
              RETL   @0X38
              RETL   @0X42
              RETL   @0X4d
              RETL   @0X58
              RETL   @0X63
              RETL   @0X6f
              RETL   @0X7c
              RETL   @0X88
              RETL   @0X96
              RETL   @0Xa4
              RETL   @0Xb2
              RETL   @0Xc1
              RETL   @0Xd1
              RETL   @0Xe1
              RETL   @0XFF;f2
              
TEMPTAB2:     ADD    PC,A
              RETL   @0X04
              RETL   @0X16
              RETL   @0X2a
              RETL   @0X3d
              RETL   @0X52
              RETL   @0X68
              RETL   @0X7f
              RETL   @0X96
              RETL   @0Xaf
              RETL   @0Xc8
              RETL   @0Xe3
              RETL   @0XFF;ff
              
TEMPTAB3:     ADD    PC,A
              RETL   @0X1c
              RETL   @0X3a
              RETL   @0X5a
              RETL   @0X7b
              RETL   @0X9e
              RETL   @0Xbf;???
              RETL   @0Xff;e8
              
              
TEMPTAB4:     ADD    PC,A
              RETL   @0X0f
              RETL   @0X39
              RETL   @0X64
              RETL   @0Xa5
              RETL   @0Xc0
              RETL   @0Xff;f2
              
TEMPTAB5:     ADD    PC,A
              RETL   @0X26
              RETL   @0X5c
              RETL   @0X95
              RETL   @0XFF;b2
              
TEMPH:        ADD    PC,A
              RETL   @80            ;69度,数据表只有,   
              RETL   @64 
              RETL   @43
              RETL   @31
              RETL   @24
              RETL   @18
              

TIMETABLE:    ADD   PC,A
              RETL  @00
              RETL  @05
              RETL  @10
              RETL  @15
              RETL  @20
              RETL  @25
              RETL  @30
              RETL  @35
              RETL  @40
              RETL  @45
              RETL  @50
              RETL  @55
              RETL  @60
              RETL  @65
              RETL  @70
              RETL  @75     

REMOTETAB:    ADD   PC,A
              RETL  @0XFF   ;0
              RETL  @0XA0   ;1
              RETL  @0X20   ;2
              RETL  @0X10   ;3
              RETL  @0X10   ;4
              RETL  @0X80   ;5
              RETL  @0X00   ;6                                                            
              RETL  @0X90   ;7

;=====================================================================================
;按键检测,按键值放在RKEY中,底半字节为检测到的键值,高半字节为上次检测到的值
;RKEY的最高位为有按键标志
;====================================================================================
         
 
;=============================================================================================	              
READKEY:JBC    RKEY,7
        RET             ;一样,有按键,且是一直按住,则退出
        
        JBC    FLAG1,FKO
        JMP    READK    
        
        MOV    A,RKEYTC
        XOR    A,@7
        JBS    R3,Z
        RET
READK:  MOV    A,RKEYTC
        MOV    RKEY,A
        BS     RKEY,7
        BS     FLAG,FLED
        
       
        
        AND    A,@7
        ADD    PC,A
        JMP    RKEY0                       
        JMP    RKEY1
        JMP    RKEY2
        JMP    RKEY3
        JMP    RKEY4
        JMP    RKEY5
        JMP    RKEY6
        JMP    RKEY7  

WRITE:        MOV     A,B              ;放在ROM255以前    
              ADD     PC,A
              JMP     ST0
              JMP     ST1
              JMP     ST2
              JMP     ST3
              JMP     ST4
              JMP     ST5
              JMP     ST6
              JMP     ST7
              JMP     ST8
              JMP     ST9    

RKEY0:  ;BC     FLAG1,FTIME
        ;BC     FLAG1,FTEMP
        ;CLR    RKEY
        RET
        
RKEY1:  ;BC     FLAG1,FTIME
        ;BC     FLAG1,FTEMP
        JBS    P6,3
        JMP    RK11
        BC     P6,3 ;原来为开,则关
        BC     D0+8,0
        BC     D0+1,0
        RET
   
  RK11: BS     P6,3 ;原来为开,则关
        BS     D0+8,0
        BS     D0+1,0
        RET
              
RKEY2:  ;BC     FLAG1,FTIME
        ;BC     FLAG1,FTEMP
        MOV    A,P6         ;加热  ,输出控制       
        AND    A,@3
        ADD    PC,A
        JMP    RK20

⌨️ 快捷键说明

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