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

📄 main.s

📁 单片机控制122x32液晶。液晶内部芯片包含RAM(类似于显存)
💻 S
📖 第 1 页 / 共 2 页
字号:
	.dbline 186
; } while (rl & StatusBUSY);
	tst [_rl],-128
	jnz L8
	.dbline -2
	.dbline 188
; 
; }
L7:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e CS1_select _CS1_select fV
_CS1_select::
	.dbline -1
	.dbline 192
; 
; // Controller #1
; void CS1_select ()
; {
	.dbline 193
; Ctrl &= ~CS2;
	and REG[0x4],-17
	.dbline 194
; Ctrl |=  CS1;
	or REG[0x4],8
	.dbline -2
	.dbline 195
; }
L11:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e CS2_select _CS2_select fV
_CS2_select::
	.dbline -1
	.dbline 199
; 
; // Controller #2
; void CS2_select ()
; {
	.dbline 200
; Ctrl &= ~CS1;
	and REG[0x4],-9
	.dbline 201
; Ctrl |=  CS2;
	or REG[0x4],16
	.dbline -2
	.dbline 202
; }
L12:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e cs_l _cs_l fV
_cs_l::
	.dbline -1
	.dbline 205
; 
; //duplicate
; void cs_l () {               
	.dbline 206
; CS1_select ();
	xcall _CS1_select
	.dbline -2
	.dbline 207
;              }
L13:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e cs_r _cs_r fV
_cs_r::
	.dbline -1
	.dbline 209
;              
; void cs_r () {               
	.dbline 210
; CS2_select ();
	xcall _CS2_select
	.dbline -2
	.dbline 211
;              }   
L14:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Write _Write fV
_Write::
	.dbline -1
	.dbline 216
; 
; // read write A0_instruction A0_Data
; 
; void Write ()
; {
	.dbline 217
; Ctrl |=  WR;
	or REG[0x4],-128
	.dbline 218
; Ctrl &= ~WR;
	and REG[0x4],127
	.dbline -2
	.dbline 219
; }
L15:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Read _Read fV
_Read::
	.dbline -1
	.dbline 222
; 
; void Read ()
; {
	.dbline 223
; Ctrl &= ~WR;
	and REG[0x4],127
	.dbline 224
; Ctrl |=  WR;
	or REG[0x4],-128
	.dbline -2
	.dbline 225
; }
L16:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e A0_Instruction _A0_Instruction fV
_A0_Instruction::
	.dbline -1
	.dbline 228
; 
; void A0_Instruction ()
; {
	.dbline 229
; Ctrl |= A0;
	or REG[0x4],4
	.dbline 230
; Ctrl &= ~A0;
	and REG[0x4],-5
	.dbline -2
	.dbline 231
; }
L17:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e A0_Data _A0_Data fV
_A0_Data::
	.dbline -1
	.dbline 234
; 
; void A0_Data ()
; {
	.dbline 235
; Ctrl &= ~A0;
	and REG[0x4],-5
	.dbline 236
; Ctrl |= A0;
	or REG[0x4],4
	.dbline -2
	.dbline 237
; }
L18:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e PRT2_HZ _PRT2_HZ fV
_PRT2_HZ::
	.dbline -1
	.dbline 253
; 
; 
; // ports operate
; 
; // DM2 DM1 DM0 Mode
; // 0   0   0   Resistive Pull Down
; // 0   0   1   Strong Drive
; // 0   1   0   High Impedence
; // 0   1   1   Resistive Pull Up
; // 1   0   0   Open Drain, Drives High
; // 1   0   1   Slow Strong Drive
; // 1   1   0   High Impedence Analog
; // 1   1   1   Open Drain, Drives Low
; 
; 
;                void PRT2_HZ () {
	.dbline 254
;                         M8C_SetBank1;   
		or  F, 10h

	.dbline 255
;                         PRT2DM0 &= 0b00000000;                        
	or F,0x10  ; iopage = 1
	mov REG[0x8],0
	.dbline 256
;                         PRT2DM1 |= 0b11111111;    
	or REG[0x9],-1
	and F,0xEF ; iopage = 0
	.dbline 257
;                         M8C_SetBank0; 
		and F, EFh

	.dbline 258
;                         PRT2DM2 &= 0b00000000;
	mov REG[0xb],0
	.dbline -2
	.dbline 259
;                               }
L19:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e PRT2_PD _PRT2_PD fV
_PRT2_PD::
	.dbline -1
	.dbline 261
