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

📄 nuanfeng.asm

📁 暖风机的相关程序及原理图,调试成功,希望对大家有用
💻 ASM
📖 第 1 页 / 共 4 页
字号:
		JMP    SD1
		BS     6,DATA
		JMP    SD2
SD1:
		BC     6,DATA
SD2:
		BC     6,WR
		;NOP
		;NOP
		CALL   DELAY2
		BS     6,WR
		RRC    RX
		DJZ    DCNT1
		JMP    J4	
		RET
;---------------------
;入口:BINARY	;BINARY<0X64
;出口:BCD
;BCD_CNT
;-------------------
BINARY_BCD:
	           CLR      BCD
	           MOV      A,@8
	           MOV      BCD_CNT,A
         BCD_L:
	           CLRA
	           BC       3,0
	           RLC      BINARY
	           RLC      BCD
	           JBC      BCD,4
	           MOV      A,@6
	           ADD      A,BCD
	           DAA
	           MOV      BCD,A
	           DJZ      BCD_CNT
	           JMP      BCD_L
	           RET	
  
;=====================================================================  
;入口RAM地址R4,字型入口B,用到寄存器,DCNT1,DCNT2,B,B3
;
;=====================================================================
WRITECHAR:     MOV     A,B
               MOV     BINARY,A
               CALL    BINARY_BCD
               MOV     A,BCD
               MOV     YU,A       ;将待显示的数据放在YU中,没有冲突
               AND     A,@0XF
               MOV     B,A
               MOV     A,@D0+5
               MOV     R4,A
               CALL    WRITE
               SWAPA   YU
               AND     A,@0XF
               MOV     B,A
               MOV     A,@D0+2 ;写个位
               MOV     R4,A
               CALL    WRITE
               RET

ST0:          MOV   A,@0B110
              MOV   R0,A
              INC   R4
              MOV   A,@0B101
              MOV   R0,A
              INC   R4
              MOV   A,@0B110
              MOV   R0,A
              RET

ST1:          MOV   A,@0B000
              MOV   R0,A
              INC   R4
              MOV   A,@0B000
              MOV   R0,A
              INC   R4
              MOV   A,@0B110
              MOV   R0,A
              RET              

ST2:          MOV   A,@0B010
              MOV   R0,A
              INC   R4
              MOV   A,@0B111
              MOV   R0,A
              INC   R4
              MOV   A,@0B100
              MOV   R0,A
              RET
              
ST3:          MOV   A,@0B000
              MOV   R0,A
              INC   R4
              MOV   A,@0B111
              MOV   R0,A
              INC   R4
              MOV   A,@0B110
              MOV   R0,A
              RET              

ST4:          MOV   A,@0B100
              MOV   R0,A
              INC   R4
              MOV   A,@0B010
              MOV   R0,A
              INC   R4
              MOV   A,@0B110
              MOV   R0,A
              RET     

ST5:          MOV   A,@0B100
              MOV   R0,A
              INC   R4
              MOV   A,@0B111
              MOV   R0,A
              INC   R4
              MOV   A,@0B010
              MOV   R0,A
              RET

ST6:          MOV   A,@0B110
              MOV   R0,A
              INC   R4
              MOV   A,@0B111
              MOV   R0,A
              INC   R4
              MOV   A,@0B010
              MOV   R0,A
              RET

ST7:          MOV   A,@0B000
              MOV   R0,A
              INC   R4
              MOV   A,@0B100
              MOV   R0,A
              INC   R4
              MOV   A,@0B110
              MOV   R0,A
              RET

ST8:          MOV   A,@0B110
              MOV   R0,A
              INC   R4
              MOV   A,@0B111
              MOV   R0,A
              INC   R4
              MOV   A,@0B110
              MOV   R0,A
              RET

ST9:          MOV   A,@0B100
              MOV   R0,A
              INC   R4
              MOV   A,@0B111
              MOV   R0,A
              INC   R4
              MOV   A,@0B110
              MOV   R0,A
              RET
;======================================================================================
;产生蜂鸣器,LED等的时间,和0.5小时的定时时间
;======================================================================================
SYSTIME:      JBS     FLAG,FLED
              JMP     SYSBELL
              BC      FLAG,FLED
              MOV     A,@10
              MOV     R200MS,A
              MOV     A,@30
              MOV     R15S,A
              MOV     A,@60
              MOV     R30S,A
              BS      P5,LED
              BS      P6,BELL
                    
SYSBELL:      JBS     FLAG,F33MSS
              JMP     SYSLED
              BC      FLAG,F33MSS
              DJZ     R200MS
              JMP     SYSLED
              BC      P6,BELL
              
SYSLED:       JBS     FLAG,F05S1
              RET
              BC      FlAG,F05S1
              DJZ     R15S
              JMP     SYSOFF
              BC      P5,LED
              
              
SYSOFF:       JBC     FLAG1,FKO      ;加热继电器关30S后,风扇关
              RET
              DJZ     R30S
              RET
              BC      P6,FS
              MOV     A,@60
              MOV     R30S,A
              RET                          
;===============================================================================              
;显示每0.25s刷新显示             
MAINDISPLAY:
              JBS    FLAG,F250MS
              RET
              BC     FLAG,F250MS
              
             ; JBS    FLAG1,FKO     ;开还是关
             ; JMP    SWITCHISOFF
              
                 
              BS     D0+10,0
              BS     D0+11,2
              
              MOV    A,STIME
              AND    A,@0xf
              JBS    R3,Z
              JMP    CLRCLOCK  ;清楚时钟符号
              
              BC     D0+9,2
              JMP    SWITCHISON
       
      CLRCLOCK:BS    D0+9,2        
              
  SWITCHISON: JBS    FLAG1,F1
              JMP    SOFF         ;风扇摇头显示
       
       SON:   BS     D0+9,1       ;K11
              BS     D0+10,1       ;K9
              BC     D0+10,2       ;K10
              BC     D0+9,0        ;K12
              BC     FLAG1,F1
              JMP    MD0;1
       
       SOFF:  BC     D0+9,1       ;K11
              BC     D0+10,1       ;K9
              BS     D0+10,2       ;K10
              BS     D0+9,0        ;K12
              BS     FLAG1,F1
              
     MD0:     JBS    FLAG1,FKO     ;开还是关
              JMP    SWITCHISOFF
                     
       ;------------------------------加热时光条显示              
       MD1:   JBS    FLAG,F05S
              JMP    DISPLCD
              
              BC     FLAG,F05S
  ;            MOV    A,P6         ;原来样品没有闪烁,所以取消闪烁
  ;            AND    A,@3
  ;            JBC    R3,Z
  ;            JMP    HEATOFF   ;没有加热
  ;            
  ;            JBS    FLAG1,F2 
  ;            JMP    HEATOFF   ;亮灭闪烁     
  ;     HEATON:BC     FLAG1,F2
  ;            BS     D0+11,1
  ;            BS     D0+11,0
  ;            JBS    P6,1
  ;            BC     D0+11,1
  ;            JBS    P6,0
  ;            BC     D0+11,0
  ;            JMP    MD2 
  ;                                 
  ;     HEATOFF:BS    FLAG1,F2
  ;             BC    D0+11,1
  ;             BC    D0+11,0
              
     ;----------------------------------设置时候闪烁
      MD2:     MOV   A,FTIMES
               JBC   R3,Z        ;为0退出
               JMP   DISPREALTEMP    ;显示实际温度       
               
               JBS   FLAG1,FTEMP
               JMP   FLASHTIME
               
               
     
     FLASHTEMP:JBS   FLAG1,F3
               JMP   FTOFF
     
     FTON:     BC    FLAG1,F3
               MOV   A,STEMP          
               MOV   B,A
               CALL  WRITECHAR
               BS    D0+2,0;K7,TEMP
               DJZ   FTIMES
               JMP   DISPLCD
               
     FTOFF:    BS    FLAG1,F3
               CLR   D0+2 ;不显示TEMP,和设定的温度
               CLR   D0+3
               CLR   D0+4
               CLR   D0+5
               CLR   D0+6
               CLR   D0+7
               BS    D0+2,0;K7,TEMP
               JMP   DISPLCD   
     
     FLASHTIME:JBS   FLAG1,FTIME
               JMP   DISPREALTEMP;DISPLCD;     ERROR,正常不会出现这种情况
               
               JBS   FLAG1,F4
               JMP   FTIOFF
     
     FTION:    BC    FLAG1,F4
               MOV   A,STIME
               AND   A,@0XF
               CALL  TIMETABLE          
               MOV   B,A
               CALL  WRITECHAR
               BS    D0+5,0;K8,TIME
               ;BS    D0+9,2;显示时钟符号
               BS    D0+4,0;显示小数点
               DJZ   FTIMES
               JMP   DISPLCD                        
               
    FTIOFF:    BS    FLAG1,F4
               CLR   D0+2
               CLR   D0+3
               CLR   D0+4
               CLR   D0+5
               CLR   D0+6
               CLR   D0+7
               BS    D0+5,0;K8,TIME
               ;BS    D0+9,2;显示时钟符号
               JMP   DISPLCD
               
       SETON:  MOV   A,STIME   
               AND   A,@0XF
               CALL  TIMETABLE
               CALL  WRITECHAR


;===========================================================
;关的时候只显示,实际温度
SWITCHISOFF:  MOV     A,@D0
              MOV     R4,A
              JBS     P6,FS
              MOV     A,@12
              JBC     P6,FS
              MOV     A,@9
              
              MOV     DIV1,A
              CLR     R0
              INC     R4
              DJZ     DIV1
              JMP     $-3
              BC      D0+9,2
              BC      D0+10,0
              CLR     D0+11
              
DISPREALTEMP: MOV     A,TEMP
              MOV     B,A
              CALL    WRITECHAR
              
;============================================================
;刷新LCD所有单元
;============================================================
DISPLCD:  	MOV     A,@5
	          MOV     RX,A
	          CALL    SENDMODE
	          MOV     A,@0
	          MOV     RX,A
	          CALL    SENDADDRESS
	          MOV     A,@12
	          MOV     DCNT2,A
	          MOV     A,@D0
	          MOV     R4,A
	          
	  DISW:   MOV     A,R0
	          INC     R4
	          MOV     RX,A
	          CALL    SENDDATA
	          DJZ     DCNT2
	          JMP     DISW
	          RET    
	                       
;DELAY1:       NOP
;DELAY2:       NOP
;              RET          
              
END                   

⌨️ 快捷键说明

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