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

📄 display.s

📁 测量脉搏的源码 Cypress公司使用 CY27443 完成相关的功能
💻 S
📖 第 1 页 / 共 2 页
字号:
X15:
	and F,-5
	rrc [__r0]
	rrc [__r1]
	jnc X13
	mov A,[__r3]
	add [__rX],A
	mov A,[__r2]
	adc [__rY],A
X13:
	asl [__r3]
	rlc [__r2]
	jmp X12
X14:
	mov [__r1],[__rX]
	mov [__r0],[__rY]
	add [__r1],<_FontLookup-160
	adc [__r0],>_FontLookup-160
	mov A,[X+1]
	add A,[__r1]
	mov [__r1],A
	mov A,[X+0]
	adc A,[__r0]
	push X
	mov X,[__r1]
	romx
	pop X
	push A
	xcall _LcdSendData
	add SP,-1
L34:
	.dbline 112
	inc [X+1]
	adc [X+0],0
	.dbline 112
	mov A,[X+0]
	xor A,-128
	mov [__rY],A
	mov A,0
	xor A,-128
	mov [__rZ],A
	mov [__rX],0
	mov A,[X+1]
	sub A,5
	or [__rX],A
	mov A,[__rY]
	sbb A,[__rZ]
	or [__rX],A
	jc L33
X16:
	.dbline 114
	mov A,0
	push A
	xcall _LcdSendData
	add SP,-1
	.dbline 115
L31:
	.dbline 109
	mov A,[X-4]
	mov [__r1],A
	mov A,[X-5]
	push X
	mov X,[__r1]
	romx
	pop X
	cmp A,0
	jnz L30
	.dbline -2
	.dbline 116
;     for(i=0; i<5; i++) LcdSendData(FontLookup[ch-32][i]);
;     // empty space after character 
;     LcdSendData(0x00);
;   }
; }
L29:
	add SP,-3
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l ch 2 c
	.dbsym l i 0 I
	.dbsym l dataPtr -5 pc
	.dbend
	.dbfunc e LcdVBargraph _LcdVBargraph fV
;              j -> X+2
;             ch -> X+1
;              i -> X+0
;      yposition -> X-7
;           yend -> X-6
;         ystart -> X-5
;              x -> X-4
_LcdVBargraph::
	.dbline -1
	push X
	mov X,SP
	add SP,5
	.dbline 119
