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

📄 lcd.c

📁 philip RTC 芯片的驱动程序 8563
💻 C
📖 第 1 页 / 共 3 页
字号:
/****************************************************************/
/*                                                              */
/*     FILE:          Lcd.c                                     */
/*                                                              */
/*     AUTHOR:        machaoqun                                 */
/*                                                              */
/*     DATE CREATED: 2005.6.16                                  */
/*                                                              */
/*     DESCRIPTION:  LCD MODULE     							*/
/*                                                              */
/*                                                              */
/****************************************************************/
#include	<reg51.h>
#include 	<intrins.h>
#include	"Lcd.h"
#include	"globedef.h"
#include	"delay.h"

unsigned char lcd_18temp;
unsigned char lcd_28temp;
unsigned char lcd_38temp;
unsigned char lcd_48temp;
unsigned char lcd_58temp;
unsigned char lcd_68temp;

unsigned char lcd_maintemp;
unsigned char lcd_aux1temp;
unsigned char lcd_aux2temp;
unsigned char lcd_mutetemp;

unsigned char lcd_9bartemp;
unsigned char lcd_10bartemp;

code unsigned char  lcd_table1_18[10][2]	=
{
    
    /*第一位数码管,地址0,1*/

	/* 0 */
	{0x0f,0x0a},
	/* 1 */
	{0x00,0x0a},
	/* 2 */
	{0x0b,0x0c},
	/* 3 */
	{0x09,0x0e},
	/* 4 */
	{0x04,0x0e},
	/* 5 */
	{0x0d,0x06},
	/* 6 */
	{0x0f,0x06},
	/* 7 */
	{0x08,0x0a},
	/* 8 */
	{0x0f,0x0e},
	/* 9 */
    {0x0d,0x0e}
};

code unsigned char  lcd_table1_main[]	=
{
	/* MAIN ,地址1*/
	0x01,
};



code unsigned char  lcd_table1_28[10][2]	=
{
	/*第二位数码管,地址2,3*/
	/* 0 */
	{0x0f,0x0a},
	/* 1 */
	{0x00,0x0a},
	/* 2 */
	{0x0b,0x0c},
	/* 3 */
	{0x09,0x0e},
	/* 4 */
	{0x04,0x0e},
	/* 5 */
	{0x0d,0x06},
	/* 6 */
	{0x0f,0x06},
	/* 7 */
	{0x08,0x0a},
	/* 8 */
	{0x0f,0x0e},
	/* 9 */
    {0x0d,0x0e}	
};

code unsigned char  lcd_table1_aux1[10][2]	=
{
	/* AUX1 地址3*/
	0x01,
};

code unsigned char  lcd_table1_mohao[]	=
{
	/* : 地址4*/
	0x06,
};

code unsigned char  lcd_table1_38[10][2] =
{
	/* 第三位数码管地址5,6 */

	/* 0 */
	{0x0f,0x0a},
	/* 1 */
	{0x00,0x0a},
	/* 2 */
	{0x0b,0x0c},
	/* 3 */
	{0x09,0x0e},
	/* 4 */
	{0x04,0x0e},
	/* 5 */
	{0x0d,0x06},
	/* 6 */
	{0x0f,0x06},
	/* 7 */
	{0x08,0x0a},
	/* 8 */
	{0x0f,0x0e},
	/* 9 */
    {0x0d,0x0e}	
};

code unsigned char  lcd_table1_aux2[]	=
{
	/* AUX2 地址6*/
	0x01,
};

code unsigned char  lcd_table1_48[10][2]	=
{
	/* 第四位数码管地址7,8 */

	/* 0 */
	{0x0f,0x0a},
	/* 1 */
	{0x00,0x0a},
	/* 2 */
	{0x0b,0x0c},
	/* 3 */
	{0x09,0x0e},
	/* 4 */
	{0x04,0x0e},
	/* 5 */
	{0x0d,0x06},
	/* 6 */
	{0x0f,0x06},
	/* 7 */
	{0x08,0x0a},
	/* 8 */
	{0x0f,0x0e},
	/* 9 */
    {0x0d,0x0e}
};

code unsigned char  lcd_table1_mute[]	=
{
	/* MUTE 地址8 */
	0x01,
};

code unsigned char  lcd_table1_bar[] =
{
  	/* | 地址0x0a */
	0x01,
	/* || 地址0x09,0x0a */
	0x01,
	0x01,    
	/* ||| 地址0x09,0x0a */
	0x01,
	0x03,
	/* |||| 地址0x09,0x0a */
	0x03,
	0x03,
	/* ||||| 地址0x09,0x0a */
	0x03,
	0x07,
	/* |||||| 地址0x09,0x0a */
	0x07,
	0x07,
	/* ||||||| 地址0x09,0x0a */
	0x07,
	0x0f,
	/* |||||||| 地址0x09,0x0a */
	0x0f,
	0x0f,
	/* ||||||||| 地址0x09,0x0a,0x0c */
	0x0f,
	0x0f,
	0x08,
	/* |||||||||| 地址0x09,0x0a,0x0c,0x0e */
	0x0f,
	0x0f,
	0x08,
	0x08,
};

code unsigned char  lcd_table1_58[10][2]	=
{
	/* 第五位数码管地址0x0b,0x0c */

	/* 0 */
	{0x0d,0x07},
	/* 1 */
	{0x00,0x06},
	/* 2 */
	{0x0b,0x05},
	/* 3 */
	{0x0a,0x07},
	/* 4 */
	{0x06,0x06},	
	/* 5 */
	{0x0e,0x03},
	/* 6 */
	{0x0f,0x03},
	/* 7 */
	{0x08,0x06},
	/* 8 */
	{0x0f,0x07},
	/* 9 */
    {0x0e,0x07}	

};

code unsigned char  lcd_table1_68[10][2] =
{
	/* 第六位数码管地址0x0d,0x0e */

	/* 0 */
	{0x0d,0x07},
	/* 1 */
	{0x00,0x06},
	/* 2 */
	{0x0b,0x05},
	/* 3 */
	{0x0a,0x07},
	/* 4 */
	{0x06,0x06},
	/* 5 */
	{0x0e,0x03},
	/* 6 */
	{0x0f,0x03},
	/* 7 */
	{0x08,0x06},
	/* 8 */
	{0x0f,0x07},
	/* 9 */
    {0x0e,0x07}	

};

/**************************************/
/*                                    */
/*  Lcd写数据函数,写地址时调用		  */
/*                                    */
/**************************************/
void lcd_wr_addr(unsigned char i)
{
	lcd_cs		=	1;//切换到数据方式
    lcd_cs		=	0;

	/* 写命令码ID:101 */

	lcd_wr		=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	1;	// 1	
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr	=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	0;	// 0
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr	=0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	1;	// 1
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

    /* 写地址 */

	lcd_wr		=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x20)>>5);	// A5	
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr	=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x10)>>4);	// A4
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr	=0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x08)>>3);	// A3
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr		=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x04)>>2);	// A2	
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
		lcd_wr	=0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x02)>>1);	// A1
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr		=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x01)>>0);	// A0	
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
    

}
/**************************************/
/*                                    */
/*  Lcd写数据函数,写data时调用		  */
/*                                    */
/**************************************/

void lcd_wr_data(unsigned char i)
{
	
	lcd_wr		=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x01)>>0);	// D0	
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr	=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x02)>>1);	// D1
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr	=0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x04)>>2);	// D2
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr		=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	(bit)((i & 0x08)>>3);	// D3	
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	
	lcd_cs	=	1;

}

/**************************************/
/*                                    */
/*  选择内部RC振荡源256kHz为系统时钟  */
/*  ID:100 命令码:000110xxx           */
/*                                    */
/*                                    */
/**************************************/

void lcd_wr_rc256k(void)
{
	lcd_cs		=	0;//片选有效

	/* 写命令码ID:100 */
    /*
	lcd_wr		=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	1;	// 1	
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr	=	0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	0;	// 0
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_wr	=0;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	lcd_data	=	0;	// 0
	lcd_wr	=	1;
	_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
    */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -