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

📄 co0511.s

📁 用m128调试CO0511液晶的源代码!
💻 S
📖 第 1 页 / 共 3 页
字号:
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
; 0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x01,0x01,0x01,
; 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
; 0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x02,0x03,0x02,0x03,0x02,0x02,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x20,0xFF,0x00,0x80,0xAB,0xAA,
; 0xAA,0xAA,0xAA,0xAB,0x80,0x00,0x00,0x00,0x01,0x00,0xFD,0x54,0x54,0x56,0x55,0x54,
; 0xFC,0x02,0x01,0x00,0x00,0x02,0x02,0x02,0xFA,0x92,0x92,0x92,0x92,0x92,0x90,0x9F,
; 0x80,0x00,0x00,0x20,0x20,0xBF,0x00,0x7F,0x54,0x54,0xFF,0x54,0x55,0x7F,0x00,0x00,
; 0x00,0x10,0x20,0xFF,0x00,0x80,0xAB,0xAA,0xAA,0xAA,0xAA,0xAB,0x80,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xC0,0x80,
; 0x80,0x88,0x88,0xC8,0x08,0x0F,0x08,0x48,0x88,0x18,0x88,0x40,0x40,0x40,0x4A,0x4A,
; 0xCF,0x12,0x92,0x00,0x1E,0x12,0x12,0x12,0x1E,0x00,0x00,0x00,0x80,0x43,0x92,0x0E,
; 0x02,0x12,0x0E,0x42,0x86,0x1A,0x82,0x43,0x40,0x40,0x40,0x4F,0x49,0x4E,0x40,0x06,
; 0x05,0x15,0x0D,0xC5,0x04,0x06,0xC0,0x80,0x80,0x80,0x80,0xC0,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x0C,0x04,0x00,0x00,0x30,0xC0,
; 0xFE,0x80,0x40,0x82,0x92,0x92,0xFE,0x92,0x92,0x82,0x00,0x00,0x80,0x10,0x10,0x90,
; 0x90,0x92,0xBE,0xD0,0x90,0x10,0x90,0x10,0x00,0x00,0x00,0xFE,0x10,0x92,0x62,0x44,
; 0x78,0x40,0x7C,0x42,0x42,0x4E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x04,0x18,0x90,0x74,0x14,0x94,0x75,0x16,0x34,0xD0,0x14,0x18,0x00,0x00,0x04,0x08,
; 0x71,0x11,0x11,0x11,0xFF,0x11,0x11,0x31,0x10,0x00,0x00,0x00,0x08,0x49,0x4A,0x7F,
; 0x8A,0x09,0x24,0x12,0x00,0xFF,0x01,0x01,0x00,0x00,0x08,0x08,0xFF,0x09,0x06,0x10,
; 0xFF,0x10,0x10,0x1F,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x80,0x80,0x80,0x80,0x90,0xF0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x10,0x10,
; 0x10,0x10,0x10,0x10,0xF0,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x80,0x00,0x00,0xF0,
; 0x00,0x80,0x80,0x80,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x10,0x20,0x40,
; 0x80,0x20,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; };
; /***********************************************************************
; 延时函数
; 系统时钟:8M
; -----------------------------------------------------------------------*/
; void delay_1us(void)                 //1us延时函数
;   {
	.dbline 224
;    asm("nop");
	nop
	.dbline -2
	.dbline 225
;   }
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay_nus _delay_nus fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_nus::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 228
; 
; void delay_nus(unsigned int n)       //N us延时函数
;   {
	.dbline 229
;    unsigned int i=0;
	clr R20
	clr R21
	.dbline 230
;    for (i=0;i<n;i++)
	xjmp L6
L3:
	.dbline 231
	xcall _delay_1us
L4:
	.dbline 230
	subi R20,255  ; offset = 1
	sbci R21,255
L6:
	.dbline 230
	cp R20,R22
	cpc R21,R23
	brlo L3
	.dbline -2
	.dbline 232
;    delay_1us();
;   }
L2:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.dbfunc e delay_1ms _delay_1ms fV
;              i -> R16,R17
	.even
_delay_1ms::
	.dbline -1
	.dbline 235
;   
; void delay_1ms(void)                 //1ms延时函数
;   {
	.dbline 237
	clr R16
	clr R17
	xjmp L11
L8:
	.dbline 237
L9:
	.dbline 237
	subi R16,255  ; offset = 1
	sbci R17,255
L11:
	.dbline 237
;    unsigned int i;
;    for (i=0;i<1140;i++);
	cpi R16,116
	ldi R30,4
	cpc R17,R30
	brlo L8
	.dbline -2
	.dbline 238
;   }
L7:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e delay_nms _delay_nms fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_nms::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 241
;   
; void delay_nms(unsigned int n)       //N ms延时函数
;   {
	.dbline 242
;    unsigned int i=0;
	clr R20
	clr R21
	.dbline 243
;    for (i=0;i<n;i++)
	xjmp L16
L13:
	.dbline 244
	xcall _delay_1ms
L14:
	.dbline 243
	subi R20,255  ; offset = 1
	sbci R21,255
L16:
	.dbline 243
	cp R20,R22
	cpc R21,R23
	brlo L13
	.dbline -2
	.dbline 245
;    delay_1ms();
;   }
L12:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.dbfunc e set_sclk_195 _set_sclk_195 fV
;              i -> R16
	.even
