pic16f87a LCD显示网址所以请不要将文件放在这两个目录下

源代码在线查看: 2-4.asm

软件大小: 2 K
上传用户: myc
关键词: pic 16f f87 87a
下载地址: 免注册下载 普通下载 VIP

相关代码

				;------------------------------------------------------------------------------------------
				;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
				;------------------------------------------------------------------------------------------
				
				
				
				
							

相关资源