LCD显示实验报告
- 格式:docx
- 大小:18.53 KB
- 文档页数:6
LCD显示实验报告
一.实验目的
学会用LCD显示字符和数字,显示学号和姓名。
二.实验内容:
所需要的源程序:
;* 占用I/O RB1-RB5,RA5
;* 使用RAM 2个字节
;* 程序包括:
;* - InitLCD 初始化液晶面板函数
;* - putcLCD 将字符写入LCD的函数
;* - SendCmd 将命令写入LCD的函数
;* - clrLCD 清LCD显示函数
;* 入口参数WREG
;* 出口参数无
;*LCD显示RAM地址:第一行0x80~8F;第二行0xC0~CF
;************************************************
#include p16f877a.inc ;定义所用单片机的头文件
COUNT EQU 0X20
Count EQU 0X20;
COUNT1 EQU 0X21
Count1 EQU 0x21;
COUNT2 EQU 0X22
Count2 EQU 0x22;
LCD_TEMP EQU 0X23
Byte EQU 0X24
BYTE EQU 0X24
LCD_DATA1 EQU 0X25
BYTESH EQU 0X26
;* 定义LCD数据& 控制I/O口;可以用任意的6个普通的I/O管脚定义;实际连线依据该部分定义
;********************************************************************** *********
#define LCD_DB7 PORTB,5 ;占用的I/O口定义
#define LCD_DB6 PORTB,4 ;该行硬件连接:LCD的DB6与RB4连接,其它类推
#define LCD_DB5 PORTB,3 ;
#define LCD_DB4 PORTB,2 ;
#define LCD_E PORTA,5 ;
#define LCD_RS PORTB,1 ;
#define LCD_DB7_DIR TRISB,5 ;对应的方向寄存器定义
#define LCD_DB6_DIR TRISB,4 ;
#define LCD_DB5_DIR TRISB,3 ;
#define LCD_DB4_DIR TRISB,2 ;
#define LCD_E_DIR TRISA,5 ;
#define LCD_RS_DIR TRISB,1 ;
;********************************************************************** ********
; LCD 模块命令
#define DISP_ON 0x00C ; 开显示
#define DISP_ON_C 0x00E ; 开显示, 开指针
#define DISP_ON_B 0x00F ; 开显示, 开指针,开闪烁
#define DISP_OFF 0x008 ; 关显示
#define CLR_DISP 0x001 ; 清显示的操作数
#define ENTRY_INC 0x006 ; 操作数
#define ENTRY_INC_S 0x007 ; 操作数
#define ENTRY_DEC 0x004 ; 操作数
#define ENTRY_DEC_S 0x005 ; 操作数
#define DD_RAM_ADDR 0x080 ; 初始化第一行显示的操作数
#define DD_RAM_UL 0x0c0 ; 初始化第二行显示的操作数
ORG 0X0;
NOP;
NOP;
NOP;
clrf INTCON
call InitLCD
call clrLCD
movlw DD_RAM_ADDR ;设置起始地址
call SendCmd
MOVLW ' ';
CALL PUTCLCD;
MOVLW 'L';
CALL PUTCLCD;
MOVLW 'i';
CALL PUTCLCD;
MOVLW 'a';
CALL PUTCLCD;
MOVLW 'n';
CALL PUTCLCD;
MOVLW 's ';
CALL PUTCLCD;
MOVLW 'o';
CALL PUTCLCD;
MOVLW ‘n';
CALL PUTCLCD;
MOVLW 'g';
CALL PUTCLCD;
MOVLW ' ';
CALL PUTCLCD;
MOVLW ' ';
CALL PUTCLCD;
movlw DD_RAM_UL ;设置起始地址
call SendCmd
MOVLW ' ';
CALL PUTCLCD;
MOVLW ' ';
CALL PUTCLCD;
MOVLW '2';
CALL PUTCLCD;
MOVLW '0';
CALL PUTCLCD;
MOVLW '0';
CALL PUTCLCD;
MOVLW '7';
CALL PUTCLCD;
MOVLW '2';
CALL PUTCLCD;
MOVLW '1';
CALL PUTCLCD;
MOVLW '2';
CALL PUTCLCD;
MOVLW '1';
CALL PUTCLCD;
MOVLW '0';
CALL PUTCLCD;
MOVLW ‘1';
CALL PUTCLCD;
MOVLW '6';
CALL PUTCLCD;
GOTO $;
;InitLCD 初始化LCD模块
InitLCD
bsf STATUS,RP0 ;Bank 1
bcf STATUS,RP1 ;初始化相关I/O引脚MOVLW B'11000001';
ANDWF TRISB,F;
bcf LCD_E_DIR
MOVLW 0X07
MOVWF 0X1C;CMCON=7
bcf STATUS,RP0 ;Bank 0
MOVLW B'11000001';
ANDWF TRISB,F;
bcf LCD_E