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

📄 lcd_sub.txt

📁 通用的LCD显示的子程序,汇编语言的,还可以
💻 TXT
字号:
内部指令 :
 


MOV   A,#38H          ;使用8Bits汇流排,显示两行,使用			5*7的字型。 
LCALL wr_ir;             ;写指令到IR(指令)寄存器 
MOV   A,#0EH          ;显示器开,光标开,光标闪烁。 
LCALL wr_ir;          ;写指令到IR寄存器 
MOV   A,#06H          ;字符不动,光标自动右移一格。 
LCALL wr_IR;          ;写指令到IR寄存器   

;*****************清除LCD显示器程序******************
CLS:            
	MOV A,#01H     ;将01H放入ACC。 
	ACALL WR_IR     ;写指令到IR寄存器 
	RET            ;返回。

;*****************写指令到指令寄存器*****************
WR_IR:
	ACALL BUSY_OR_NOT  ; 检查忙碌,不忙后继续。
	CLR  E      ;禁能LCD。 
	CLR  RS     ;选择指令暂存器。 
	CLR  RW     ;选择写模式。 
	SETB  E     ;使能LCD。 
	MOV  DB0_DB7,ACC    ;将存在ACC内的指令码经由P1口输出到期LCD。 
	CLR  E      ;禁能LCD。 
	RET    ;返回。 

;******************等待LCD不忙********************
BUSY_OR_NOT:
	PUSH ACC	
	DDW1:  
		CLR RS	     	  ;选择指令暂存器。 
		SETB   RW   	  ;选择读模式。 
		CLR    E     	  ;禁能LCD。 
		SETB   E     	  ;使能LCD。 
		MOV A,DB0_DB7	  ;将LCD的DB0-DB7的资料经由P1口存入ACC中,以便查对第7位元BF是否为0。 
		CLR   E     	  ;禁能LCD。 
		JB    ACC.7,DDW1   ;判断由LCD读入资料的第7元位及BF是否为1,若为1表示LCD忙碌中。 
		POP   ACC   	   ;将累加器ACC的内容从堆栈区取出。 
		ACALL   DELAY      ;调用延时程序。 
	RET        		   ;返回。 

;****************写数据到数据寄存器******************
WR_DR:    ;写入DR寄存器子程序。 
	  ACALL BUSY_OR_NOT  ;检查忙碌。 
	  CLR E      ;禁能LCD。 
          SETB RS    ;选择资料寄存器。 
          CLR RW     ;选择写模式。 
	  SETB E     ;使能LCD。 
          MOV DB0_DB7,ACC    ;将存在ACC内的指令码经由P1口输出到期LCD。 
          CLR E     ;禁能LCD。 
RET    ;返回。 


;***************延时子程序*************************
DELAY:              
        MOV   R6,#5 
	D1:  
	 	MOV   R7,#248 
     	        DJNZ  R7,$ 
        DJNZ  R6,D1 
      RET 

⌨️ 快捷键说明

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