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

📄 cal_lcd.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
字号:
+                     1 
0000                  2 MACRO PP2One()    
+                     3     	lda	#01h
+                     4     	sta	PP
+                     5         ENDM
+                     6         
0000                  7 MACRO PP2Zero()    
+                     8     	lda	#00h
+                     9     	sta	PP
+                    10         ENDM                
+                    11         
+                    12 
0000                 13 MACRO PP2store(%1)    
+                    14  
+                    15     	lda	PP
+                    16     	sta0	%1
+                    17         ENDM
+                    18         
0000                 19 MACRO PP2pop(%1)    
+                    20  
+                    21     	lda0	%1
+                    22     	sta	PP
+                    23     	
+                    24         ENDM        
+                    25 
0000                 26 MACRO	EI()        
+                    27  	lda      OP1
+                    28        	ora      #10h              ; D4 INTE
+                    29        	sta      OP1        
+                    30         ENDM
+                    31         
+                    32         
0000                 33 MACRO	DI()
+                    34 	lda      OP1
+                    35         anda     #~10h
+                    36        	sta      OP1       
+                    37         ENDM
+                    38               
+                    39 
+                    40 .include "Cal_MACRO.H" 
+                    40 
0000                 40         MACRO   OFFSET_TP(%1,%2)            ;1009
+                    40         adda     #<(%2)
+                    40         sta      %1+0
+                    40         lda      #@(%2)
+                    40         addc     #0           
+                    40         sta      %1+1
+                    40         ;lda      #^(%2)  
+                    40         ;addc     #0 
+                    40         ;sta      %1+2
+                    40         lda      #0
+                    40         sta      TPP
+                    40         lda      %1+1
+                    40         sta      TPH               
+                    40         lda      %1+0
+                    40         sta      TPL  
+                    40         ENDM
+                    40                 
0000                 40         MACRO   SET_TP(%1,%2)            ;1009
+                    40         lda      #<(%2)
+                    40         sta      %1+0
+                    40         lda      #@(%2)
+                    40         addc     #0           
+                    40         sta      %1+1
+                    40         ;lda      #^(%2)  
+                    40         ;addc     #0 
+                    40         ;sta      %1+2
+                    40         lda      #0
+                    40         sta      TPP
+                    40         lda      %1+1
+                    40         sta      TPH               
+                    40         lda      %1+0
+                    40         sta      TPL  
+                    40         ENDM
+                    40         
0000                 40         MACRO   ADD_TP(%1,%2)            ;1009         
+                    40         lda     %1+0
+                    40         adda    #%2                        ;+1
+                    40         sta     %1+0
+                    40         lda     #00h
+                    40         addc    %1+1
+                    40         sta     %1+1
+                    40         ;lda	#00h
+                    40         ;addc	%1+2
+                    40         ;sta	%1+2
+                    40         
+                    40         ;lda	%1+2	 ;for intterrpt
+                    40         lda     #0
+                    40 	sta	TPP
+                    40         lda     %1+1
+                    40         sta     TPH
+                    40         lda     %1+0
+                    40         sta     TPL                
+                    40         ENDM
+                    40           
0000                 40         MACRO COPY_BUFDATA(%1,%2)
+                    40         
+                    40 	lda	#%1
+                    40 	sta	Addr1
+                    40 	lda	#%2
+                    40 	sta	Addr2
+                    40 
+                    40 	call	CopyData
+                    40 		
+                    40 	ENDM
+                    40 
+                    40 
+                    40 
+                    40 
+                    40 
+                    40 
+                    40 
0000                 40         MACRO      CHK_FLAG(%1,%2)        
+                    40         lda        %1                             ;High active
+                    40         anda       #%2
+                    40         ENDM  
+                    40         
0000                 40         MACRO      SET_FLAG(%1,%2) 
+                    40         lda        %1
+                    40         ora        #%2
+                    40         sta        %1
+                    40         ENDM
+                    40         
0000                 40         MACRO      CLR_FLAG(%1,%2)
+                    40         lda        %1
+                    40         anda       #~%2
+                    40         sta        %1
+                    40         ENDM 
+                    40                 
+                    40         
0000                 40         MACRO   LOAD_PTR()           
+                    40         lda	temp_Sphptr+2	 ;for intterrpt
+                    40 	sta	TPP
+                    40         lda     temp_Sphptr+1
+                    40         sta     TPH
+                    40         lda     temp_Sphptr+0
+                    40         sta     TPL
+                    40         ENDM 
+                    40         
0000                 40         MACRO   UPDATE_PTR()
+                    40                                  ;for main func
+                    40         lda     temp_Sphptr+0
+                    40         inca                         ;+1
+                    40         sta     temp_Sphptr+0
+                    40         lda     #00h
+                    40         addc    temp_Sphptr+1
+                    40         sta     temp_Sphptr+1
+                    40         lda	#00h
+                    40         addc	temp_Sphptr+2
+                    40         sta	temp_Sphptr+2
+                    40         ENDM 
+                    40         
+                    40 
0000                 40         MACRO   SET_TABLE(%1,%2) 
+                    40        ;deca   
+                    40         adda       #<%1
+                    40         sta        %2+0
+                    40         lda        #>%1
+                    40         addc       #0         
+                    40         sta        %2+1
+                    40         lda        #^%1
+                    40         addc       #0
+                    40         sta        %2+2     
+                    40         sta        TPP
+                    40         lda        %2+1
+                    40         sta        TPH
+                    40         lda        %2+0
+                    40         sta        TPL          
+                    40         ENDM
+                    40 ;;;;;---------------------;;;;
0000                 40 MACRO	HIGHNIBBLE(%1,%2)
+                    40 	lda	%1
+                    40 	adda	#%2
+                    40 	sta	r_dp
+                    40 	lda	i
+                    40 	rorc
+                    40 	rorc
+                    40 	rorc
+                    40 	rorc
+                    40 	anda	#0fh
+                    40 	sta	Addr1
+                    40 	ENDM
+                    40 ;;;;----------------------;;;;;
0000                 40 MACRO	HIGHNIBBLE2(%1,%2)
+                    40 	lda	%1
+                    40 	adda	%2
+                    40 	sta	r_dp
+                    40 	lda	i
+                    40 	rorc
+                    40 	rorc
+                    40 	rorc
+                    40 	rorc
+                    40 	anda	#0fh
+                    40 	sta	Addr1
+                    40 	ENDM
+                    40 ;;;;---------------------;;;;
+                    40 ;MACRO	ADDTP()
+                    40 ;	adda	Table
+                    40 ;	sta	Table
+                    40 ;	lda	Table+1
+                    40 ;	addc	#0
+                    40 ;	sta	Table+1
+                    40 ;	lda	Table+2
+                    40 ;	addc	#0
+                    40 ;	sta	Table+2
+                    40 ;	ENDM
+                    40 ;;;;;---------------------;;;;
+                    40 ;MACRO	SETLCD(%1,%2)
+                    40 ;	lda	#%1
+                    40 ;	sta	FontHigh
+                    40 ;	lda	#%2
+                    40 ;	sta	FontWidth
+                    40 ;	ENDM
+                    40 ;;;;---------------------;;;;
+                    40 ;MACRO	PUTCOMSEG(%1,%2)
+                    40 ;	lda	#%1
+                    40 ;	sta	LcdCom
+                    40 ;	lda	#%2
+                    40 ;	sta	LcdSeg
+                    40 ;	ENDM
+                    40 ;;;;---------------------;;;;
+                    40 ;MACRO	LOADTPADDR(%1)
+                    40 ;	lda	#^%1
+                    40 ;	sta	Table+2
+                    40 ;	lda	#>%1
+                    40 ;	sta	Table+1
+                    40 ;	lda	#<%1
+                    40 ;	sta	Table
+                    40 ;	ENDM
+                    40 ;;;;---------------------;;;;
+                    40 ;MACRO	LOADTP()
+                    40 ;	lda	Table+2
+                    40 ;	sta	r_tpp
+                    40 ;	lda	Table+1
+                    40 ;	sta	r_tph
+                    40 ;	lda	Table
+                    40 ;	sta	r_tpl
+                    40 ;	ENDM
+                    40 		     
0000                 40         MACRO   SET_PORT(%1,%2,%3)
+                    40         lda     %3
+                    40         ora     #%2
+                    40         sta     %3
+                    40         sta     %1   
+                    40         ENDM      
+                    40         	
0000                 40         MACRO   CLR_PORT(%1,%2,%3)
+                    40         lda     %3 
+                    40         anda    #~%2
+                    40         sta     %3
+                    40         sta     %1
+                    40         ENDM
+                    40         
0000                 40         MACRO   CHK_PORT(%1,%2)
+                    40         lda     %1
+                    40         anda    #%2
+                    40         ENDM
+                    40         
+                    40 ;        MACRO   DELAY_US(%1)               ;;;Offset 1 Inst
+                    40 ;        lda     #%1    ;2
+                    40 ;        suba    #3     ;2
+                    40 ;        sta     temp   ;2 
+                    40 ;        brnc    126$           ;3     	 
+                    40 ;   127$:                           
+                    40 ;        suba    #3             ;2         ;8 insts = 3 us
+                    40 ;        sta     temp           ;2 
+                    40 ;        nop                    ;1
+                    40 ;      ;brz     126$
+                    40 ;        brc     127$           ;3 
+                    40 ;   126$:
+                    40 ;        ENDM  
+                    40                   
+                    40 
+                    40 
+                    40 ;[KEY DEFINITION]--------------------------------------------------------
0010                 40 Key_0		EQU	16                   ;璸衡诀

⌨️ 快捷键说明

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