?? lcd160xb.h
字號:
//==============================================================================
//字符液晶模塊的C51程序頭文件
//File Name=lcd160xb.h
//本程序同時支持顯示一行或兩行的液晶以及數據端口采用8位或4位兩種引腳的接法!
//==============================================================================
#include "Public.h"
#ifndef _LCD160XB_H_
#define _LCD160XB_H_
#define TYPE_LCD1601B 0 //1行液晶(缺省)
#define TYPE_LCD1602B 1 //2行液晶
#define PORT_WIDTH_8BIT 8 //缺省P0端口8位數據線
#define PORT_WIDTH_4BIT 4 //液晶上數據端口僅僅使用引腳Data7...4(MSB..LSB)
#define PORT_WIDTH_4SPI 1 //4線SPI方式(P05-ChipSelect,P06-Sclk,P07-Sdata,P17-RS)
#define PORT_WIDTH_3SPI 2 //3線SPI方式(P05-ChipSelect,P06-Sclk,P07-Sdata)
//********************************************************
//根據實際使用的液晶來設置類型,以及后續的數據端口的位數(4/8位端口)
//注意: 液晶需要在硬件上進行PSB的響應調整!
//********************************************************
#define LCD_TYPE TYPE_LCD1602B
#define LCD_PORT PORT_WIDTH_8BIT
//#define LCD_PORT PORT_WIDTH_4BIT
//#define LCD_PORT PORT_WIDTH_4SPI //20061129(1-3)
//#define LCD_PORT PORT_WIDTH_3SPI //20061129(2-2)
//本模塊的引腳定義,已經根據實際情況更改!
sbit HD_LCD160XB_RS =P1^7; //=0,指令寄存器, =1,數據寄存器
sbit HD_LCD160XB_RW =P1^6; //=0,寫, =1,讀
sbit HD_LCD160XB_EN =P1^5; //下降沿有效,高電平讀寫數據
sbit HD_LCD160XB_LAMP=P3^7; //液晶的背光控制引腳
#define HD_DATA_PORT P0 //液晶數據端口
#if (LCD_PORT ==PORT_WIDTH_4BIT)
#define CONST_LCD_PORT_RIGHT_HALF 0 //4位數據線在端口的低半字節,PORT.3是最高位對應LCD.3(缺省)
#define CONST_LCD_PORT_LEFT_HALF 1 //4位數據線在端口的高半字節,PORT.7是最高位對應LCD.3
//需要根據實際的引腳接法進行設置!
#define CONST_POS_OF_LCD_PORT CONST_LCD_PORT_LEFT_HALF
#endif
#if ((LCD_PORT ==PORT_WIDTH_4SPI) ||(LCD_PORT ==PORT_WIDTH_3SPI))
sbit HD_LCD160XB_CS =P0^5; //=0 有效
sbit HD_LCD160XB_CLK =P0^6; //平時高電平
sbit HD_LCD160XB_DAT =P0^7; //高電平送數據,時鐘的下降沿鎖存數據
#define CODE_SET_LCD160XB_CS HD_LCD160XB_CS =1
#define CODE_CLR_LCD160XB_CS HD_LCD160XB_CS =0
#define CODE_SET_LCD160XB_CLK HD_LCD160XB_CLK =1
#define CODE_CLR_LCD160XB_CLK HD_LCD160XB_CLK =0
#define CODE_SET_LCD160XB_DAT HD_LCD160XB_DAT =1
#define CODE_CLR_LCD160XB_DAT HD_LCD160XB_DAT =0
#endif
//操作代碼宏的定義
#define CODE_SET_LCD160XB_RS HD_LCD160XB_RS =1
#define CODE_CLR_LCD160XB_RS HD_LCD160XB_RS =0
#define CODE_SET_LCD160XB_RW HD_LCD160XB_RW =1
#define CODE_CLR_LCD160XB_RW HD_LCD160XB_RW =0
#define CODE_SET_LCD160XB_EN HD_LCD160XB_EN =1
#define CODE_CLR_LCD160XB_EN HD_LCD160XB_EN =0
//這里需要根據實際的硬件邏輯設置
#define CODE_LCD160XB_LAMP_ON HD_LCD160XB_LAMP =0
#define CODE_LCD160XB_LAMP_OFF HD_LCD160XB_LAMP =1
//常數的定義
#define CONST_LCD160XB_COMMAND 0 //RS是命令寄存器
#define CONST_LCD160XB_DATA 1 //RS是數據寄存器
#define CMD_LCD160XB_CONFIG_8BIT_2LINE 0x38 //16*2顯示,5*7點陣,8位數據接口
#define CMD_LCD160XB_CONFIG_4BIT_2LINE 0x28 //16*2顯示,5*7點陣,4位數據接口
#define CMD_LCD160XB_CONFIG_8BIT_1LINE 0x30 //16*1顯示,5*7點陣,8位數據接口
#define CMD_LCD160XB_CONFIG_4BIT_1LINE 0x20 //16*1顯示,5*7點陣,4位數據接口
#define CMD_LCD160XB_DISPLAY_OFF 0x08 //顯示關閉
#define CMD_LCD160XB_CLR_SCREEN 0x01 //清屏
#define CMD_LCD160XB_CURSE_SETS 0x06 //光標移動設置:讀寫后地址加1,且光標加1
#define CMD_LCD160XB_DISPLAY_ON 0x0C //顯示打開,不顯示光標,光標不閃爍
#define CMD_LCD160XB_DISPLAY_ON_CURSOR_FLUSH 0x0F //顯示打開,顯示光標,光標閃爍
#define CONST_LCD160XB_FIRST_LINE 0x00 //第1行
#define CONST_LCD160XB_SECOND_LINE 0x01 //第2行
#define CONST_LCD160XB_LINE_WIDTH 0x10 //液晶的一行具有的字節數
//庫函數的定義說明
void lcd160xb_init_set(void);
void lcd160xb_clr_scr(void);
void lcd160xb_set_disp_addr(uchar pos, uchar line);
void lcd160xb_disp_str(uchar *str, uchar line);
//void lcd160xb_disp_char(uchar ch, uchar line, uchar pos);
void lcd160xb_init_set_with_cursor(void);
#endif
//End Of File
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -