LCD显示实验报告

  • 格式:docx
  • 大小:18.53 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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