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

📄 r08cnvlcdclk1.ms

📁 用SAM72N9写的电子秤文档
💻 MS
📖 第 1 页 / 共 5 页
字号:
.stabn 513, LineInfo
	ld	mx,a			; clr 'am'
.stabn 514, LineInfo
	jp	DspH1
DspH0:
;	ld	x,090h
;	calz	DspDigitSpa		; ' ' 	
;	ld	x,09ch
;	calz	DspDigitSpa
.stabn 520, LineInfo
	calz	ClrAmPm
.stabn 521, LineInfo
	call	CopyByte
.stabn 522, LineInfo
	jp	NDspH0
DspH1:
;	ld	x,DspHourBuf
;	calz	IncByteD
NDspH0:
.stabn 527, LineInfo
	ld	y,(0x32)
.stabn 528, LineInfo
	ld	a,my
DspH2:
.stabn 530, LineInfo
	calz	DspHourL
;	ld	x,LCDMapMem1
;	ld	y,093h
;	calz	DspPattern
;	ld	x,LCDMapMem1
;	ld	my,mx
;	inc	x
;	inc	y
;	ld	a,mx
;	or	a,0001b
;	ld	my,a
.stabn 541, LineInfo
	ld	y,(0x33)
.stabn 542, LineInfo
	ld	a,my
.stabn 543, LineInfo
	fan	a,0b1111
.stabn 544, LineInfo
	jp	nz,NewDspH2
.stabn 545, LineInfo
	jp	NewDspH22
NewDspH2:
.stabn 547, LineInfo
	ld	x,(0x34)
.stabn 548, LineInfo
	ld	y,0x041
.stabn 549, LineInfo
	calz	DspDigit
.stabn 550, LineInfo
	ret
DspHourOff:
	; off minute xx
.stabn 553, LineInfo
	ld	a,0
.stabn 554, LineInfo
	ld	x,0x043
.stabn 555, LineInfo
	ld	mx,a
.stabn 556, LineInfo
	ld	a,0x01
.stabn 557, LineInfo
	ld	x,0x044
.stabn 558, LineInfo
	ld	mx,a
NewDspH22:
.stabn 560, LineInfo
	ld	x,0x041
.stabn 561, LineInfo
	calz	DspDigitSpa
.stabn 562, LineInfo
	ret
	
FlashMinute:
.stabn 565, LineInfo
	ld	x,(0x16)
.stabn 566, LineInfo
	FAN	mx,(1)
.stabn 567, LineInfo
	Jp	z,DspMinuteOff	

DspMinute:
	; display min xx
;	ld	x,RTCMinH
.stabn 572, LineInfo
	ld	a,my
.stabn 573, LineInfo
	push	yl
.stabn 574, LineInfo
	push	yh
.stabn 575, LineInfo
	ld	x,(0x3A)
.stabn 576, LineInfo
	ld	y,0x047
.stabn 577, LineInfo
	calz	DspDigit
;	ld	x,RTCMinL
.stabn 579, LineInfo
	pop	yh
.stabn 580, LineInfo
	pop	yl
.stabn 581, LineInfo
	inc	y
.stabn 582, LineInfo
	ld	a,my
.stabn 583, LineInfo
	ld	x,(0x38)
.stabn 584, LineInfo
	ld	y,0x045
.stabn 585, LineInfo
	calz	DspDigit
.stabn 586, LineInfo
	ret
DspMinuteOff:
	; off minute xx
.stabn 589, LineInfo
	ld	x,0x045
.stabn 590, LineInfo
	calz	DspDigitSpa
.stabn 591, LineInfo
	ld	x,0x047
.stabn 592, LineInfo
	calz	DspDigitSpa
.stabn 593, LineInfo
	ret

	
		
;-------------------------------------
; Cate   : Display
; By     : Hcy
; Func   : dislay the fraction
; Desc   : DspFraction
; I/P    : RxSBuffer(0--9) --> nul,1/8,1/4,3/8,1/2,5/8,3/4,7/8,9/8,nul
; O/P    : --
; Destroy:
; Note   :
;DspFraction:
;	ld	y,RxSBuffer
;	cp	my,0
;	jp	z,DspF0
;	cp	my,9
;	jp	z,DspF0
;	ld	a,my
;	add	a,07h		; a+7
;	ld	x,RxBuffer8
;	calz	DspPattern1
;	ld	y,RxBuffer8
;	ld	a,my
;	ld	x,098h
;	calz	DspPattern
;	inc	y
;	ld	a,my
;	calz	DspPattern
;	ret
;DspF0:
	; display nul/nul