; 
;                void PRT2_PD () {
	.dbline 262
;                         M8C_SetBank1;   
		or  F, 10h

	.dbline 263
;                         PRT2DM0 &= 0b00000000;                        
	or F,0x10  ; iopage = 1
	mov REG[0x8],0
	.dbline 264
;                         PRT2DM1 &= 0b00000000;   
	mov REG[0x9],0
	and F,0xEF ; iopage = 0
	.dbline 265
;                         M8C_SetBank0; 
		and F, EFh

	.dbline 266
;                         PRT2DM2 &= 0b00000000;
	mov REG[0xb],0
	.dbline -2
	.dbline 267
;                               }
L20:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e test_logo _test_logo fV
;            a22 -> X+0
_test_logo::
	.dbline -1
	push X
	mov X,SP
	add SP,1
	.dbline 270
; 
; 
; void test_logo(){
	.dbline 273
; BYTE a22;
; 
;   if (x<= 60){
	cmp [_x],60
	jz X0
	jnc L22
X0:
	.dbline 273
	.dbline 274
; cs_l();
	xcall _cs_l
	.dbline 275
;       a22 = x;
	mov A,[_x]
	mov [X+0],A
	.dbline 276
;              }
	xjmp L23
L22:
	.dbline 277
;      else    {
	.dbline 278
; cs_r();
	xcall _cs_r
	.dbline 279
;       a22=(x-61);
	mov A,[_x]
	sub A,61
	mov [X+0],A
	.dbline 280
;              }
L23:
	.dbline 283
; 
; 
; 	yByte   = y ;//>> 3; 
	mov [_yByte],[_y]
	.dbline 284
; 	bitnum  = y & 0x07;
	mov A,[_y]
	and A,7
	mov [_bitnum],A
	.dbline 285
; 	bitmask = l_mask_array[bitnum]; 
	mov [__r1],[_bitnum]
	mov [__r0],0
	add [__r1],<_l_mask_array
	adc [__r0],>_l_mask_array
	mov A,[__r0]
	push X
	mov X,[__r1]
	romx
	pop X
	mov [_bitmask],A
	.dbline 288
;     
; 
; Data = ColumnAdressSet | a22;
	mov A,[X+0]
	mov REG[0x8],A
	.dbline 289
; write_instruction ();
	xcall _write_instruction
	.dbline 291
; 
; Data = PageAddressSet | yByte;
	mov A,[_yByte]
	or A,-72
	mov REG[0x8],A
	.dbline 292
; write_instruction ();
	xcall _write_instruction
	.dbline 294
; 
; Data = DisplayStartLine;
	mov REG[0x8],-64
	.dbline 295
; write_instruction ();
	xcall _write_instruction
	.dbline 297
; 
; Data = psoc_bmp[str];
	mov A,[_str+1]
	add A,<_psoc_bmp
	mov [__r1],A
	mov A,[_str]
	adc A,>_psoc_bmp
	push X
	mov X,[__r1]
	romx
	pop X
	mov REG[0x8],A
	.dbline 299
; 
; write_data ();
	xcall _write_data
	.dbline -2
	.dbline 302
; 
; 
; }
L21:
	add SP,-1
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l a22 0 c
	.dbend
	.dbfunc e test_PSoC _test_PSoC fV
;             st -> X+0
_test_PSoC::
	.dbline -1
	push X
	mov X,SP
	add SP,1
	.dbline 304
; 
; void test_PSoC(){
	.dbline 306
; BYTE st;
; str=0;
	mov [_str+1],0
	mov [_str],0
	.dbline 307
	mov [_x],0
	xjmp L28
L25:
	.dbline 307
; for (x=0;x<122;x++){
	.dbline 309
	mov [X+0],0
	xjmp L32
L29:
	.dbline 309
	.dbline 310
	mov A,[X+0]
	mov [_y],A
	.dbline 312
	xcall _test_logo
	.dbline 313
	inc [_str+1]
	adc [_str],0
	.dbline 314
L30:
	.dbline 309
	inc [X+0]
L32:
	.dbline 309
	cmp [X+0],4
	jz X1
	jc L29
X1:
	.dbline 316
L26:
	.dbline 307
	inc [_x]
L28:
	.dbline 307
	cmp [_x],122
	jz X2
	jc L25
X2:
	.dbline -2
	.dbline 319
; 
; for (st=0;st<4;st++)  {
; y=st;
; 
; test_logo();
; str++;
;                       }
; 
;                    }
;                    
;                     
;                 }
L24:
	add SP,-1
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l st 0 c
	.dbend
	.dbfunc e display _display fV
_display::
	.dbline -1
	.dbline 324
;  
; 
; //enable lcd
; 
; void display() {
	.dbline 325
; Data = Display_OFF;
	mov REG[0x8],-82
	.dbline 326
; write_instruction ();              
	xcall _write_instruction
	.dbline 327
; Ctrl &= ~CS1;
	and REG[0x4],-9
	.dbline 328
; Ctrl &= ~CS2;
	and REG[0x4],-17
	.dbline 329
; Data = Display_ON;
	mov REG[0x8],-81
	.dbline 330
; write_instruction ();  
	xcall _write_instruction
	.dbline -2
	.dbline 331
; }
L33:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay _delay fV
;              i -> X+0
;    delay_input -> X-5
_delay::
	.dbline -1
	push X
	mov X,SP
	add SP,2
	.dbline 337
; 
; 
; 
; 
;   void delay (INT delay_input)
;   {
	.dbline 339
	mov [X+1],0
	mov [X+0],0
	xjmp L38
L35:
	.dbline 339
L36:
	.dbline 339
	inc [X+1]
	adc [X+0],0
L38:
	.dbline 339
; INT  i;
;   for (i=0; i<delay_input; i++) ;
	mov A,[X+0]
	xor A,-128
	mov [__rY],A
	mov A,[X-5]
	xor A,-128
	mov [__rZ],A
	mov [__rX],0
	mov A,[X+1]
	sub A,[X-4]
	or [__rX],A
	mov A,[__rY]
	sbb A,[__rZ]
	or [__rX],A
	jc L35
X3:
	.dbline -2
	.dbline 340
;   } 
L34:
	add SP,-2
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l i 0 I
	.dbsym l delay_input -5 I
	.dbend
	.dbfunc e ports_init _ports_init fV
_ports_init::
	.dbline -1
	.dbline 343
;  
; 
; void ports_init () {
	.dbline 345
; // configure reset pin PD
;                         M8C_SetBank1;   
		or  F, 10h

	.dbline 346
;                         PRT0DM0 &= ~bit0;                 
	or F,0x10  ; iopage = 1
	and REG[ 0],-2
	.dbline 347
;                         PRT0DM1 &= ~bit0;    
	and REG[0x1],-2
	and F,0xEF ; iopage = 0
	.dbline 348
;                         M8C_SetBank0; 
		and F, EFh

	.dbline 349
;                         PRT0DM2 &= ~bit0;
	and REG[0x3],-2
	.dbline 352
; 
; // configure P1 pins PD
;                         M8C_SetBank1;   
		or  F, 10h

	.dbline 353
;                         PRT1DM0 &= 0b00000000;                        
	or F,0x10  ; iopage = 1
	mov REG[0x4],0
	.dbline 354
;                         PRT1DM1 &= 0b00000000;   
	mov REG[0x5],0
	and F,0xEF ; iopage = 0
	.dbline 355
;                         M8C_SetBank0; 
		and F, EFh

	.dbline 356
;                         PRT1DM2 &= 0b00000000;
	mov REG[0x7],0
	.dbline 359
; 
; // configure P2 pins PD
;                         M8C_SetBank1;   
		or  F, 10h

	.dbline 360
;                         PRT2DM0 &= 0b00000000;                        
	or F,0x10  ; iopage = 1
	mov REG[0x8],0
	.dbline 361
;                         PRT2DM1 &= 0b00000000;   
	mov REG[0x9],0
	and F,0xEF ; iopage = 0
	.dbline 362
;                         M8C_SetBank0; 
		and F, EFh

	.dbline 363
;                         PRT2DM2 &= 0b00000000;
	mov REG[0xb],0
	.dbline -2
	.dbline 364
; }
L39:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile ./main.c
_j::
	.blkb 2
	.dbsym e j _j I
_i::
	.blkb 2
	.dbsym e i _i I
_str::
	.blkb 2
	.dbsym e str _str i
_yByte::
	.blkb 1
	.dbsym e yByte _yByte c
_bitmask::
	.blkb 1
	.dbsym e bitmask _bitmask c
_bitnum::
	.blkb 1
	.dbsym e bitnum _bitnum c
_y::
	.blkb 1
	.dbsym e y _y c
_x::
	.blkb 1
	.dbsym e x _x c
_rl::
	.blkb 1
	.dbsym e rl _rl c

⌨️ 快捷键说明

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