📄 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 + -