_set_sclk_195::
	.dbline -1
	.dbline 248
; /**********位操作函数*********/
; void set_sclk_195(uchar i)//clk     接PB3
; {	 
	.dbline 249
; 	 if(i)
	tst R16
	breq L18
	.dbline 250
; 	 PORTB|=0x08;
	sbi 0x18,3
	xjmp L19
L18:
	.dbline 252
	in R24,0x18
	andi R24,247
	out 0x18,R24
L19:
	.dbline -2
	.dbline 253
; 	 else
; 	 PORTB&=0xf7;
; }
L17:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_conv _set_conv fV
;              i -> R16
	.even
_set_conv::
	.dbline -1
	.dbline 255
; void set_conv(uchar i)
; {	 
	.dbline 256
; 	 if(i)
	tst R16
	breq L21
	.dbline 257
; 	 PORTB|=0x10;
	sbi 0x18,4
	xjmp L22
L21:
	.dbline 259
	in R24,0x18
	andi R24,239
	out 0x18,R24
L22:
	.dbline -2
	.dbline 260
; 	 else
; 	 PORTB&=0xef;
; }
L20:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_cs_195 _set_cs_195 fV
;              i -> R16
	.even
_set_cs_195::
	.dbline -1
	.dbline 262
; void set_cs_195(uchar i)
; {	 
	.dbline 263
; 	 if(i)
	tst R16
	breq L24
	.dbline 264
; 	 PORTB|=0x01;
	sbi 0x18,0
	xjmp L25
L24:
	.dbline 266
	in R24,0x18
	andi R24,254
	out 0x18,R24
L25:
	.dbline -2
	.dbline 267
; 	 else
; 	 PORTB&=0xfe;
; }
L23:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_cs _set_cs fV
;              i -> R16
	.even
_set_cs::
	.dbline -1
	.dbline 269
; void set_cs(uchar i)
; { if(i)
	.dbline 269
	tst R16
	breq L27
	.dbline 270
; 	 PORTA|=0x01;
	sbi 0x1b,0
	xjmp L28
L27:
	.dbline 272
	in R24,0x1b
	andi R24,254
	out 0x1b,R24
L28:
	.dbline -2
	.dbline 273
; 	 else
; 	 PORTA&=0xfe;
; }
L26:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_res _set_res fV
;              i -> R16
	.even
_set_res::
	.dbline -1
	.dbline 275
; void set_res(uchar i)
; {	 
	.dbline 276
; 	 if(i)
	tst R16
	breq L30
	.dbline 277
; 	 PORTA|=0x02;
	sbi 0x1b,1
	xjmp L31
L30:
	.dbline 279
	in R24,0x1b
	andi R24,253
	out 0x1b,R24
L31:
	.dbline -2
	.dbline 280
; 	 else
; 	 PORTA&=0xfd;
; }
L29:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_a0 _set_a0 fV
;              i -> R16
	.even
_set_a0::
	.dbline -1
	.dbline 282
; void set_a0(uchar i)
; {	 
	.dbline 283
; 	 if(i)
	tst R16
	breq L33
	.dbline 284
; 	 PORTA|=0x04;
	sbi 0x1b,2
	xjmp L34
L33:
	.dbline 286
	in R24,0x1b
	andi R24,251
	out 0x1b,R24
L34:
	.dbline -2
	.dbline 287
; 	 else
; 	 PORTA&=0xfb;
; }
L32:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_sclk _set_sclk fV
;              i -> R16
	.even
_set_sclk::
	.dbline -1
	.dbline 289
; void set_sclk(uchar i)
; {	 
	.dbline 290
; 	 if(i)
	tst R16
	breq L36
	.dbline 291
; 	 PORTC|=0x40;
	sbi 0x15,6
	xjmp L37
L36:
	.dbline 293
	in R24,0x15
	andi R24,191
	out 0x15,R24
L37:
	.dbline -2
	.dbline 294
; 	 else
; 	 PORTC&=0xbf;
; }
L35:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_si _set_si fV
;              i -> R16
	.even
_set_si::
	.dbline -1
	.dbline 296
; void set_si(uchar i)
; {	 
	.dbline 297
; 	 if(i)
	tst R16
	breq L39
	.dbline 298
; 	 PORTC|=0x80;
	sbi 0x15,7
	xjmp L40
L39:
	.dbline 300
	in R24,0x15
	andi R24,127
	out 0x15,R24
L40:
	.dbline -2
	.dbline 301
; 	 else
; 	 PORTC&=0x7f;
; } 
L38:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_c86 _set_c86 fV
;              i -> R16
	.even
_set_c86::
	.dbline -1
	.dbline 303
; void set_c86(uchar i)
; {	 
	.dbline 304
; 	 if(i)
	tst R16
	breq L42
	.dbline 305
; 	 PORTA|=0x20;
	sbi 0x1b,5
	xjmp L43
L42:
	.dbline 307
	in R24,0x1b
	andi R24,207
	out 0x1b,R24
L43:
	.dbline -2
	.dbline 308
; 	 else
; 	 PORTA&=0xcf;
; } 
L41:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e set_ps _set_ps fV
;              i -> R16
	.even
_set_ps::
	.dbline -1
	.dbline 310
; void set_ps(uchar i)
; {	 
	.dbline 311
; 	 if(i)
	tst R16
	breq L45
	.dbline 312
; 	 PORTA|=0x10;
	sbi 0x1b,4
	xjmp L46
L45:
	.dbline 314
	in R24,0x1b
	andi R24,239
	out 0x1b,R24
L46:
	.dbline -2
	.dbline 315
; 	 else
; 	 PORTA&=0xef;
; } 
L44:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e data_send _data_send fV
;           temp -> R20
;              i -> R22,R23
;              s -> R10
;            dat -> R20
	.even
_data_send::
	xcall push_gset3
	mov R20,R16
	.dbline -1
	.dbline 317
; void data_send(unsigned char dat)
; {
	.dbline 320
; unsigned char s,temp;
; int i;
; set_sclk(0);
	clr R16
	xcall _set_sclk
	.dbline 321
; s=dat;
	mov R10,R20
	.dbline 322
; for(i=8;i>0;i--)
	ldi R22,8
	ldi R23,0
L48:
	.dbline 323
; {set_sclk(0);
	.dbline 323
	clr R16
	xcall _set_sclk
	.dbline 324
; NOP();
	nop
	.dbline 325
; NOP();
	nop
	.dbline 326
; temp=s & 0x80;
	mov R20,R10
	andi R20,128
	.dbline 327
; if(temp)
	breq L52
	.dbline 328
; {set_si(1);}
	.dbline 328
	ldi R16,1
	xcall _set_si
	.dbline 328
	xjmp L53
L52:
	.dbline 329
; else {set_si(0);}
	.dbline 329
	clr R16
	xcall _set_si
	.dbline 329
L53:
	.dbline 330
	ldi R16,1
	xcall _set_sclk
	.dbline 331
	lsl R10
	.dbline 332
L49:
	.dbline 322
	subi R22,1
	sbci R23,0
	.dbline 322
	clr R2
	clr R3
	cp R2,R22
	cpc R3,R23
	brlt L48
	.dbline -2
	.dbline 333
; set_sclk(1);
; s=s<<1;
; }
; }
L47:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 c
	.dbsym r i 22 I
	.dbsym r s 10 c
	.dbsym r dat 20 c
	.dbend
	.dbfunc e w_com _w_com fV
;            com -> R20
	.even
_w_com::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 338
; /*************************************************/
; //写命令,串行模式
; /*************************************************/
; void w_com(unsigned char com)
; {
	.dbline 339
; set_a0(0);
	clr R16
	xcall _set_a0
	.dbline 340
; set_cs(0);
	clr R16
	xcall _set_cs
	.dbline 341
; data_send(com);
	mov R16,R20
	xcall _data_send
	.dbline -2
	.dbline 342
; }
L54:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r com 20 c
	.dbend
	.dbfunc e w_data _w_data fV
;            dat -> R20
	.even
_w_data::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 347
; /*************************************************/
; //写数据,串行模式
; /*************************************************/
; void w_data(unsigned char dat)
; {
	.dbline 348
; set_a0(1);
	ldi R16,1
	xcall _set_a0
	.dbline 349
; set_cs(0);
	clr R16
	xcall _set_cs
	.dbline 350
; data_send(dat);
	mov R16,R20
	xcall _data_send
	.dbline -2
	.dbline 351
; }
L55:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r dat 20 c
	.dbend
	.dbfunc e clrram _clrram fV
;           page -> R20
;              i -> R22
;              j -> R10
	.even
_clrram::
	xcall push_gset3
	.dbline -1
	.dbline 356
; /*************************************************/
; //清DDRAM
; /************************************************/
; void clrram (void)
; { uchar i,j,page;
	.dbline 357
;   page=0xb0;
	ldi R20,176
	.dbline 358
;   for(i=0;i<8;i++)
	clr R22
	xjmp L60

⌨️ 快捷键说明

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