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

📄 g19264.src

📁 这是一个用STC单片机作的,带液晶显示屏的万年历程序,并有串行接收部份,大家一定要珍惜用.
💻 SRC
📖 第 1 页 / 共 3 页
字号:
	DB	080H
	DB	080H
	DB	080H
	DB	080H
	DB	080H
	DB	000H
	DB	000H
	DB	03FH
	DB	000H
	DB	000H
	DB	03FH
	DB	000H
	DB	000H
	DB	03FH
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	080H
	DB	080H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	03FH
	DB	001H
	DB	000H
	DB	000H
	DB	000H
	DB	03FH
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	080H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	00EH
	DB	011H
	DB	020H
	DB	020H
	DB	020H
	DB	011H
	DB	00EH
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	080H
	DB	080H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	0FFH
	DB	011H
	DB	020H
	DB	020H
	DB	020H
	DB	01FH
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	080H
	DB	080H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	01FH
	DB	020H
	DB	020H
	DB	020H
	DB	011H
	DB	0FFH
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	080H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	03FH
	DB	001H
	DB	001H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	080H
	DB	080H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	013H
	DB	024H
	DB	024H
	DB	024H
	DB	024H
	DB	019H
	DB	000H
	DB	000H
	DB	080H
	DB	080H
	DB	0E0H
	DB	080H
	DB	080H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	01FH
	DB	020H
	DB	020H
	DB	020H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	01FH
	DB	020H
	DB	020H
	DB	020H
	DB	010H
	DB	03FH
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	007H
	DB	018H
	DB	020H
	DB	018H
	DB	007H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	00FH
	DB	030H
	DB	00EH
	DB	001H
	DB	00EH
	DB	030H
	DB	00FH
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	020H
	DB	011H
	DB	00AH
	DB	004H
	DB	00AH
	DB	011H
	DB	020H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	000H
	DB	000H
	DB	087H
	DB	098H
	DB	060H
	DB	018H
	DB	007H
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	080H
	DB	080H
	DB	080H
	DB	080H
	DB	080H
	DB	000H
	DB	000H
	DB	030H
	DB	028H
	DB	024H
	DB	022H
	DB	021H
	DB	020H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	080H
	DB	07EH
	DB	002H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	03FH
	DB	020H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	0FFH
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	0FFH
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	002H
	DB	07EH
	DB	080H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	020H
	DB	03FH
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	006H
	DB	001H
	DB	001H
	DB	006H
	DB	004H
	DB	003H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H
	DB	000H

