📄 hd66421.c
字号:
//-----------------------函数声明--------------------------------------------------------
#include"stdio.h"
#include"absacc.h"
#include"reg51.h"
//-----------------------LCD接口管脚声明--------------------------------------------------------
sbit LCD_RS=P3^0; //寄存器选择信号
sbit LCD_RD=P3^1; //读选择信号
sbit LCD_WR=P3^2; //写选择信号
sbit LCD_CS=P3^3; //片选信号
#define DATA_IO P1
//-----------------------定义各命令字--------------------------------------------------------
#define LCD_R0TURNOFF 0x18 //设置控制寄存器1(R0)的状态
//00011000B左边第二位为0表示关闭显示
#define LCD_R0TURNON 0x58 //设置控制寄存器1(R0)的状态
//01011000B左边第二位为1表示开启显示
#define LCD_R1CON2 0x11 //设置控制寄存器2(R1)的状态
//00010001B选择1/11偏置电压,8BIT宽度,4级固定灰度
// 100行显示,y地址自动增1,启动闪烁功能 、、
#define LCD_R16dbd 0x2F //设置控制寄存器16,选择刷新率和对比度
//00111111B 选择刷新率为7,对比比度15/31
unsigned char PAGE; //当前显示页码标志
//--------------------------------------------------------------------------------------------------
// 函数名称: LCD_WRITE_index
// 入口参数: index 索引号
// 函数功能: 些索引寄存器
//--------------------------------------------------------------------------------------------------
void LCD_WRITE_index(unsigned char index)
{
LCD_RD=1;
LCD_CS=0;
LCD_RS=0;
LCD_WR=0;
DATA_IO=index;//写索引代码
LCD_WR=1;
LCD_RS=1;
}
//--------------------------------------------------------------------------------------------------
// 函数名称: LCD_WRITE_DATA
// 入口参数: ndata 数据寄存器状态值
// 函数功能: 将ndata写入数据寄存器
//--------------------------------------------------------------------------------------------------
void LCD_WRITE_data(unsigned char ndata)
{
LCD_RD=1;
LCD_CS=0;
LCD_RS=1;
LCD_WR=0;
DATA_IO=ndata;//写设置值
LCD_WR=1;
}
//--------------------------------------------------------------------------------------------------
// 函数名称: READ_data
// 返回值: ndata 数据寄存器状态值
// 函数功能: 读数据寄存器的设置值
//--------------------------------------------------------------------------------------------------
unsigned char READ_data(void)
{
unsigned char ndata;
LCD_CS=0;
LCD_WR=1;
LCD_RS=1;
LCD_RD=0;
ndata=DATA_IO;//读数据寄存器的设置值
LCD_RD=1;
return(ndata);
}
//--------------------------------------------------------------------------------------------------
// 函数名称: LCD_init
// 函数功能: 初始化设置
//--------------------------------------------------------------------------------------------------
void LCD_init(void)
{
LCD_WRITE_index(0);
LCD_WRITE_data(LCD_R0TURNOFF); //写控制寄存器1,关闭显示
LCD_WRITE_index(1);
LCD_WRITE_data(LCD_R1CON2); //写控制寄存器2,选择1/11偏置电压,8BIT宽度,4级固定灰度
// 100行显示,y地址自动增1,启动闪烁功能
LCD_WRITE_index(5);
LCD_WRITE_data(0); //写R5寄存器,选择显示起始行
LCD_WRITE_index(0x10);
LCD_WRITE_data(LCD_R16dbd); //设置控制寄存器16,选择刷新率和对比度
//00111111B 选择刷新率为7,对比比度15/31
PAGE=0; //当前页标志
}
//--------------------------------------------------------------------------------------------------
// 函数名称: WRITE_BYTE2ram
// 入口参数: show_data要显示数据
// 函数功能: 往显示RAM中写入1BYTE数据
//--------------------------------------------------------------------------------------------------
void WRITE_BYTE2ram(unsigned char show_data)
{
LCD_WRITE_index(4);
LCD_WRITE_data(show_data); //往显示RAM中写入1BYTE数据
}
//--------------------------------------------------------------------------------------------------
// 函数名称: setting_x
// 入口参数: x
// 函数功能: 写x地址寄存器,设置x坐标
//--------------------------------------------------------------------------------------------------
void setting_x(unsigned char x)
{
LCD_WRITE_index(2);
LCD_WRITE_data(x);
}
//--------------------------------------------------------------------------------------------------
// 函数名称: setting_y
// 入口参数: y
// 函数功能: 写y地址寄存器,设置y坐标
//--------------------------------------------------------------------------------------------------
void setting_y(unsigned char y)
{
LCD_WRITE_index(3);
LCD_WRITE_data(y);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -