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

📄 2-4.asm

📁 pic16f87a LCD显示网址所以请不要将文件放在这两个目录下
💻 ASM
字号:
;------------------------------------------------------------------------------------------
;LCD显示本站网址和电话实验参考程序(实验2-4.ASM)
;进一步熟悉查表程序的用法,LCD的读写方法。
;------------------------------------------------------------------------------------------
LIST	P=16F877A
INCLUDE"P16F877A.INC"
INCLUDE"MY.INC"			;COUNT、TEMP变量已经定义
;------------------------------------------------------------------------------------------
E	EQU	03H				;LCD片选信号脚定义在RA.5脚
RW	EQU	02H				;LCD读/写信号脚定义在RA.3脚
RS	EQU	01H 				;LCD寄存器选择信号脚定义在RA.2脚
;------------------------------------------------------------------------------------------
  	ORG 0000H
  	NOP  			   	;放置一条ICD必需的空操作指令
  	GOTO MAIN
 	ORG 0008H
;------------------------------------------------------------------------------------------
TABLE           	        	;取第一行的显示码WWW.AJDZ.NET
	ADDWF PCL,1 			;地址偏移量加当前PC值
	RETLW ' '
	RETLW ' '
	RETLW 'W'
	RETLW 'W'
	RETLW 'W'
	RETLW '.'
	RETLW 'A'
	RETLW 'J'
	RETLW 'D'
	RETLW 'Z'
	RETLW '.'
	RETLW 'N'
	RETLW 'E'
	RETLW 'T'
    RETLW ' '
	RETLW ' '
    RETLW 00H			;数据结束标记
;------------------------------------------------------------------------------------------
TABLE1                     	;取第二行的显示码TEL0575 2263178 
	ADDWF PCL,1     		;地址偏移量加当前PC值                                                 	
	RETLW 'T'
	RETLW 'E'
	RETLW 'L'
	RETLW ':'
	RETLW '0'
	RETLW '5'
	RETLW '7'
	RETLW '5'
	RETLW '8'
	RETLW '2'
	RETLW '2'
	RETLW '6'
	RETLW '3'
	RETLW '1'
	RETLW '7'
    RETLW '8'
    RETLW 00H			;数据结束标记
;------------------------------------------------------------------------------------------
MAIN
	BSF	STATUS,RP0		;选择体1
	MOVLW   	06H				;设置PORTA所有口线为数字口
	MOVWF 	ADCON1
	
	MOVLW	B'11110001'
	MOVWF	TRISA			;PORTA的RA2、RA3、RA5设置为输出,其余输入
	
	CLRF TRISD			;PORTD端口定义为输出 
		 
	BCF STATUS,RP0
	CALL DELAY           	;调用延时,刚上电LCD复位不一定有PIC快
	MOVLW 01H
	MOVWF PORTD          	;清屏
	CALL ENABLE
	MOVLW 38H
	MOVWF PORTD          	;8位2行5x7点阵
	CALL ENABLE
	MOVLW 0FH            	;显示器开、光标开、闪烁开
	MOVWF PORTD
	CALL ENABLE
	MOVLW 06H           	;文字不动,光标自动右移
	MOVWF PORTD             
	CALL ENABLE
	MOVLW 80H
	MOVWF PORTD          	;显示位置
	CALL ENABLE
	CALL WRITE1          	;调用送第一行数子程序“WWW.AJDZ.NET"
	MOVLW 0C0H
	MOVWF PORTD          	;第一行的位置       
	CALL ENABLE
	CALL WRITE2          	;调用送第二行数子程序“TEL0575 2263178"
	MOVLW 0C2H 
	MOVWF PORTD          	;第二行的位置
	CALL ENABLE
	GOTO $
;------------------------------------------------------------------------------------------
WRITE1
	CLRF COUNT          	;送第一行数字程序
LOOP1
	MOVFW COUNT
	CALL TABLE
	MOVWF TEMP
	CALL DATA2LCD
	INCF COUNT,F
	MOVFW TEMP
	XORLW 00H			;只影响标记位
	BTFSS STATUS,Z		;判断第1行数据是否读完,未读完则继续读
	GOTO LOOP1
	RETLW 0
;------------------------------------------------------------------------------------------
WRITE2                 	;送第二行数子程序
	CLRF COUNT
LOOP2
	MOVFW COUNT
	CALL TABLE1
	MOVWF TEMP
	CALL DATA2LCD
	INCF COUNT,1
	MOVFW TEMP
	XORLW 00H
	BTFSS STATUS,Z
	GOTO LOOP2
	RETLW 0
;------------------------------------------------------------------------------------------
DATA2LCD                 	;送数据到LCD子程序
	MOVWF PORTD
	BSF PORTA,RS
	BCF PORTA,RW
	BCF PORTA,E
	CALL DELAY
	BSF PORTA,E
	RETLW 0
;------------------------------------------------------------------------------------------
ENABLE
	BCF PORTA,RS         	;写入控制命令的子程序
	BCF PORTA,RW
	BCF PORTA,E
	CALL DELAY
	BSF PORTA,E
	RETLW 0
;------------------------------------------------------------------------------------------
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
;------------------------------------------------------------------------------------------




⌨️ 快捷键说明

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