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

📄 lcdshow.s

📁 用Freescale半导体公司HC08系列单片机制作了电子时钟,具有整点报时、闹钟、时间日期设置等功能(c语言编写)
💻 S
📖 第 1 页 / 共 2 页
字号:
	psha
	lda *__r0
	psha
	jsr __asgnblk
	ais #6
;    unsigned char i;
;    LcdInit();
	jsr _LcdInit
	tsx
;    for(i=0;i<11;i++)
	clr 25,X
	bra L59
L56:
	lda 25,X
	add #1
	psha
	lda #1
	psha
	aix #13
	sthx *__r0
	tsx
	aix #2
	clr *__r2
	lda 25,X
	add *__r1
	sta *__r1
	lda *__r2
	adc *__r0
	sta *__r0
	ldhx *__r0
	lda ,x
	psha
	jsr _LcdshowCharacter
	ais #3
	tsx
L57:
	inc 25,X
L59:
	lda 25,X
	cmp #11
	blo L56
;     {
;       LcdshowCharacter(temp[i],1,(i+1));
;     }
;    for(i=0;i<12;i++)
	clr 25,X
	bra L63
L60:
	lda 25,X
	add #1
	psha
	lda #2
	psha
	sthx *__r0
	clr *__r2
	lda 25,X
	add *__r1
	sta *__r1
	lda *__r2
	adc *__r0
	sta *__r0
	ldhx *__r0
	lda ,x
	psha
	jsr _LcdshowCharacter
	ais #3
	tsx
L61:
	inc 25,X
L63:
	lda 25,X
	cmp #12
	blo L60
L53:
	ais #26
	.dbline 0 ; func end
	rts
;              n -> 8,X
;              m -> 7,X
;           temp -> 5,X
;       Keyvalue -> 4,X
_Transmission::
	ais #-2
	tsx
