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

📄 01lcdclk.ms

📁 用SAM72N9写的电子秤文档
💻 MS
📖 第 1 页 / 共 5 页
字号:
	calz	DspPattern
.stabn 518, LineInfo
	inc	y
.stabn 519, LineInfo
	ld	a,my
.stabn 520, LineInfo
	calz	DspPattern
.stabn 521, LineInfo
	ret
DspF0:
	; display nul/nul
.stabn 524, LineInfo
	ld	a,7
.stabn 525, LineInfo
	ld	x,0x098
.stabn 526, LineInfo
	calz	DspPattern1	; display ' ' in 5th digit
.stabn 527, LineInfo
	calz	DspPattern1	; display ' ' in 6th digit
.stabn 528, LineInfo
	ret	
		
;-------------------------------------
; Cate   : Display
; By     : Hcy
; Func   : display the weight from the samsung
; Desc   : DspWeight
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
DspWeight:
.stabn 540, LineInfo
	ld	y,(0x27)
.stabn 541, LineInfo
	ld	x,0x090
.stabn 542, LineInfo
	ld	b,4
DspW0:
.stabn 544, LineInfo
	ld	a,my
.stabn 545, LineInfo
	push	b
.stabn 546, LineInfo
	ld	b,a
.stabn 547, LineInfo
	inc	y
.stabn 548, LineInfo
	fan	my,0x0f
.stabn 549, LineInfo
	jp	nz,DspW1
.stabn 550, LineInfo
	ld	a,b
.stabn 551, LineInfo
	calz	DspDigit    
.stabn 552, LineInfo
	jp	DspW2
DspW1:
.stabn 554, LineInfo
	ld	a,b
.stabn 555, LineInfo
	calz	DspDigit1
DspW2:
.stabn 557, LineInfo
	ld	b,YL
.stabn 558, LineInfo
	rcf
.stabn 559, LineInfo
	sbc	b,3		; get next digit
.stabn 560, LineInfo
	ld	YL,b		
.stabn 561, LineInfo
	pop	b
.stabn 562, LineInfo
	ADD	b,0x0F		;
.stabn 563, LineInfo
	jp	nz,DspW0
.stabn 564, 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 677, LineInfo
	SDF
.stabn 678, LineInfo
	RCF                 
.stabn 679, LineInfo
	ADD     MX,0x01      
.stabn 680, LineInfo
	inc	x           
.stabn 681, LineInfo
	ADC     MX,0x00      
;	RST	F,1011B     
.stabn 683, LineInfo
	RDF
.stabn 684, 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 714, LineInfo
	ld	x,(0x10)
.stabn 715, LineInfo
	calz	IncByteD
.stabn 716, LineInfo
	ld	x,(0x10)
.stabn 717, LineInfo
	calz	IsEqu60
.stabn 718, LineInfo
	ret
	
;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : is che memory equ 60h
; Desc   : IsEqu60
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
IsEqu60:       
.stabn 730, LineInfo
	cp	mx,0x00
.stabn 731, LineInfo
	jp	z,IsEqu0
;	rcf	
;	ret        
;	jp	IsEqu2      
.stabn 735, LineInfo
	jp	IsRight8                              
IsEqu0:
.stabn 737, LineInfo
	inc	x                                                      
.stabn 738, LineInfo
	cp	mx,0x06                                      
.stabn 739, LineInfo
	jp	z,IsEqu1		; jmp if 1 minute time out  
IsRight8:
.stabn 741, LineInfo
	rcf
.stabn 742, LineInfo
	ret 
IsEqu1:                                                      
.stabn 744, LineInfo
	ld	mx,0			; clr the memory 
IsEquE:  
.stabn 746, LineInfo
	scf                                      
.stabn 747, LineInfo
	ret              
                               
;
;-------------------------------------
; Cate   : Clock
; By     : Hcy
; Func   : is che memory equ 24h
; Desc   : IsEqu24
; I/P    : --
; O/P    : --
; Destroy:
; Note   :
IsEqu24:       
.stabn 760, LineInfo
	cp	mx,0x04
.stabn 761, LineInfo
	jp	z,IsEqu240
.stabn 762, LineInfo
	jp	IsRight8                     
IsEqu240:
.stabn 764, LineInfo
	push	xl
.stabn 765, LineInfo
	inc	x 
.stabn 766, LineInfo
	cp	mx,0x02            
.stabn 767, LineInfo
	pop	xl                           
.stabn 768, LineInfo
	jp	z,IsEqu241		; jmp if 1 minute time out  
.stabn 769, LineInfo
	jp	IsRight8                                               
IsEqu241:    
.stabn 771, LineInfo
        ldpx	mx,0
.stabn 772, LineInfo
        ld	mx,0 
.stabn 773, LineInfo
	jp	IsEquE

FlashTimeFormat:   
.stabn 776, LineInfo
	ld	x,(0x16)
.stabn 777, LineInfo
	FAN	mx,(1)
.stabn 778, 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 790, LineInfo
	ld	x,(1)
.stabn 791, LineInfo
	fan	mx,(8)
.stabn 792, LineInfo
	jp	nz,DspTime0		; jmp if 24 hour
.stabn 793, LineInfo
	ld	a,1
.stabn 794, LineInfo
	ld	x,0x090
.stabn 795, LineInfo
	calz	DspPattern
.stabn 796, LineInfo
	ld	a,2
.stabn 797, LineInfo
	calz	DspPattern
.stabn 798, LineInfo
	jp	DspTime1
DspTime0:
.stabn 800, LineInfo
	ld	a,2
.stabn 801, LineInfo
	ld	x,0x090
.stabn 802, LineInfo
	calz	DspPattern
.stabn 803, LineInfo
	ld	a,4
.stabn 804, LineInfo
	calz	DspPattern
DspTime1:
.stabn 806, LineInfo
	ld	a,0
.stabn 807, LineInfo
	calz	DspPattern1		; display 'H'
.stabn 808, LineInfo
	ld	a,7
.stabn 809, LineInfo
	calz	DspPattern1		; display ' '
.stabn 810, LineInfo
	jp	DspColonOn	
;-------------------------------------                        
; 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 821, LineInfo
	ld	x,(0x12)      
.stabn 822, LineInfo
	calz	IncByteD    
.stabn 823, LineInfo
	ld	x,(0x12)                    
.stabn 824, LineInfo
	calz	IsEqu60                    
.stabn 825, 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 837, LineInfo
	ld	x,(0x14)      
.stabn 838, LineInfo
	calz	IncByteD    
.stabn 839, LineInfo
	ld	x,(0x14)                    
.stabn 840, LineInfo
	calz	IsEqu24                    
.stabn 841, 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
;	; show msg command
;	jp	IsRight8

;;-------------------------------------
; Cate   : Display
; By     : Kwan
; Func   : Clear the LCD ram including digits/icons
; Desc   :
; I/P    :
; O/P    :
; Destroy:
; Note   :
;LCDClr:
;	LD	x,90h
;LCDClr0:
;	ldpx	mx,0
;	cp	xh,0bh		; LCD ram from 90 to AFH
;	jp	nz, LCDClr0
;	ret
;
;;-------------------------------------
; Cate   : KeyBoard
; By     : Kwan
; Func   : Key board scan, set NewKey flag if new key found
;	   set  keyhold flag if the new key is still in-held
; Desc   :
; I/P    :
; O/P    : 
; Destroy:
; Note   : After calling subr, the newkey flag should be 
;	   checked.
;	   For MaB key, the Keyholdkey should be cleared before
;	   activating the corresponding function
;          For MbB key, no need to check the KeyHoldFlag before
;          activating the corr. function
;	   For MaH, the hold time must be checked to be 255 before
;	   activating the corr. function.
;
;KeyScan:	
;	ld	b,Key_On
;	ld	x,KPort
 ;       fan	mx,IO_Key_On
;	jp	z,KeyFound0		; br if Key_on is preseed (=1)
;	call	Dly17ms
;	fan	mx,IO_Key_On
;	jp	nz,KeyFound
;KeyFound0:
;	ld	b,Key_Off

⌨️ 快捷键说明

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