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

📄 nju6443串行数据lcd.txt

📁 NJU6443串行数据LCD汇编驱动程序.
💻 TXT
字号:
/****************************************************************************/
/**********************		NJU6443串行数据LCD 汇编模板	********************/
/*****************		Written by yinlei 	20070610	***********************/
/****************************************************************************/



/**********************************定义寄存器******************************************/
	CE EQU P1.0;
	INH EQU P1.2;
	MODE EQU P1.1;
	TADD EQU R1;
	TEMP EQU R2;
	INCD EQU R3;
	PD EQU 2EH;
	NE1 EQU 30H;
	ND2 EQU 31H;
	ND3 EQU 32H;
	ND4 EQU 33H;
	ND5 EQU 34H;
	ND6 EQU 35H;
	ND7 EQU 36H;
	ND8 EQU 37H;
	ND9 EQU 38H;
	ND10 EQU 39H;
	ND11 EQU 3AH;
	ND12 EQU 3BH;
	NB13 EQU 3CH;
	NJS14 EQU 3DH;
	NS15 EQU 3EH;
	NLR16 EQU 3FH;
	NSB17 EQU 40H;
	NX18 EQU 41H;
	NM19 EQU 42H; 					  20-25均用#00H;

/************************************主程序*******************************************/
	ORG 0000H;
	AJMP MAIN;
	ORG 0035H;
MAIN:ACALL CLEAR;
/**************************************数据控制程序1***************************************/

	MOV TEMP,#10000000B;
C1:	MOV A,TEMP;
	RL A;
	MOV @TADD,A;
	MOV TEMP,A;	
	
	MOV A,TADD;
	MOV R4,A;

	ACALL DISPLAY;					调用显示程序
	
	MOV A,R4;
	MOV TADD,A;
	
	CJNE TEMP,#10000000B,C1;
	MOV A,R4;
	MOV TADD,A;
	MOV @TADD,#0FFH;
	ADD A,#01H;
	MOV TADD,A;	
	CJNE R4,#42H,C1;
	MOV @TADD,#0FFH;
	ACALL DISPLAY;	
	ACALL BLINKLCD;
	ACALL BLINKLCD;
	ACALL BLINKLCD;
	ACALL DLY3;
	ACALL DLY3;


	AJMP NEXT0;						扫描所有资源测试结束
	
/******************************************************************************************/
NEXT0:ACALL CLEAR;
	MOV INCD,#00H;
INCREASE:INC INCD;
	MOV TEMP,#00H;
	MOV A,INCD;
	MOV PD,A;
	MOV DPTR,#TABLE;
TAB:MOV A,#2FH;
	ADD A,INCD;
	MOV TADD,A;
	
JJ:MOV A,TEMP;
	INC TEMP;
	
	MOVC A,@A+DPTR;
	MOV @TADD,A;
	DJNZ INCD,TAB;
	ACALL DISPLAY;

	ACALL DLY3;	

	MOV A,PD;
	MOV INCD,A;
	CJNE INCD,#0CH,INCREASE;

	MOV ND12,ND11;
	MOV ND11,ND10;
	MOV ND10,ND9;
	MOV ND9,ND8;
	MOV ND8,ND7;
	MOV ND7,ND6;
	MOV ND6,ND5;
	MOV ND5,ND4;
	MOV ND4,ND3;
	MOV ND3,ND2;
	MOV ND2,NE1;
	MOV NE1,#11010001B;
	MOV NS15,#06H;

	ACALL DISPLAY;
	ACALL BLINKLCD;
	ACALL BLINKLCD;
	ACALL BLINKLCD;
	ACALL DLY3;
	ACALL DLY3;

	AJMP NEXT1;								 数字显示测试2结束

/****************************************TEST IS OVER************************************************/
NEXT1:ACALL CLEAR;
	MOV ND12,#11110000B;					t
	ACALL DISPLAY;							
	ACALL DLY3;

	MOV ND11,#11110001B;					E
	ACALL DISPLAY;							
	ACALL DLY3;

	MOV ND10,#10110101B;					S
	ACALL DISPLAY;
	ACALL DLY3;

	MOV ND9,#11110000B;						t
	ACALL DISPLAY;
	ACALL DLY3;
		
	MOV ND7,#01010000B;						 I
	ACALL DISPLAY;
	ACALL DLY3;

	MOV ND6,#10110101B;						 S
	ACALL DISPLAY;
	ACALL DLY3;
	
	
	MOV ND4,#11010111B;			   			O	
	ACALL DISPLAY;
	ACALL DLY3;

	MOV ND3,#11010110B;						V
	ACALL DISPLAY;
	ACALL DLY3;

	MOV ND2,#11110001B;						E
	ACALL DISPLAY;
	ACALL DLY3;

	MOV NE1,#01110111B;
	ACALL DISPLAY;
	ACALL DLY3;
	
	ACALL BLINKLCD;
	ACALL BLINKLCD;
	ACALL BLINKLCD;

	AJMP $;							

	
	

/***************************************清零操作*******************************************/
CLEAR:MOV INCD,#00H;
	MOV TADD,#30H;
	MOV NE1,#00H;			  
	MOV ND2,#00H;				  
	MOV ND3,#00H;				 
	MOV ND4,#00H;				  
	MOV ND5,#00H;				  
	MOV ND6,#00H;				  
	MOV ND7,#00H;				  
	MOV ND8,#00H;				   
	MOV ND9,#00H;				  
	MOV ND10,#00H;			   
	MOV ND11,#00H;			   
	MOV ND12,#00H;			   
	MOV NB13,#00H;
	MOV NJS14,#00H;
	MOV NS15,#00H;
	MOV NLR16,#00H;
	MOV NSB17,#00H;
	MOV NX18,#00H;
	MOV NM19,#00H;						  	
	RET;
/**************************************显示程序******************************************/
DISPLAY:MOV SCON,#00H;				串行口方式0
//	CLR INH;
//	LCALL DLY1;
// 	LCALL OFF;						清屏显示
//	LCALL DLY1;
	LCALL MODE5;					设置模式5
	SETB CE;
	CLR MODE;
	MOV R0,#13H;					用于控制传输19字节数据
	MOV TADD,#30H;
TD:MOV A,@TADD;
	MOV SBUF,A;
	JNB TI,$;
	CLR TI;
	INC TADD;
	DJNZ R0,TD;
	MOV R0,#06H;
TD00H:MOV A,#00H;					用00H补足无显示项,6字节
	MOV SBUF,A;
	JNB TI,$;
	CLR TI;	
	DJNZ R0,TD00H;
	CLR CE;							开启显示
	SETB INH;
	MOV TADD,#30H
	LCALL DLY2;
	RET;					 
/**************************************其他子程序***********************************************/

DLY1:MOV R6,#14H;						10ms
DL1:MOV R5,#0FEH;
	DJNZ R5,$;
	DJNZ R6,DL1;
	RET;
DLY2:MOV R7,#01H;						
DL5:MOV R5,#0FFH;
DL6:MOV R6,#0FFH;
	DJNZ R6,$;
	DJNZ R5,DL6;
	DJNZ R7,DL5;
	RET;
DLY3:ACALL DLY2;
	ACALL DLY2;
	ACALL DLY2;
	RET;
MODE5:SETB CE;
	SETB MODE;
	MOV A,#55H;
	MOV SBUF,A;						NJU6443模式5,接收200bit数据(25B)
	JNB TI,$;						等待模式设置完成
	CLR TI;
	CLR CE;
	RET;
OFF:SETB CE;
	SETB MODE;
	MOV A,#0FFH;
	MOV SBUF,A;
	JNB TI,$;
	CLR TI;
	CLR CE;
	RET;
BLINKLCD:ACALL DLY3;
	ACALL OFF;
	ACALL DLY3;
	ACALL DISPLAY;
	RET;
TABLE:DB 00000110B,11100011B,10100111B,00110110B,10110101B
	DB 11110101B,00000111B,11110111B,10110111B,11010111B
	DB 01110111B,11110100B,11010001B
END

⌨️ 快捷键说明

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