; 
; void LcdVBargraph (char x, char ystart, char yend, char yposition)
; {
	.dbline 121
;   char i,j,ch;
;   LcdSendCommand(0x40 | yend);
	mov A,[X-6]
	or A,64
	push A
	xcall _LcdSendCommand
	add SP,-1
	.dbline 122
;   LcdSendCommand(0x80 | x);
	mov A,[X-4]
	or A,-128
	push A
	xcall _LcdSendCommand
	.dbline 123
;   LcdSendData(0xFF);
	mov A,-1
	push A
	xcall _LcdSendData
	add SP,-2
	.dbline 124
;   for (i=0; i<6 ; i++) 
	mov [X+0],0
	xjmp L42
L39:
	.dbline 125
;   { switch (yposition) 
	.dbline 125
	mov A,[X-7]
	mov [X+4],A
	mov [X+3],0
	cmp [X+3],0
	jnz X20
	cmp [X+4],0
	jz L46
X20:
	cmp [X+3],0
	jnz X21
	cmp [X+4],1
	jz L47
X21:
	cmp [X+3],0
	jnz X22
	cmp [X+4],2
	jz L48
X22:
	cmp [X+3],0
	jnz X23
	cmp [X+4],3
	jz L49
X23:
	cmp [X+3],0
	jnz X24
	cmp [X+4],4
	jz L50
X24:
	cmp [X+3],0
	jnz X25
	cmp [X+4],5
	jz L51
X25:
	cmp [X+3],0
	jnz X26
	cmp [X+4],6
	jz L52
X26:
	cmp [X+3],0
	jnz X27
	cmp [X+4],7
	jz L53
X27:
	xjmp L43
X17:
	.dbline 126
;     {
L46:
	.dbline 127
;       case 0 : ch=0x80; break;
	mov [X+1],-128
	.dbline 127
	xjmp L44
L47:
	.dbline 128
;       case 1 : ch=0x80; break;
	mov [X+1],-128
	.dbline 128
	xjmp L44
L48:
	.dbline 129
;       case 2 : ch=0xC0; break;
	mov [X+1],-64
	.dbline 129
	xjmp L44
L49:
	.dbline 130
;       case 3 : ch=0xE0; break;
	mov [X+1],-32
	.dbline 130
	xjmp L44
L50:
	.dbline 131
;       case 4 : ch=0xF0; break;
	mov [X+1],-16
	.dbline 131
	xjmp L44
L51:
	.dbline 132
;       case 5 : ch=0xF8; break;
	mov [X+1],-8
	.dbline 132
	xjmp L44
L52:
	.dbline 133
;       case 6 : ch=0xFC; break;
	mov [X+1],-4
	.dbline 133
	xjmp L44
L53:
	.dbline 134
;       case 7 : ch=0xFE; break;
	mov [X+1],-2
	.dbline 134
	xjmp L44
L43:
	.dbline 135
;       default: ch=0xFF; break;
	mov [X+1],-1
	.dbline 135
L44:
	.dbline 136
	.dbline 137
	mov A,[X+1]
	push A
	xcall _LcdSendData
	add SP,-1
	.dbline 138
L40:
	.dbline 124
	inc [X+0]
L42:
	.dbline 124
	cmp [X+0],6
	jz X28
	jc L39
X28:
	.dbline 139
;     };
;     LcdSendData(ch);
;   }
;   LcdSendData(0xFF);
	mov A,-1
	push A
	xcall _LcdSendData
	add SP,-1
	.dbline 140
;   for (j=yend-1; j>ystart; j--)
	mov A,[X-6]
	sub A,1
	mov [X+2],A
	xjmp L57
L54:
	.dbline 141
;   {
	.dbline 142
	cmp [X-7],8
	jc L58
	jz L58
X29:
	.dbline 142
	mov A,[X-7]
	sub A,8
	mov [X-7],A
	xjmp L59
L58:
	.dbline 142
;     if (yposition > 8) yposition -=8; else yposition=0;  
	mov [X-7],0
L59:
	.dbline 143
;     LcdSendCommand(0x40 | j);
	mov A,[X+2]
	or A,64
	push A
	xcall _LcdSendCommand
	add SP,-1
	.dbline 144
;     LcdSendCommand(0x80 | x);
	mov A,[X-4]
	or A,-128
	push A
	xcall _LcdSendCommand
	.dbline 145
;     LcdSendData(0xFF);
	mov A,-1
	push A
	xcall _LcdSendData
	add SP,-2
	.dbline 146
;     for (i=0; i<6 ; i++) 
	mov [X+0],0
	xjmp L63
L60:
	.dbline 147
;     { switch (yposition) 
	.dbline 147
	mov A,[X-7]
	mov [X+4],A
	mov [X+3],0
	cmp [X+3],0
	jnz X30
	cmp [X+4],0
	jz L67
X30:
	cmp [X+3],0
	jnz X31
	cmp [X+4],1
	jz L68
X31:
	cmp [X+3],0
	jnz X32
	cmp [X+4],2
	jz L69
X32:
	cmp [X+3],0
	jnz X33
	cmp [X+4],3
	jz L70
X33:
	cmp [X+3],0
	jnz X34
	cmp [X+4],4
	jz L71
X34:
	cmp [X+3],0
	jnz X35
	cmp [X+4],5
	jz L72
X35:
	cmp [X+3],0
	jnz X36
	cmp [X+4],6
	jz L73
X36:
	cmp [X+3],0
	jnz X37
	cmp [X+4],7
	jz L74
X37:
	xjmp L64
X18:
	.dbline 148
;       {
L67:
	.dbline 149
;         case 0 : ch=0x00; break;
	mov [X+1],0
	.dbline 149
	xjmp L65
L68:
	.dbline 150
;         case 1 : ch=0x80; break;
	mov [X+1],-128
	.dbline 150
	xjmp L65
L69:
	.dbline 151
;         case 2 : ch=0xC0; break;
	mov [X+1],-64
	.dbline 151
	xjmp L65
L70:
	.dbline 152
;         case 3 : ch=0xE0; break;
	mov [X+1],-32
	.dbline 152
	xjmp L65
L71:
	.dbline 153
;         case 4 : ch=0xF0; break;
	mov [X+1],-16
	.dbline 153
	xjmp L65
L72:
	.dbline 154
;         case 5 : ch=0xF8; break;
	mov [X+1],-8
	.dbline 154
	xjmp L65
L73:
	.dbline 155
;         case 6 : ch=0xFC; break;
	mov [X+1],-4
	.dbline 155
	xjmp L65
L74:
	.dbline 156
;         case 7 : ch=0xFE; break;
	mov [X+1],-2
	.dbline 156
	xjmp L65
L64:
	.dbline 157
;         default: ch=0xFF; break;
	mov [X+1],-1
	.dbline 157
L65:
	.dbline 158
	.dbline 159
	mov A,[X+1]
	push A
	xcall _LcdSendData
	add SP,-1
	.dbline 160
L61:
	.dbline 146
	inc [X+0]
L63:
	.dbline 146
	cmp [X+0],6
	jz X38
	jc L60
X38:
	.dbline 160
	.dbline 161
	mov A,-1
	push A
	xcall _LcdSendData
	add SP,-1
	.dbline 162
L55:
	.dbline 140
	dec [X+2]
L57:
	.dbline 140
	mov A,[X+2]
	cmp A,[X-5]
	jz X39
	jnc L54
X39:
	.dbline 162
;       };
;       LcdSendData(ch);
;     };
;     LcdSendData(0xFF);
;   };
	.dbline 163
	cmp [X-7],8
	jc L75
	jz L75
X40:
	.dbline 163
	mov A,[X-7]
	sub A,8
	mov [X-7],A
	xjmp L76
L75:
	.dbline 163
;   if (yposition > 8) yposition -=8; else yposition=0;  
	mov [X-7],0
L76:
	.dbline 164
;   LcdSendCommand(0x40 | ystart);
	mov A,[X-5]
	or A,64
	push A
	xcall _LcdSendCommand
	add SP,-1
	.dbline 165
;   LcdSendCommand(0x80 | x);
	mov A,[X-4]
	or A,-128
	push A
	xcall _LcdSendCommand
	.dbline 166
;   LcdSendData(0xFF);
	mov A,-1
	push A
	xcall _LcdSendData
	add SP,-2
	.dbline 167
;   for (i=0; i<6 ; i++) 
	mov [X+0],0
	xjmp L80
L77:
	.dbline 168
;   { switch (yposition) 
	.dbline 168
	mov A,[X-7]
	mov [X+4],A
	mov [X+3],0
	cmp [X+3],0
	jnz X41
	cmp [X+4],0
	jz L84
X41:
	cmp [X+3],0
	jnz X42
	cmp [X+4],1
	jz L85
X42:
	cmp [X+3],0
	jnz X43
	cmp [X+4],2
	jz L86
X43:
	cmp [X+3],0
	jnz X44
	cmp [X+4],3
	jz L87
X44:
	cmp [X+3],0
	jnz X45
	cmp [X+4],4
	jz L88
X45:
	cmp [X+3],0
	jnz X46
	cmp [X+4],5
	jz L89
X46:
	cmp [X+3],0
	jnz X47
	cmp [X+4],6
	jz L90
X47:
	cmp [X+3],0
	jnz X48
	cmp [X+4],7
	jz L91
X48:
	xjmp L81
X19:
	.dbline 169
;     {
L84:
	.dbline 170
;       case 0 : ch=0x01; break;
	mov [X+1],1
	.dbline 170
	xjmp L82
L85:
	.dbline 171
;       case 1 : ch=0x81; break;
	mov [X+1],-127
	.dbline 171
	xjmp L82
L86:
	.dbline 172
;       case 2 : ch=0xC1; break;
	mov [X+1],-63
	.dbline 172
	xjmp L82
L87:
	.dbline 173
;       case 3 : ch=0xE1; break;
	mov [X+1],-31
	.dbline 173
	xjmp L82
L88:
	.dbline 174
;       case 4 : ch=0xF1; break;
	mov [X+1],-15
	.dbline 174
	xjmp L82
L89:
	.dbline 175
;       case 5 : ch=0xF9; break;
	mov [X+1],-7
	.dbline 175
	xjmp L82
L90:
	.dbline 176
;       case 6 : ch=0xFD; break;
	mov [X+1],-3
	.dbline 176
	xjmp L82
L91:
	.dbline 177
;       case 7 : ch=0xFF; break;
	mov [X+1],-1
	.dbline 177
	xjmp L82
L81:
	.dbline 178
;       default: ch=0xFF; break;
	mov [X+1],-1
	.dbline 178
L82:
	.dbline 179
	.dbline 180
	mov A,[X+1]
	push A
	xcall _LcdSendData
	add SP,-1
	.dbline 181
L78:
	.dbline 167
	inc [X+0]
L80:
	.dbline 167
	cmp [X+0],6
	jz X49
	jc L77
X49:
	.dbline 182
;     };
;     LcdSendData(ch);
;   }
;   LcdSendData(0xFF);
	mov A,-1
	push A
	xcall _LcdSendData
	add SP,-1
	.dbline -2
	.dbline 183
; }
L38:
	add SP,-5
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l j 2 c
	.dbsym l ch 1 c
	.dbsym l i 0 c
	.dbsym l yposition 0 I
	.dbsym l yposition -7 c
	.dbsym l yend 0 I
	.dbsym l yend -6 c
	.dbsym l ystart 0 I
	.dbsym l ystart -5 c
	.dbsym l x 0 I
	.dbsym l x -4 c
	.dbend
	.dbfunc e LcdHBargraph _LcdHBargraph fV
