LCD1602字符液晶显示程序

来源:本站
导读:目前正在解读《LCD1602字符液晶显示程序》的相关信息,《LCD1602字符液晶显示程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《LCD1602字符液晶显示程序》的详细说明。
简介:在这里给大家提供一个LCD1602字符液晶显示程序。

Z EQU 2 ;定义0状态位的位地址

RP0 EQU 5 ;定义页选位RP0的位地址

#DEFINE RS PORTA,1

#DEFINE RW PORTA,2

#DEFINE E PORTA,3

COUNT EQU 24H ;定义计数寄存器地址

TMP1 EQU 25H ;定义临时寄存器地址

COUNTER EQU 26H

;**********************

ORG 000H

NOP ;放置一条ICD必需的空操作指令

GOTO MAIN

ORG 0008H

;******************************************************

TABLE

ADDWF PCL,1 ;地址偏移量加当前PC值

RETLW 20H ;空格

RETLW 20H ;

RETLW 41H ;A

RETLW 20H ;

RETLW 6CH ;l

RETLW 61H ;a

RETLW 7AH ;z

RETLW 79H ;y

RETLW 20H ;

RETLW 79H ;y

RETLW 6FH ;o

RETLW 75H ;u

RETLW 74H ;t

RETLW 68H ;h

RETLW 20H ;

RETLW 00H

;-------------------- ----------------------------------

TABLE1

ADDWF PCL,1 ;地址偏移量加当前PC值

RETLW 20H ;

RETLW 20H ;

RETLW 61H ;a

RETLW 20H ;

RETLW 6CH ;l

RETLW 6FH ;o

RETLW 75H ;u

RETLW 73H ;s

RETLW 79H ;y

RETLW 20H ;

RETLW 61H ;a

RETLW 67H ;g

RETLW 65H ;e

RETLW 20H ;

RETLW 00H

;*******************************************************

; 主程序

;******************************************************

MAIN

BSF STATUS,RP0 ;转体1

MOVLW 0EH

MOVWF ADCON1 ;设置RA口全部为普通数字IO口

MOVLW 00H

MOVWF TRISA ;定义A口为输出

MOVWF TRISD ;定义D口为输出

BCF STATUS,RP0 ;回体0

;-----------------------------------

;以下16条指令为设置LCD显示模式

;-----------------------------------

CALL DELAY ;调用延时,刚上电LCD复位不一定有PIC快(196MS)

MOVLW 01H

MOVWF PORTD ;清屏命令,数据指针清零,所有显示清零

CALL ENABLE ;调用写命令程序

MOVLW 38H

MOVWF PORTD ;8位2行5x7点阵

CALL ENABLE

MOVLW 0EH ;显示开、光标显示、光标不显示

MOVWF PORTD

CALL ENABLE ;当读或写一个字符后,地址指针加一,且光标加一

MOVLW 06H ;当写一个字符后,整屏显示不移动

MOVWF PORTD

;-----------------------------------

CALL ENABLE ;设置数据地址指针

MOVLW 80H

MOVWF PORTD ;第一行的位置

CALL ENABLE

CALL WRITE1 ;调用送第一行数子程序“WWW.PIC16.COM"

;---------------------------------

MOVLW 0C0H

MOVWF PORTD ;第二行的位置

CALL ENABLE

CALL WRITE2 ;调用送第二行数子程序“TEL0755-83643980"

GOTO $

;****************** 送第一行数字程序***************

WRITE1

CLRF COUNT ;清0查表偏移地址

WRITE_A

MOVF COUNT,W

CALL TABLE ;查表,显示A LAZY YOUTH

MOVWF TMP1 ;送暂存器

INCF COUNT,1 ;偏移地址加1

MOVF TMP1,W

XORLW 00H ;判断是否显示完所有数据(约定表格做后一个00H做为结束标志)

BTFSC STATUS,Z

GOTO ET ;全部显示完成

MOVF TMP1,W

CALL WRITE3 ;没有显示完,把当前查表所得数据送LCD显示

GOTO WRITE_A ;调用显示程序

ET NOP

RETURN ;子程序返回

;*******************送第二行数子程序**************

WRITE2

CLRF COUNT ;清0查表偏移地址

WRITE2_A

MOVF COUNT,W

CALL TABLE1 ;查表,显示A LOUSY AGE

MOVWF TMP1

INCF COUNT,1 ;偏移地址加1

MOVF TMP1,W

XORLW 00H ;判断是否显示完所有数据

BTFSC STATUS,Z

GOTO ET1 ;

MOVF TMP1,W

CALL WRITE3 ;调用显示程序

GOTO WRITE2_A

ET1 NOP

RETURN ;是,程序返回

;*******************送数据到LCD子程序*************

WRITE3

MOVWF PORTD

BSF RS

BCF RW

BCF E

CALL DELAY

BSF E

RETURN

;*******************写命令程序********************

ENABLE

BCF RS ;写入控制命令的子程序

BCF RW

BCF E

CALL DELAY ;高脉冲使能

BSF E

RETURN

;*********************延时子程序******************

DELAY

MOVLW 0FFH ;将外层循环参数值FFH经过W

MOVWF 20H ;送入用作外循环变量的20H单元

LP0

MOVLW 0FFH ;将内层循环参数值FFH经过W

MOVWF 21H ;送入用作内循环变量的21H单元

LP1

DECFSZ 21H,1 ;变量21H内容递减,若为0跳跃

GOTO LP1 ;跳转到LP1处

DECFSZ 20H,1 ;变量20H内容递减,若为0跳跃

GOTO LP0 ;跳跃到LP0处

RETURN ;返回主程序

;--------------------------------------------------------------

END

提醒:《LCD1602字符液晶显示程序》最后刷新时间 2024-03-14 01:02:26,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《LCD1602字符液晶显示程序》该内容的真实性请自行鉴别。