;	ld	a,7
;	ld	x,098h
;	calz	DspPattern1	; display ' ' in 5th digit
;	calz	DspPattern1	; display ' ' in 6th digit
;	ret	
		
;-------------------------------------
; Cate   : Display
; By     : Hcy
; Func   : display the weight from the samsung
; Desc   : DspWeight
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
;DspWeight:
;	ld	y,RxBuffer6
;	ld	x,090h
;	ld	b,4
;DspW0:
;	ld	a,my
;	push	b
;	ld	b,a
;	inc	y
;	fan	my,0fh
;	jp	nz,DspW1
;	ld	a,b
;	calz	DspDigit    
;	jp	DspW2
;DspW1:
;	ld	a,b
;	calz	DspDigit1
;DspW2:
;	ld	b,YL
;	rcf
;	sbc	b,3		; get next digit
;	ld	YL,b		
;	pop	b
;	ADD	b,0FH		;
;	jp	nz,DspW0
;	ret

;-------------------------------------
; Cate   : Display
; By     : Hcy
; Func   : display the icons from the samsung
; Desc   : DspIcons
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
;DspIcons:
;	ld	y,RxIcon0
;	ld	x,09ch
;	ld	b,4
;DspI0:
;	ld	mx,my
;	inc	y
;	inc	x
;;	rcf
;;	sbc	b,1		; get next digit
;	ADD	b,0FH		;
;	jp	nz,DspI0
;	ret

;---------------------------------------
;---------------------------------------
; 	calculate the clock
;---------------------------------------
;---------------------------------------
;-------------------------------------
; Cate   : Application
; By     : Hcy
; Func   : increase byte by decimal
; Desc   : IncByteD
; I/P    : X(address of buffer)
; O/P    :  
; Destroy:
; Note   :
IncByteD:
;	SET	F,0100B     
.stabn 707, LineInfo
	SDF
.stabn 708, LineInfo
	RCF                 
.stabn 709, LineInfo
	ADD     MX,0x01      
.stabn 710, LineInfo
	inc	x           
.stabn 711, LineInfo
	ADC     MX,0x00      
;	RST	F,1011B     
.stabn 713, LineInfo
	RDF
.stabn 714, LineInfo
	RET

;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : toggle the half sec flag
; Desc   : ToggleHalfSecFlag
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
;ToggleHalfSecFlag:
;	ld	x,AppFlags
;	xor	mx,HalfSecFlag
;	fan	mx,HalfSecFlag
;	jp	nz,xToggleHalfS
;	or	mx,SecClickFlag	; set flag if from 1->0
;xToggleHalfS:
;	ret

;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : check if up to 1 minute
; Desc   : IncSecond
; I/P    : --
; O/P    : --
; Destroy:
; Note   : c=0 if not up to 1 minute, c=1 if up to 1 minute
IncSecond:
.stabn 744, LineInfo
	ld	x,(0x10)
.stabn 745, LineInfo
	calz	IncByteD
.stabn 746, LineInfo
	ld	x,(0x10)
.stabn 747, LineInfo
	calz	IsEqu60
.stabn 748, LineInfo
	ret
	
;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : is che memory equ 60h
; Desc   : IsEqu60
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
IsEqu60:       
.stabn 760, LineInfo
	cp	mx,0x00
.stabn 761, LineInfo
	jp	z,IsEqu0
;	rcf	
;	ret        
;	jp	IsEqu2      
.stabn 765, LineInfo
	jp	IsRight8                              
IsEqu0:
.stabn 767, LineInfo
	inc	x                                                      
.stabn 768, LineInfo
	cp	mx,0x06                                      
.stabn 769, LineInfo
	jp	z,IsEqu1		; jmp if 1 minute time out  
IsRight8:
.stabn 771, LineInfo
	rcf
.stabn 772, LineInfo
	ret 