;              i -> X+0
;      xposition -> X-7
;           xend -> X-6
;         xstart -> X-5
;              y -> X-4
_LcdHBargraph::
	.dbline -1
	push X
	mov X,SP
	add SP,2
	.dbline 186
; 
; void LcdHBargraph (char y, char xstart, char xend, char xposition)
; {
	.dbline 188
;   int i;
;   LcdSendCommand(0x40 | y);
	mov A,[X-4]
	or A,64
	push A
	xcall _LcdSendCommand
	add SP,-1
	.dbline 189
;   LcdSendCommand(0x80 | xstart);
	mov A,[X-5]
	or A,-128
	push A
	xcall _LcdSendCommand
	.dbline 190
;   LcdSendData(0x7E);
	mov A,126
	push A
	xcall _LcdSendData
	add SP,-2
	.dbline 191
	mov [X+1],1
	mov [X+0],0
	xjmp L96
L93:
	.dbline 191
	mov A,126
	push A
	xcall _LcdSendData
	add SP,-1
L94:
	.dbline 191
	inc [X+1]
	adc [X+0],0
L96:
	.dbline 191
;   for (i=1; i<=xposition; i++) LcdSendData(0x7E);
	mov A,[X-7]
	mov [__r1],A
	mov A,[X+0]
	xor A,-128
	mov [__rY],A
	mov A,0
	xor A,-128
	mov [__rZ],A
	mov [__rX],0
	mov A,[X+1]
	sub A,[__r1]
	or [__rX],A
	mov A,[__rY]
	sbb A,[__rZ]
	or [__rX],A
	jc L93
	mov A,[__rX]
	jz L93
X50:
	.dbline 192
	mov A,[X-7]
	add A,1
	mov [X+1],A
	mov A,0
	adc A,0
	mov [X+0],A
	xjmp L100
L97:
	.dbline 192
	mov A,66
	push A
	xcall _LcdSendData
	add SP,-1
L98:
	.dbline 192
	inc [X+1]
	adc [X+0],0
L100:
	.dbline 192
;   for (i=xposition+1; i<xend-xstart; i++) LcdSendData(0x42);
	mov A,[X-6]
	mov [__r1],A
	mov [__r0],0
	mov A,[X-5]
	sub [__r1],A
	sbb [__r0],0
	mov A,[X+0]
	xor A,-128
	mov [__rY],A
	mov A,[__r0]
	xor A,-128
	mov [__rZ],A
	mov [__rX],0
	mov A,[X+1]
	sub A,[__r1]
	or [__rX],A
	mov A,[__rY]
	sbb A,[__rZ]
	or [__rX],A
	jc L97
X51:
	.dbline 193
;   LcdSendData(0x7E);
	mov A,126
	push A
	xcall _LcdSendData
	add SP,-1
	.dbline -2
	.dbline 194
; }
L92:
	add SP,-2
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l i 0 I
	.dbsym l xposition 0 I
	.dbsym l xposition -7 c
	.dbsym l xend 0 I
	.dbsym l xend -6 c
	.dbsym l xstart 0 I
	.dbsym l xstart -5 c
	.dbsym l y 0 I
	.dbsym l y -4 c
	.dbend
	.dbfunc e LcdSendData _LcdSendData fV
;           data -> X-4
_LcdSendData::
	.dbline -1
	push X
	mov X,SP
	.dbline 197
; 
; void LcdSendData ( char data )
; {
	.dbline 198
;   SETBIT(LCD_PORT, LCD_DC_BIT);
	or REG[4],64
	.dbline 200
;   // Send data to display controller.
;   SPIM_SendTxData(data);
	push X
	mov A,[X-4]
	xcall _SPIM_SendTxData
	pop X
L102:
	.dbline 202
L103:
	.dbline 202
;   // Wait until SPI cycle complete.
;   while ( ! (bSPIM_ReadStatus() & SPIM_SPIM_SPI_COMPLETE) );
	push X
	xcall _bSPIM_ReadStatus
	pop X
	mov [__r0],A
	tst [__r0],32
	jz L102
	.dbline -2
	.dbline 203
; }
L101:
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l data 0 I
	.dbsym l data -4 c
	.dbend
	.dbfunc e LcdSendCommand _LcdSendCommand fV
;        command -> X-4
_LcdSendCommand::
	.dbline -1
	push X
	mov X,SP
	.dbline 206
; 
; void LcdSendCommand ( char command )
; {
	.dbline 207
;   CLEARBIT(LCD_PORT, LCD_DC_BIT);
	and REG[4],-65
	.dbline 209
;   // Send command to display controller.
;   SPIM_SendTxData(command);
	push X
	mov A,[X-4]
	xcall _SPIM_SendTxData
	pop X
L106:
	.dbline 211
L107:
	.dbline 211
;   // Wait until SPI cycle complete.
;   while ( ! (bSPIM_ReadStatus() & SPIM_SPIM_SPI_COMPLETE) );
	push X
	xcall _bSPIM_ReadStatus
	pop X
	mov [__r0],A
	tst [__r0],32
	jz L106
	.dbline -2
	.dbline 212
; }
L105:
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l command 0 I
	.dbsym l command -4 c
	.dbend

⌨️ 快捷键说明

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