⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hd66421.c

📁 单片机接口技术实用子程序配套源代码
💻 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 + -