IsEqu1:                                                      
.stabn 774, LineInfo
	ld	mx,0			; clr the memory 
IsEquE:  
.stabn 776, LineInfo
	scf                                      
.stabn 777, LineInfo
	ret              
                               
;
;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : is che memory equ 24h
; Desc   : IsEqu24
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
IsEqu24:       
.stabn 790, LineInfo
	cp	mx,0x04
.stabn 791, LineInfo
	jp	z,IsEqu240
.stabn 792, LineInfo
	jp	IsRight8                     
IsEqu240:
.stabn 794, LineInfo
	push	xl
.stabn 795, LineInfo
	inc	x 
.stabn 796, LineInfo
	cp	mx,0x02            
.stabn 797, LineInfo
	pop	xl                           
.stabn 798, LineInfo
	jp	z,IsEqu241		; jmp if 1 minute time out  
.stabn 799, LineInfo
	jp	IsRight8                                               
IsEqu241:    
.stabn 801, LineInfo
        ldpx	mx,0
.stabn 802, LineInfo
        ld	mx,0 
.stabn 803, LineInfo
	jp	IsEquE

FlashTimeFormat:   
.stabn 806, LineInfo
	ld	x,(0x16)
.stabn 807, LineInfo
	FAN	mx,(1)
.stabn 808, LineInfo
	Jp	z,DspHourOff                                             
;-------------------------------------
; Cate   : display
; By     : Hcy
; Func   : display '24:H' or '12:H'
; Desc   : DspTimeFormat
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
DspTimeFormat:
.stabn 819, LineInfo
	ld	x,(1)
.stabn 820, LineInfo
	fan	mx,(8)
.stabn 821, LineInfo
	jp	nz,DspTime0		; jmp if 24 hour
.stabn 822, LineInfo
	ld	a,1
.stabn 823, LineInfo
	ld	x,0x041
.stabn 824, LineInfo
	calz	DspPattern
.stabn 825, LineInfo
	ld	a,2
.stabn 826, LineInfo
	calz	DspHourL
.stabn 827, LineInfo
	jp	DspTime1
DspTime0:
.stabn 829, LineInfo
	ld	a,2
.stabn 830, LineInfo
	ld	x,0x041
.stabn 831, LineInfo
	calz	DspPattern
.stabn 832, LineInfo
	ld	a,4
.stabn 833, LineInfo
	calz	DspHourL
DspTime1:
.stabn 835, LineInfo
	ld	a,0
.stabn 836, LineInfo
	ld	x,0x045
.stabn 837, LineInfo
	calz	DspPattern1		; display 'H'
.stabn 838, LineInfo
	calz	DspDigitSpa	
.stabn 839, LineInfo
	ret

;-------------------------------------                        
; Cate   : Clock                                              
; By     : Hcy                                                
; Func   : check if up to 1 hour                            
; Desc   : IncMinute                                        
; I/P    : --                                                 
; O/P    : --                                                 
; Destroy:                                                    
; Note   : c=0 if not up to 1 minute, c=1 if up to 1 minute   
IncMinute:                                                   
.stabn 851, LineInfo
	ld	x,(0x12)      
.stabn 852, LineInfo
	calz	IncByteD    
.stabn 853, LineInfo
	ld	x,(0x12)                    
.stabn 854, LineInfo
	calz	IsEqu60                    
.stabn 855, LineInfo
	ret                                
;
;-------------------------------------                        
; Cate   : Clock                                              
; By     : Hcy                                                
; Func   : check if up to 1 hour                            
; Desc   : IncHour                                        
; I/P    : --                                                 
; O/P    : --                                                 
; Destroy:                                                    
; Note   : c=0 if not up to 24 hour, c=1 if up to 24 hour   
IncHour:                                                   
.stabn 867, LineInfo
	ld	x,(0x14)      
.stabn 868, LineInfo
	calz	IncByteD    
.stabn 869, LineInfo
	ld	x,(0x14)                    
.stabn 870, LineInfo
	calz	IsEqu24                    
.stabn 871, LineInfo
	ret                                