; /*写汉字液晶子程 液晶屏分为4行*12列汉字,全部使用模拟接口方式。
; /*		 TGLCMLIMIT64A接口程序(模拟方式)
; 	液晶模块供应商:广州市盛宝电子有限公司	Tel:020-87592491 Fax:87541571
; 	Email:	tinsharp@public.guangzhou.gd.cn
; ;***************************************************************************
; ;连线图:
; ;*LCM---89C52*  *LCM---89C52*   *LCM-------89C52*     *LCM----------89C52* *
; ;*DB0---P0.0*   *DB4---P0.4*    *D/I-------P2.6*      *CS1----------P2.4*  *
; ;*DB1---P0.1*   *DB5---P0.5*    *R/W-------P2.7*      *CS2----------P2.5*  *
; ;*DB2---P0.2*   *DB6---P0.6*    *RST--------VCC*      *CS3----------P3.2*  * 
; ;*DB3---P0.3*   *DB7---P0.7*    *E---------P2.3*                           *
; ;注:89C52的晶振频率为12MHz                                                 *
; ;***************************************************************************/
; //画线部分请参照avr的c程序。
; #pragma src			/*生成ASM文件开关,必要时打开	*/
; #include<reg52.h>
; #include<math.h>
; #include<INTRINS.H>
; 
; #define	Uchar unsigned char
; 
; /***********液晶显示器接口引脚定义***************/
; 
; #define LED P2_0
; 
; sbit    RST=	P1^4;
; sbit	Elcm=	P1^2;		//
; sbit	CS1LCM=	P1^3;		//
; sbit	CS2LCM=	P1^5;		//
; sbit	CS3LCM=	P1^6;		/*这个连接只是做实验的临时接法。*/
; sbit	Dilcm=	P1^0;		//
; sbit	Rwlcm=	P1^1;		//
; sfr Datalcm=	0x80;		//数据口
; 
; /***********常用操作命令和参数定义***************/
; #define	 DISPON		0x3f	/*显示on		*/
; #define	 DISPOFF	0x3e	/*显示off		*/
; #define	 DISPFIRST	0xc0	/*显示起始行定义	*/
; #define	 SETX		0x40	/*X定位设定指令(页)	*/
; #define	 SETY		0xb8	/*Y定位设定指令(列)	*/
; #define	 Lcdbusy	0x80	/*LCM忙判断位		*/
; 
; /**************显示分区边界位置*****************/
; #define	 MODL		0x00	/*左区			*/
; #define	 MODM		0x40	/*左区和中区分界	*/
; #define	 MODR		0x80	/*中区和右区分界	*/
; #define	LCMLIMIT	0xC0	/*显示区的右边界	*/
; 
; /****************全局变量定义*******************/
; Uchar col,row,cbyte;		/*列x,行(页)y,输出数据	*/
; bit xy;				/*画线方向标志:1水平	*/
; 
; /*****************函数列表**********************/
; void Lcminit(void);		/*液晶模块初始化	*/
; void Delay(Uchar);		/*延时,入口数为Ms	*/
; void lcdbusyL(void);		/*busy判断、等待(左区)	*/
; void lcdbusyM(void);		/*busy判断、等待(中区)	*/
; void lcdbusyR(void);		/*busy判断、等待(右区)	*/
; void Putedot(Uchar);		/*半角字符输出		*/
; void Putcdot(Uchar);		/*全角(汉字)输出	*/
; void Wrdata(Uchar);		/*数据输出给LCM		*/
; void Lcmcls( void );		/*LCM全屏幕清零(填充0)	*/
; void wtcom(void);		/*公用busy等待		*/
; void Locatexy(void);		/*光标定位		*/
; void WrcmdL(Uchar);		/*左区命令输出		*/
; void WrcmdM(Uchar);		/*中区命令输出		*/
; void WrcmdR(Uchar);		/*右区命令输出		*/
; void Putstr(Uchar *puts,Uchar i);	/*中英文字符串输出	*/
; void Rollscreen(Uchar x);	/*屏幕向上滚动演示	*/
; void Rddata(void);		/*  从液晶片上读数据	*/
; void Linehv(Uchar length);	/*横(竖)方向画线	*/
; void point(void);		/*打点			*/
; void Linexy(Uchar endx,Uchar endy);/*画线。任意方向的斜线,不支持垂直的或水平线	*/
; 
; 
; /******************数组列表*********************/
; Uchar code Ezk[];		/*ASCII常规字符点阵码表	*/
; Uchar code Hzk[];		/*自用汉字点阵码表	*/
; Uchar code STR1[];		/*自定义字符串		*/
; Uchar code STR2[];		//
; Uchar code STR3[];		//
; Uchar code STR4[];		//
; 
; 
; /********************************/
; /* 演示主程序			*/
; /********************************/
; void main(void)

	RSEG  ?PR?main?G19264
main:
	USING	0
			; SOURCE LINE # 88
; 
; { 	Uchar x;
			; SOURCE LINE # 90
; 	RST=0;			//LCD复位
			; SOURCE LINE # 91
	CLR  	RST
; 	Delay(30);
			; SOURCE LINE # 92
	MOV  	R7,#01EH
	LCALL	_Delay
; 	RST=1;
			; SOURCE LINE # 93
	SETB 	RST
; 
; 	col=0;	row=0;	Delay(40);		/*延时大约40Ms,等待外设准备好	*/
			; SOURCE LINE # 95
	CLR  	A
	MOV  	col,A
	MOV  	row,A
	MOV  	R7,#028H
	LCALL	_Delay
; 	Lcminit();		/*液晶模块初始化,包括全屏幕清屏*/
			; SOURCE LINE # 96
	LCALL	Lcminit
; 	
; 	Putstr(STR2,24);	/*第一行字符输出,24字节	*/
			; SOURCE LINE # 98
	MOV  	R2,#HIGH (STR2)
	MOV  	R1,#LOW (STR2)
	LCALL	L?0098
; 	col=0;	row=2;
			; SOURCE LINE # 99
	CLR  	A
	MOV  	col,A
	MOV  	row,#02H
; 	Putstr(STR1,12);	/*第二行字符输出,12字节	*/
			; SOURCE LINE # 100
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (STR1)
	MOV  	R1,#LOW (STR1)
	MOV  	R5,#0CH
	LCALL	_Putstr
; 	col=0;	row=4;
			; SOURCE LINE # 101
	CLR  	A
	MOV  	col,A
	MOV  	row,#04H
; 	Putstr(STR3,24);	/*第三行字符输出,24字节	*/
			; SOURCE LINE # 102
	MOV  	R2,#HIGH (STR3)
	MOV  	R1,#LOW (STR3)
	LCALL	L?0098
; 	col=0;	row=6;
			; SOURCE LINE # 103
	CLR  	A
	MOV  	col,A
	MOV  	row,#06H
; 	Putstr(STR4,24);	/*第四行字符输出,12字节	*/
			; SOURCE LINE # 104
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (STR4)
	MOV  	R1,#LOW (STR4)
	MOV  	R5,#018H
	LCALL	_Putstr
; 	x=0;	col=0;	row=0;
			; SOURCE LINE # 105
	CLR  	A
	MOV  	x?040,A
	MOV  	col,A
	MOV  	row,A
; 	xy = 1;			/*方向标志。定为水平方向	*/
			; SOURCE LINE # 106
; 	Linehv(192);		/*画一条横线(0,0)-(191,0)	*/
			; SOURCE LINE # 107
	LCALL	L?0099
; 	col=0;
			; SOURCE LINE # 108
	CLR  	A
	MOV  	col,A
; 	row=15;
			; SOURCE LINE # 109
	MOV  	row,#0FH
; 	xy = 1;
			; SOURCE LINE # 110
; 	Linehv(192);		/*画一条横线(0,15)-(191,15)	*/
			; SOURCE LINE # 111
	LCALL	L?0099
; 	col=0;
			; SOURCE LINE # 112
	CLR  	A
	MOV  	col,A
; 	row=32;
			; SOURCE LINE # 113
	MOV  	row,#020H
; 	xy = 1;
			; SOURCE LINE # 114
; 	Linehv(192);		/*画一条横线(0,32)-(191,32)	*/
			; SOURCE LINE # 115
	LCALL	L?0100
; 	col=0;
			; SOURCE LINE # 116
	CLR  	A
	MOV  	col,A
; 	row=1;
			; SOURCE LINE # 117
	MOV  	row,#01H
; 	xy = 0;			/*方向标志。定为垂直方向	*/
			; SOURCE LINE # 118
	CLR  	xy
; 	Linehv(31);		/*画一条竖线(0,1)-(0,31)	*/
			; SOURCE LINE # 119
	MOV  	R7,#01FH
	LCALL	_Linehv
; 	col=191;
			; SOURCE LINE # 120
	MOV  	col,#0BFH
; 	row=1;
			; SOURCE LINE # 121
	MOV  	row,#01H
; 	xy = 0;
			; SOURCE LINE # 122
	CLR  	xy
; 	Linehv(31);		/*画一条竖线(191,1)-(191,31)	*/
			; SOURCE LINE # 123
	MOV  	R7,#01FH
	LCALL	_Linehv
; /*	col=0;			/*设定斜线的起点坐标		*/
; //	row=63;
; //	Linexy(44,31);		/*画一段斜线(0,63)-(44,31)	*/
; //	col=44;
; //	row=31;
; //	Linexy(190,62);		/*继续画斜线(44,31)-(191,63)	*/
; pp:	while(1){
			; SOURCE LINE # 130
?main?pp:
?C0002:
; 		Rollscreen(x);	/*定位新的显示起始行	*/
			; SOURCE LINE # 131
	MOV  	R7,x?040
	LCALL	_Rollscreen
; 		x++;x++;x++;
			; SOURCE LINE # 132
	INC  	x?040
	INC  	x?040
	INC  	x?040
; 		Delay(200);	/*延时,控制滚动速度	*/
			; SOURCE LINE # 133
	MOV  	R7,#0C8H
	LCALL	_Delay
; 		};
			; SOURCE LINE # 134
	SJMP 	?C0002
; END OF main

; 		goto pp;
; }
; 
; 
; /************************************************/
; /*画线。任意方向的斜线,不支持垂直的或水平线	*/
; /************************************************/
; 
; void Linexy(Uchar endx,Uchar endy)

	RSEG  ?PR?_Linexy?G19264
_Linexy:
	USING	0
			; SOURCE LINE # 143
;---- Variable 'endy?142' assigned to Register 'R5' ----
;---- Variable 'endx?141' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 144
; 	register Uchar t;
; 	int xerr=0,yerr=0,delta_x,delta_y,distance;
			; SOURCE LINE # 146
	CLR  	A
	MOV  	xerr?144,A
	MOV  	xerr?144+01H,A
	MOV  	yerr?145,A
	MOV  	yerr?145+01H,A
; 	Uchar incx,incy;
; 
; /* 	compute the distance in both directions */
; 	delta_x=endx-col;
			; SOURCE LINE # 150
	MOV  	A,col
	MOV  	R3,A
	CLR  	C
	MOV  	A,R7
	SUBB 	A,R3
	MOV  	delta_x?146+01H,A
	CLR  	A
	SUBB 	A,#00H
	MOV  	delta_x?146,A
; 	delta_y=endy-row;
			; SOURCE LINE # 151
	CLR  	C
	MOV  	A,R5
	SUBB 	A,row
	MOV  	delta_y?147+01H,A
	CLR  	A
	SUBB 	A,#00H
	MOV  	delta_y?147,A
; 
; /* compute  the direction of the increment ,
; 	an increment of "0" means either a vertical or horizontal lines */
; 
; 	if(delta_x>0) incx=1;
			; SOURCE LINE # 156
	SETB 	C
	MOV  	A,delta_x?146+01H
	SUBB 	A,#00H
	MOV  	A,delta_x?146
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0005
	MOV  	incx?149,#01H
	SJMP 	?C0006
?C0005:
; 	else if( delta_x==0 ) incx=0;
			; SOURCE LINE # 157
	MOV  	A,delta_x?146+01H
	ORL  	A,delta_x?146
	JNZ  	?C0007
	MOV  	incx?149,A
	SJMP 	?C0006
?C0007:
; 		else incx=-1;
			; SOURCE LINE # 158
	MOV  	incx?149,#0FFH
?C0006:
; 
; 
; 	if(delta_y>0) incy=1;
			; SOURCE LINE # 161
	SETB 	C
	MOV  	A,delta_y?147+01H
	SUBB 	A,#00H
	MOV  	A,delta_y?147
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0009
	MOV  	incy?150,#01H
	SJMP 	?C0010
?C0009:
; 	else if( delta_y==0 ) incy=0;
			; SOURCE LINE # 162
	MOV  	A,delta_y?147+01H
	ORL  	A,delta_y?147
	JNZ  	?C0011
	MOV  	incy?150,A
	SJMP 	?C0010
?C0011:
; 		else incy=-1;
			; SOURCE LINE # 163
	MOV  	incy?150,#0FFH
?C0010:
; 
; /*  determine which distance is greater */
; 	delta_x = cabs( delta_x );
			; SOURCE LINE # 166
	MOV  	R7,delta_x?146+01H
	LCALL	_cabs
	MOV  	A,R7
	RLC  	A
	SUBB 	A,ACC
	MOV  	delta_x?146,A
	MOV  	delta_x?146+01H,R7
; 	delta_y = cabs( delta_y );
			; SOURCE LINE # 167
	MOV  	R7,delta_y?147+01H
	LCALL	_cabs
	MOV  	A,R7
	RLC  	A
	SUBB 	A,ACC
	MOV  	delta_y?147,A
	MOV  	delta_y?147+01H,R7
; 
; 	if( delta_x > delta_y ) distance=delta_x;
			; SOURCE LINE # 169
	SETB 	C
	MOV  	A,delta_x?146+01H
	SUBB 	A,delta_y?147+01H
	MOV  	A,delta_y?147
	XRL  	A,#080H
	MOV  	R0,A
	MOV  	A,delta_x?146
	XRL  	A,#080H
	SUBB 	A,R0
	JC   	?C0013
	MOV  	distance?148,delta_x?146
	MOV  	distance?148+01H,delta_x?146+01H
	SJMP 	?C0014
?C0013:
; 	else distance=delta_y;
			; SOURCE LINE # 170
	MOV  	distance?148,delta_y?147
	MOV  	distance?148+01H,delta_y?147+01H
?C0014:
; 
; /* draw the line */
; 	for( t=0;t <= distance+1; t++ ) {
			; SOURCE LINE # 173
	CLR  	A
	MOV  	t?143,A
?C0015:
	MOV  	A,distance?148+01H
	ADD  	A,#01H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,distance?148
	MOV  	R6,A
	SETB 	C
	MOV  	A,t?143
	SUBB 	A,R7
	MOV  	A,R6
	XRL  	A,#080H
	MOV  	R0,A
	MOV  	A,#080H
	SUBB 	A,R0
	JNC  	?C0020
; 		point();
			; SOURCE LINE # 174
	LCALL	point
;  	   xerr += delta_x ;
			; SOURCE LINE # 175
	MOV  	A,delta_x?146+01H
	ADD  	A,xerr?144+01H
	MOV  	xerr?144+01H,A
	MOV  	A,delta_x?146
	ADDC 	A,xerr?144
	MOV  	xerr?144,A
; 		yerr += delta_y ;
			; SOURCE LINE # 176
	MOV  	A,delta_y?147+01H
	ADD  	A,yerr?145+01H
	MOV  	yerr?145+01H,A
	MOV  	A,delta_y?147
	ADDC 	A,yerr?145
	MOV  	yerr?145,A
; 		if( xerr > distance ) {
			; SOURCE LINE # 177
	SETB 	C
	MOV  	A,xerr?144+01H
	SUBB 	A,distance?148+01H
	MOV  	A,distance?148
	XRL  	A,#080H
	MOV  	R0,A
	MOV  	A,xerr?144
	XRL  	A,#080H
	SUBB 	A,R0
	JC   	?C0018
; 			xerr-=distance;
			; SOURCE LINE # 178
	MOV  	A,xerr?144+01H
	SUBB 	A,distance?148+01H
	MOV  	xerr?144+01H,A
	MOV  	A,xerr?144
	SUBB 	A,distance?148
	MOV  	xerr?144,A
;  		    col+=incx;
			; SOURCE LINE # 179
	MOV  	A,incx?149
	ADD  	A,col
	MOV  	col,A
; 		}
			; SOURCE LINE # 180
?C0018:
; 		if( yerr > distance ) {
			; SOURCE LINE # 181
	SETB 	C
	MOV  	A,yerr?145+01H
	SUBB 	A,distance?148+01H
	MOV  	A,distance?148
	XRL  	A,#080H
	MOV  	R0,A
	MOV  	A,yerr?145
	XRL  	A,#080H
	SUBB 	A,R0
	JC   	?C0017
; 			yerr-=distance;
			; SOURCE LINE # 182
	MOV  	A,yerr?145+01H
	SUBB 	A,distance?148+01H
	MOV  	yerr?145+01H,A
	MOV  	A,yerr?145
	SUBB 	A,distance?148
	MOV  	yerr?145,A
;  		    row+=incy;
			; SOURCE LINE # 183
	MOV  	A,incy?150
	ADD  	A,row
	MOV  	row,A
; 		}
			; SOURCE LINE # 184
; 
; 	}
			; SOURCE LINE # 186
?C0017:
	INC  	t?143
	SJMP 	?C0015
; }
			; SOURCE LINE # 187
?C0020:
	RET  	
; END OF _Linexy

; 
; /****************************************/
; /*画线。只提供X或Y方向的,不支持斜线	*/
; /****************************************/
; void Linehv(Uchar length)

	RSEG  ?PR?_Linehv?G19264
L?0099:
	USING	0
L?0100:
	SETB 	xy
	MOV  	R7,#0C0H
_Linehv:
	USING	0
			; SOURCE LINE # 192
	MOV  	length?251,R7
