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

📄 lcdshow.s

📁 可以显示年月日,时间等,也可以设置闹钟,设定时间
💻 S
📖 第 1 页 / 共 2 页
字号:
	tsx
;    
;   }  
	bra L41
L40:
;   else if(flat==10)
	lda *_flat
	cmp #10
	bne L42
;    { 
;     flat--;
	dec *_flat
;     LcdCtrl&=~(1<<LcdRS);      //RS、R/W=00,写指令
	bclr #0,0x2
;     LcdCtrl&=~(1<<LcdRW);    
	bclr #1,0x2
;     Lcd_Command(0b10001100);  //后7位为DDRAM地址0x4c
	lda #-116
	psha
	jsr _Lcd_Command
	ais #1
	tsx
;    }
	bra L43
L42:
;    else if(flat>0)
	lda *_flat
	cmp #0
	bls L44
;      {
;         flat--;
	dec *_flat
;         LcdCtrl&=~(1<<LcdRS);      //RS、R/W=00,写指令
	bclr #0,0x2
;         LcdCtrl&=~(1<<LcdRW);    
	bclr #1,0x2
;        Lcd_Command(0b00010000);  //后7位为DDRAM地址0x10
	lda #16
	psha
	jsr _Lcd_Command
	ais #1
	tsx
;      }
L44:
L43:
L41:
;    Lcd_Command(0b00001111);  //开显示,开光标显示,闪烁
	lda #15
	psha
	jsr _Lcd_Command
	ais #1
	tsx
L39:
	.dbline 0 ; func end
	rts
_right::
; }
; void right(void)      ////进入右移时间模式
; { 
;   if(flat<9)
	lda *_flat
	cmp #9
	bhs L47
;   { 
;     flat++;
	inc *_flat
;     LcdCtrl&=~(1<<LcdRS);      //RS、R/W=00,写指令
	bclr #0,0x2
;     LcdCtrl&=~(1<<LcdRW);    
	bclr #1,0x2
;     Lcd_Command(0b00010100);   //
	lda #20
	psha
	jsr _Lcd_Command
	ais #1
	tsx
;    
;   }  
	bra L48
L47:
;   else if(flat==9)
	lda *_flat
	cmp #9
	bne L49
;    { 
;     flat++;
	inc *_flat
;     LcdCtrl&=~(1<<LcdRS);      //RS、R/W=00,写指令
	bclr #0,0x2
;     LcdCtrl&=~(1<<LcdRW);    
	bclr #1,0x2
;     Lcd_Command(0b11000100);  //后7位为DDRAM地址0x44
	lda #-60
	psha
	jsr _Lcd_Command
	ais #1
	tsx
;    }
	bra L50
L49:
;    else if(flat<17)
	lda *_flat
	cmp #17
	bhs L51
;      {
;         flat++;
	inc *_flat
;         LcdCtrl&=~(1<<LcdRS);      //RS、R/W=00,写指令
	bclr #0,0x2
;         LcdCtrl&=~(1<<LcdRW);    
	bclr #1,0x2
;        Lcd_Command(0b00010100);  //后7位为DDRAM地址0x03
	lda #20
	psha
	jsr _Lcd_Command
	ais #1
	tsx
;      }
L51:
L50:
L48:
L46:
	.dbline 0 ; func end
	rts
;              i -> 0,X
;              j -> 1,X
_down::
	ais #-2
	tsx
;    
; } 
;   
; void down(void)      ////进入左移时间模
; {
;     unsigned char i,j;
;     j=flat;
	lda *_flat
	sta 1,X
;    i=(unsigned char)datestr[j]-0x30;
	clr *__r0
	add #<_datestr
	sta *__r1
	lda *__r0
	adc #>_datestr
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	sub #48
	sta ,X
;     i++;
	inc ,X
;     datestr[j]=(unsigned char)i+0x30;
	lda ,X
	add #48
	sta *__r1
	clr *__r2
	lda 1,X
	add #<_datestr
	sta *__r3
	lda *__r2
	adc #>_datestr
	sta *__r2
	lda *__r1
	ldhx *__r2
	sta ,x
	tsx
;     if(j<=3)data[2]=data[2]-10^(3-j);
	lda 1,X
	cmp #3
	bhi L54
	lda #3
	sub 1,X
	sta *__r0
	lda *_data+2
	sub #10
	eor *__r0
	sta *_data+2
L54:
;     if(j>=5&&j<=6)data[1]=data[1]-10^(j-5);
	lda 1,X
	cmp #5
	blo L58
	cmp #6
	bhi L58
	sub #5
	sta *__r0
	lda *_data+1
	sub #10
	eor *__r0
	sta *_data+1
L58:
;     if(j>=8&&j<=9)data[0]=data[0]-10^(j-8);
	lda 1,X
	cmp #8
	blo L62
	cmp #9
	bhi L62
	sub #8
	sta *__r0
	lda *_data
	sub #10
	eor *__r0
	sta *_data
L62:
;     if(j>=10&&j<=11)time[2]=time[2]-10^(j-10);
	lda 1,X
	cmp #10
	blo L64
	cmp #11
	bhi L64
	clr *__r0
	sub #10
	sta *__r1
	lda *__r0
	sbc #0
	sta *__r0
	lda *_time+4+1
	sub #10
	sta *__r3
	lda *_time+4
	sbc #0
	sta *__r2
	lda *__r3
	eor *__r1
	sta *_time+4+1
	lda *__r2
	eor *__r0
	sta *_time+4
L64:
;     if(j>=13&&j<=14)time[1]=time[1]-10^(j-13);
	lda 1,X
	cmp #13
	blo L68
	cmp #14
	bhi L68
	clr *__r0
	sub #13
	sta *__r1
	lda *__r0
	sbc #0
	sta *__r0
	lda *_time+2+1
	sub #10
	sta *__r3
	lda *_time+2
	sbc #0
	sta *__r2
	lda *__r3
	eor *__r1
	sta *_time+2+1
	lda *__r2
	eor *__r0
	sta *_time+2
L68:
;     if(j>=15&&j<=16)time[0]=time[0]-10^(j-15); 
	lda 1,X
	cmp #15
	blo L72
	cmp #16
	bhi L72
	clr *__r0
	sub #15
	sta *__r1
	lda *__r0
	sbc #0
	sta *__r0
	lda *_time+1
	sub #10
	sta *__r3
	lda *_time
	sbc #0
	sta *__r2
	lda *__r3
	eor *__r1
	sta *_time+1
	lda *__r2
	eor *__r0
	sta *_time
L72:
L53:
	ais #2
	.dbline 0 ; func end
	rts
;              i -> 0,X
;              j -> 1,X
_up::
	ais #-2
	tsx
; }
; void up(void)       ////进入右移时间模式
;   { 
;    //
;     unsigned char i,j;
;     j=flat;
	lda *_flat
	sta 1,X
;     i=(unsigned char)datestr[j]-0x30;
	clr *__r0
	add #<_datestr
	sta *__r1
	lda *__r0
	adc #>_datestr
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	sub #48
	sta ,X
;     i=i+1;
	inc ,X
;     datestr[j]=(unsigned char)i+0x30;
	lda ,X
	add #48
	sta *__r1
	clr *__r2
	lda 1,X
	add #<_datestr
	sta *__r3
	lda *__r2
	adc #>_datestr
	sta *__r2
	lda *__r1
	ldhx *__r2
	sta ,x
	tsx
;     if(j<=3)data[2]=data[2]+10^(3-j);
	lda 1,X
	cmp #3
	bhi L75
	lda #3
	sub 1,X
	sta *__r0
	lda *_data+2
	add #10
	eor *__r0
	sta *_data+2
L75:
;     if(j>=5&&j<=6)data[1]=data[1]+10^(j-5);
	lda 1,X
	cmp #5
	blo L79
	cmp #6
	bhi L79
	sub #5
	sta *__r0
	lda *_data+1
	add #10
	eor *__r0
	sta *_data+1
L79:
;     if(j>=8&&j<=9)data[0]=data[0]+10^(j-8);
	lda 1,X
	cmp #8
	blo L83
	cmp #9
	bhi L83
	sub #8
	sta *__r0
	lda *_data
	add #10
	eor *__r0
	sta *_data
L83:
;     if(j>=10&&j<=11)time[2]=time[2]+10^(j-10);
	lda 1,X
	cmp #10
	blo L85
	cmp #11
	bhi L85
	clr *__r0
	sub #10
	sta *__r1
	lda *__r0
	sbc #0
	sta *__r0
	ldhx *_time+4
	aix #10
	sthx *__r2
	tsx
	lda *__r3
	eor *__r1
	sta *_time+4+1
	lda *__r2
	eor *__r0
	sta *_time+4
L85:
;     if(j>=13&&j<=14)time[1]=time[1]+10^(j-13);
	lda 1,X
	cmp #13
	blo L89
	cmp #14
	bhi L89
	clr *__r0
	sub #13
	sta *__r1
	lda *__r0
	sbc #0
	sta *__r0
	ldhx *_time+2
	aix #10
	sthx *__r2
	tsx
	lda *__r3
	eor *__r1
	sta *_time+2+1
	lda *__r2
	eor *__r0
	sta *_time+2
L89:
;     if(j>=15&&j<=16)time[0]=time[0]+10^(j-15); 
	lda 1,X
	cmp #15
	blo L93
	cmp #16
	bhi L93
	clr *__r0
	sub #15
	sta *__r1
	lda *__r0
	sbc #0
	sta *__r0
	ldhx *_time
	aix #10
	sthx *__r2
	tsx
	lda *__r3
	eor *__r1
	sta *_time+1
	lda *__r2
	eor *__r0
	sta *_time
L93:
;     lcdshow((unsigned char *)datestr,(unsigned char *)clockstr);
	lda #<_clockstr
	psha
	lda #>_clockstr
	psha
	lda #<_datestr
	psha
	lda #>_datestr
	psha
	jsr _lcdshow
	ais #4
	tsx
L74:
	ais #2
	.dbline 0 ; func end
	rts
	.area bss
_time::
	.blkb 6
_data::
	.blkb 3

⌨️ 快捷键说明

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