;     {
;       LcdshowCharacter(temp2[i],2,(i+1));
;     }
; }
; 
; //将输入的键值传送到相应位置的位
; void Transmission(unsigned char Keyvalue,unsigned char temp[],unsigned char m,unsigned char n)
; {
;    if(m==1)    //在第一行
	lda 7,X
	cmp #1
	beq X16
	jmp L65
X16:
;     {
;       switch(n)
	clr ,X
	lda 8,X
	sta 1,X
	lda ,X
	bne X0
	lda 1,X
	cmp #4
	beq L70
X0:
	lda ,X
	bne X1
	lda 1,X
	cmp #5
	bne X17
	jmp L74
X17:
X1:
	lda ,X
	bne X2
	lda 1,X
	cmp #6
	bne X18
	jmp L75
X18:
X2:
	lda ,X
	bne X3
	lda 1,X
	cmp #7
	bne X19
	jmp L76
X19:
X3:
	lda ,X
	bne X4
	lda 1,X
	cmp #9
	bne X20
	jmp L77
X20:
X4:
	lda ,X
	bne X5
	lda 1,X
	cmp #10
	bne X21
	jmp L80
X21:
X5:
	lda ,X
	bne X6
	lda 1,X
	cmp #12
	bne X22
	jmp L83
X22:
X6:
	lda ,X
	bne X7
	lda 1,X
	cmp #13
	bne X23
	jmp L86
X23:
X7:
	jmp L67
X8:
;        {
L70:
;          case 4:temp[0]=Keyvalue; 
	lda 6,X
	sta *__r1
	lda 5,X
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
;                 if((temp[0]<1)||(temp[0]>3))
	lda 5,X
	ldx 6,X
	psha
	pulh
	lda ,x
	sta *__r1
	clr *__r0
	ldhx *__r0
	cphx #1
	tsx
	blt L73
	ldhx *__r0
	cphx #3
	tsx
	bgt X24
	jmp L68
X24:
L73:
;                 temp[0]=2; break;
	lda 6,X
	sta *__r1
	lda 5,X
	sta *__r0
	lda #2
	ldhx *__r0
	sta ,x
	tsx
	jmp L68
L74:
;                 
;          case 5:temp[1]=Keyvalue; break; //if(temp[1]>2) temp[8]=0 ; break;
	lda 6,X
	add #1
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
	jmp L68
L75:
;          case 6:temp[2]=Keyvalue; break;//if(temp[8]>2) temp[8]=0 ; break;
	lda 6,X
	add #2
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
	jmp L68
L76:
;          case 7:temp[3]=Keyvalue; break;//if(temp[8]>2) temp[8]=0 ; break;
	lda 6,X
	add #3
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
	jmp L68
L77:
;          
;          case 9:temp[4]=Keyvalue; 
	lda 6,X
	add #4
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
;                 if(temp[4]>1) 
	lda 6,X
	add #4
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #1
	bhi X25
	jmp L68
X25:
;                 temp[4]=0 ; break;
	lda 6,X
	add #4
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	jmp L68
L80:
;                 
;          case 10:temp[5]=Keyvalue; 
	lda 6,X
	add #5
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
;                  if((temp[4]==1)&&(temp[5]>2)) 
	lda 6,X
	add #4
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #1
	bne L81
	lda 6,X
	add #5
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #2
	bls L81
;                  {temp[4]=0; temp[5]=0;} 
	lda 6,X
	add #4
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	lda 6,X
	add #5
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	jmp L68
L81:
;                  else  temp[9]=Keyvalue; break;
	lda 6,X
	add #9
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
	jmp L68
L83:
;                  
;          case 12:temp[6]=Keyvalue; if(temp[6]>3) temp[6]=0 ; break;
	lda 6,X
	add #6
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
	lda 6,X
	add #6
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #3
	bhi X26
	jmp L68
X26:
	lda 6,X
	add #6
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	bra L68
L86:
;          
;          case 13:temp[7]=Keyvalue;
	lda 6,X
	add #7
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
;                  if((temp[6]==3)&&(temp[7]>1)) 
	lda 6,X
	add #6
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #3
	bne L87
	lda 6,X
	add #7
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #1
	bls L87
;                  {temp[6]=0 ; temp[7]=0 ; }
	lda 6,X
	add #6
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	lda 6,X
	add #7
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	bra L68
L87:
;                  else  temp[7]=Keyvalue; break;
	lda 6,X
	add #7
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
L67:
L68:
;     
;          
;        }
;     }
L65:
;    if(m==2)       //在第二行
	lda 7,X
	cmp #2
	beq X27
	jmp L89
X27:
;     {
;       switch(n)
	clr ,X
	lda 8,X
	sta 1,X
	lda ,X
	bne X9
	lda 1,X
	cmp #5
	beq L94
X9:
	lda ,X
	bne X10
	lda 1,X
	cmp #6
	bne X28
	jmp L97
X28:
X10:
	lda ,X
	bne X11
	lda 1,X
	cmp #8
	bne X29
	jmp L100
X29:
X11:
	lda ,X
	bne X12
	lda 1,X
	cmp #9
	bne X30
	jmp L103
X30:
X12:
	lda ,X
	bne X13
	lda 1,X
	cmp #11
	bne X31
	jmp L104
X31:
X13:
	lda ,X
	bne X14
	lda 1,X
	cmp #12
	bne X32
	jmp L107
X32:
X14:
	jmp L91
X15:
;        {
L94:
;          case 5:temp[8]=Keyvalue; 
	lda 6,X
	add #8
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
;                 if(temp[8]>2) 
	lda 6,X
	add #8
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #2
	bhi X33
	jmp L92
X33:
;                 temp[8]=0 ; break;
	lda 6,X
	add #8
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	jmp L92
L97:
;                 
;          case 6:temp[9]=Keyvalue; 
	lda 6,X
	add #9
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
;                 if((temp[8]==2)&&(temp[9]>3)) 
	lda 6,X
	add #8
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #2
	bne L98
	lda 6,X
	add #9
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #3
	bls L98
;                 {temp[8]=0;temp[9]=0 ; } 
	lda 6,X
	add #8
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	lda 6,X
	add #9
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	jmp L92
L98:
;                 else  temp[9]=Keyvalue; break;
	lda 6,X
	add #9
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
	jmp L92
L100:
;          
;          case 8:temp[10]=Keyvalue; 
	lda 6,X
	add #10
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
;                 if(temp[10]>5) temp[10]=0 ; break;
	lda 6,X
	add #10
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #5
	bls L92
	lda 6,X
	add #10
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	bra L92
L103:
;                 
;          case 9:temp[11]=Keyvalue; break;
	lda 6,X
	add #11
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
	bra L92
L104:
;          
;          case 11:temp[12]=Keyvalue; 
	lda 6,X
	add #12
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
;                  if(temp[12]>5) temp[12]=0 ; break;
	lda 6,X
	add #12
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	ldhx *__r0
	lda ,x
	tsx
	cmp #5
	bls L92
	lda 6,X
	add #12
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	clra
	ldhx *__r0
	sta ,x
	tsx
	bra L92
L107:
;                  
;          case 12:temp[13]=Keyvalue;  break;
	lda 6,X
	add #13
	sta *__r1
	lda 5,X
	adc #0
	sta *__r0
	lda 4,X
	ldhx *__r0
	sta ,x
	tsx
L91:
L92:
;        } 
;     } 
L89:
L64:
	ais #2
	.dbline 0 ; func end
	rts
;              m -> 2,X
_Discriminant::
	tsx
; }
; 
; //判断按下的键是否数字键
; unsigned char Discriminant(unsigned char m)
; { 
;   if(m=='1'||m=='2'||m=='3'||m=='4'||m=='5'||m=='6'||m=='7'||m=='8'||m=='9'||m=='0')
	lda 2,X
	cmp #49
	beq L119
	cmp #50
	beq L119
	cmp #51
	beq L119
	cmp #52
	beq L119
	cmp #53
	beq L119
	cmp #54
	beq L119
	cmp #55
	beq L119
	cmp #56
	beq L119
	cmp #57
	beq L119
	cmp #48
	bne L109
L119:
;   return 1;
	lda #1
	bra L108
L109:
;   else return 0;
	clra
L108:
	.dbline 0 ; func end
	rts

⌨️ 快捷键说明

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