; 	{
			; SOURCE LINE # 193
; 		Uchar xs,ys;
; 		if (xy){ys = col;
			; SOURCE LINE # 195
	JNB  	xy,?C0021
	MOV  	ys?253,col
; 			for (xs=0;xs<length;xs++){
			; SOURCE LINE # 196
	CLR  	A
	MOV  	xs?252,A
?C0022:
	MOV  	A,xs?252
	CLR  	C
	SUBB 	A,length?251
	JNC  	?C0029
; 					col = ys + xs;
			; SOURCE LINE # 197
	MOV  	A,ys?253
	ADD  	A,xs?252
	MOV  	col,A
; 					point();}
			; SOURCE LINE # 198
	LCALL	point
	INC  	xs?252
	SJMP 	?C0022
; 				}
			; SOURCE LINE # 199
?C0021:
; 		else	{xs = row;
			; SOURCE LINE # 200
	MOV  	xs?252,row
; 			for (ys=0;ys<length;ys++){
			; SOURCE LINE # 201
	CLR  	A
	MOV  	ys?253,A
?C0026:
	MOV  	A,ys?253
	CLR  	C
	SUBB 	A,length?251
	JNC  	?C0029
; 					row = xs + ys;
			; SOURCE LINE # 202
	MOV  	A,xs?252
	ADD  	A,ys?253
	MOV  	row,A
; 					point();}
			; SOURCE LINE # 203
	LCALL	point
	INC  	ys?253
	SJMP 	?C0026
; 				}
			; SOURCE LINE # 204
; }
			; SOURCE LINE # 205
?C0029:
	RET  	
; END OF _Linehv

; 
; /****************************************/
; /*	画点				*/
; /****************************************/
; 
; void point(void)

	RSEG  ?PR?point?G19264
point:
	USING	0
			; SOURCE LINE # 211
; 	{
			; SOURCE LINE # 212
; 		Uchar	x1,y1,x,y;
; 		x1=col;			//列缓存
			; SOURCE LINE # 214
	MOV  	x1?354,col
; 		y1=row;			//行缓存
			; SOURCE LINE # 215
	MOV  	y1?355,row
; 		row=y1>>3;		/*取Y方向分页地址	*/
			; SOURCE LINE # 216
	MOV  	A,y1?355
	RRC  	A
	RRC  	A
	RRC  	A
	ANL  	A,#01FH
	MOV  	row,A
; 		Rddata();		//从液晶片上读数据,存于cbyte全局变量中
			; SOURCE LINE # 217
	LCALL	Rddata
; 		y=y1&0x07;		/*字节内位置计算	*/
			; SOURCE LINE # 218
	MOV  	A,y1?355
	ANL  	A,#07H
	MOV  	R7,A
;---- Variable 'y?357' assigned to Register 'R7' ----
; 		x=0x01;
			; SOURCE LINE # 219
;---- Variable 'x?356' assigned to Register 'R6' ----
	MOV  	R6,#01H
; 		x=x<<y;			/*移入所画点		*/
			; SOURCE LINE # 220
	MOV  	A,R6
	MOV  	R0,AR7
	INC  	R0
	SJMP 	?C0092
?C0091:
	CLR  	C
	RLC  	A
?C0092:
	DJNZ 	R0,?C0091
	MOV  	R6,A
; 		Wrdata(cbyte|x);	/*画上屏幕		*/
			; SOURCE LINE # 221
	ORL  	A,cbyte
	MOV  	R7,A
	LCALL	_Wrdata
; 		col=x1;			/*恢复xy坐标		*/
			; SOURCE LINE # 222
	MOV  	col,x1?354
; 		row=y1;
			; SOURCE LINE # 223
	MOV  	row,y1?355
; 	}
			; SOURCE LINE # 224
	RET  	
; END OF point

; 
; /****************************************/
; /*		 	屏幕滚动定位 	            */
; /****************************************/
; void Rollscreen(Uchar x)

	RSEG  ?PR?_Rollscreen?G19264
_Rollscreen:
	USING	0
			; SOURCE LINE # 229
;---- Variable 'x?458' assigned to Register 'R7' ----
; 	{
			; SOURCE LINE # 230
; 		cbyte = DISPFIRST|x;	/*定义显示起始行为x

⌨️ 快捷键说明

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