;
;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : clear the byte
; Desc   : ClrByte
; I/P    : x(ram address)
; O/P    : --
; Destroy:
; Note   :
;ClrByte:
;	ld	a,0
;	ld	mx,a
;	inc	x
;	ld	mx,a
;	ret
;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : inc setting HOUR
; Desc   : IncSetHour
; I/P    : --
; O/P    : --
; Destroy:
; Note   : 
;IncSetHour:
;	ld	x,TmpRTCHour
;	calz	IncByteD
;	ld	x,TmpRTCHour
;	calz	IsEqu24
;	jp	nc,IncSet0
;	ld	x,TmpRTCHour
;	calz	ClrByte
;IncSet0:
;	ld	y,TmpRTCHourL
;	calz	DspHour
;	ret
	
;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : inc setting minute
; Desc   : IncSetMinute
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
;IncSetMinute:
;	ld	x,TmpRTCMinute
;	calz	IncByteD
;	ld	x,TmpRTCMinute
;	calz	IsEqu60
;	ld	y,TmpRTCMinuteL
;	calz	DspMinute
;	ret
;-------------------------------------
; Cate   : Common
; By     : Hcy
; Func   : copy 2-byte to other memory, (buffer1) --> (buffer2)
; Desc   : Copy2Byte
; I/P    : x(buffer 1 low address), y(buffer 2 low address)
; O/P    :
; Destroy:
; Note   :
;Copy2Byte:
;	ld	a,4
;Copy0:
;	ld	my,mx
;	inc	x
;	inc	y
;	add	a,0fh		; dec a
;	jp	nz,Copy0
;	ret	
;---------------------------------------
;---------------------------------------
;	Communication Routine
;---------------------------------------
;---------------------------------------
;-------------------------------------
; Cate   : communication
; By     : Hcy
; Func   : reload the communication variable
; Desc   : ReloadCommVar
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
;ReloadCommVar:
;	ld	y,CommBufferL
;	ld	my,0		; clr the communication buffer
;	ld	y,CommCount
;	ld	my,04h		; reload the communication bit counter
;	ret

;-------------------------------------
; Cate   : communication
; By     : Hcy
; Func   : store to the receive buffer
; Desc   : ToRecBuffer
; I/P    : --
; O/P    : --
; Destroy:
; Note   :	
;ToRecBuffer:
;	ld	y,RxStartBufL
;	ld	x,RxNibbleCnt
;	ld	a,mx
;Prog1:
;	ld	YL,a
;Prog2:
;	ld	x,CommBufferL
;	ld	my,mx		; store receive data to receive buffer
;	ret

;-------------------------------------
; Cate   : communication
; By     : Hcy
; Func   : is che memory equ 1bh
; Desc   : IsEquStartCode
; I/P    : Y(start code address)
; O/P    : --
; Destroy:
; Note   : c=1 if not equal 1bh, c=0 if equal 1bh	
;IsEquStartCode:
;	ld	y,RxStartBufL
;	cp	my,0Bh
;	jp	z,IsEquEE
;IsEquE:
;	scf	
;	ret                                            
;IsEquEE:
;	rcf
;	ret   


                                           
;-------------------------------------
; Cate   : communication
; By     : Hcy
; Func   : is receive command right ? 
; Desc   : IsRightCmd
; I/P    : --
; O/P    : --
; Destroy:
; Note   : c=1 if undefined command, c=0 if defined command
;IsRightCmd:
;	ld	x,RxCommand
;	cp	mx,SHOWLDIGITCMD
;	jp	nz,IsRight0
;	; show Ldigit command
;	ld	x,SumNumRxNibble
;	ld	mx,0ch
;	jp	IsRight8
;IsRight0:
;	cp	mx,SHOWSDIGITCMD
;	jp	nz,IsRight1
;	; show Sdigit command
;	ld	x,SumNumRxNibble
;	ld	mx,1
;IsRight8:
;	rcf
;	ret
;IsRight1:
;	cp	mx,SHOWICONCMD
;	jp	nz,IsRight2
;	; show icon command
;	ld	x,SumNumRxNibble
;	ld	mx,4
;	ld	x,RxNibbleCnt
;	ld	mx,0ch			; 
;	jp	IsRight8
;IsRight2:
;	cp	mx,SHOWMSGCMD
;	jp	nz,IsEquE

⌨️ 快捷键说明

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