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

📄 s6b0724.c

📁 用C语言写的液晶S6B0724的驱动程序
💻 C
📖 第 1 页 / 共 2 页
字号:
typedef unsigned char uchar;
typedef unsigned int uint;
uchar code bmp[];
uchar code hz1[]={/*-- 文字: 液 --*/
0x10,0x61,0x06,0xE0,0x18,0x84,0xE4,0x1C,0x84,0x65,0xBE,0x24,0xA4,0x64,0x04,0x00,
0x04,0x04,0xFF,0x00,0x01,0x00,0xFF,0x41,0x21,0x12,0x0C,0x1B,0x61,0xC0,0x40,0x00
};
uchar code hz2[]={/*-- 文字: 晶 --*/
0x00,0x00,0x00,0x00,0x7E,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x7E,0x00,0x00,0x00,0x00,
0x00,0x7F,0x25,0x25,0x25,0x25,0x7F,0x00,0x00,0x7F,0x25,0x25,0x25,0x25,0x7F,0x00
};
uchar code hz3[]={/*-- 文字: 在 --*/
0x00,0x04,0x04,0xC4,0x64,0x9C,0x87,0x84,0x84,0xE4,0x84,0x84,0x84,0x84,0x04,0x00,
0x04,0x02,0x01,0x7F,0x00,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x00
};
uchar code hz4[]={/*-- 文字: 线 --*/
0x40,0x60,0x58,0xC7,0x62,0x00,0x90,0x90,0x90,0xFF,0x90,0x92,0x9C,0x94,0x80,0x00,
0x20,0x22,0x23,0x12,0x12,0x12,0x20,0x20,0x10,0x13,0x0C,0x14,0x22,0x40,0xF8,0x00
};
uchar code hz5[]={/*-- 文字: 图 --*/
0x00,0xFE,0x42,0x42,0x22,0x1E,0xAA,0x4A,0xAA,0x9A,0x0A,0x02,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x42,0x42,0x41,0x41,0x48,0x72,0x54,0x40,0x41,0x43,0x41,0xFF,0x00,0x00
};
uchar code hz6[]={/*-- 文字: 形 --*/
0x40,0x42,0x42,0xFE,0x42,0x42,0xFE,0x42,0x42,0x40,0x10,0x88,0xE4,0x47,0x02,0x00,
0x80,0x40,0x30,0x0F,0x00,0x00,0x7F,0x00,0x84,0x42,0x21,0x10,0x08,0x0E,0x04,0x00
};
uchar code hz7[]={/*-- 文字: 显 --*/
0x00,0x00,0x00,0x3E,0x2A,0xEA,0x2A,0x2A,0x2A,0xEA,0x2A,0x3E,0x00,0x00,0x00,0x00,
0x20,0x21,0x22,0x2C,0x20,0x3F,0x20,0x20,0x20,0x3F,0x28,0x24,0x23,0x20,0x20,0x00
};
uchar code hz8[]={/*-- 文字: 示 --*/
0x00,0x20,0x20,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x00,
0x10,0x08,0x04,0x03,0x00,0x40,0x80,0x7F,0x00,0x00,0x01,0x02,0x0C,0x18,0x00,0x00
};
uchar code hz9[]={/*-- 文字: 模 --*/
0x10,0xD0,0xFF,0x50,0x90,0x04,0xF4,0x54,0x5F,0x54,0x54,0x5F,0xF4,0x04,0x00,0x00,
0x03,0x00,0xFF,0x00,0x00,0x84,0x85,0x45,0x35,0x0F,0x15,0x25,0x65,0xC4,0x44,0x00
};
uchar code hz10[]={/*-- 文字: 块 --*/
0x10,0x10,0xFF,0x10,0x10,0x00,0x08,0x08,0xFF,0x08,0x08,0x08,0xF8,0x00,0x00,0x00,
0x08,0x18,0x0F,0x04,0x85,0x41,0x31,0x0D,0x03,0x05,0x09,0x11,0x31,0x61,0x21,0x00
};
unsigned char code hz11[]=
{
/*------------------------------------------------------------------------------
;  若数据乱码,请检查字模格式设置,注意选择正确的取模方向和字节位顺序。
;  源文件 / 文字 : 液
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,纵向取模,字节正序/32字节
;  数据转换日期  : 2008-8-27 5:29:54
------------------------------------------------------------------------------*/
0x10,0x61,0x06,0xE0,0x18,0x84,0xE4,0x1C,0x84,0x65,0xBE,0x24,0xA4,0x64,0x04,0x00,
0x04,0x04,0xFF,0x00,0x01,0x00,0xFF,0x41,0x21,0x12,0x0C,0x1B,0x61,0xC0,0x40,0x00,
};

unsigned char code percent[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : %
;  宽×高(像素): 16×16
------------------------------------------------------------------------------*/
0x00,0x3C,0x7E,0x42,0x7E,0x3C,0x80,0x60,0x18,0xC4,0xE2,0x20,0xE0,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x03,0x07,0x04,0x07,0x03,0x00,0x00,
};

unsigned char code dig001[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 1
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0x00,0x02,0x02,0xFF,0xFF,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,
};
/* 2 */
unsigned char code dig002[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 2
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0x04,0x02,0x01,0x81,0xC3,0x3F,0x1E,0x00,0x08,0x0C,0x0E,0x0D,0x0C,0x0C,0x0C,0x06,
};
/* 3 */
unsigned char code dig003[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 3
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0x06,0x02,0x01,0x21,0x33,0x7F,0xEE,0xC0,0x0C,0x0C,0x08,0x08,0x08,0x04,0x07,0x03,
};
/* 4 */
unsigned char code dig004[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 4
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0x80,0x40,0x30,0x08,0x04,0xFF,0xFF,0x00,0x01,0x01,0x01,0x01,0x01,0x0F,0x0F,0x01,
};
/* 5 */
unsigned char code dig005[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 5
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0x00,0x10,0x1E,0x1B,0x33,0x73,0xE3,0x00,0x0C,0x0C,0x08,0x08,0x08,0x04,0x03,0x00,
};
/* 6 */
unsigned char code dig006[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 6
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0xE0,0xF8,0x2C,0x16,0x12,0x33,0xE1,0xC1,0x03,0x07,0x0C,0x08,0x08,0x0C,0x07,0x03,
};
/* 7 */
unsigned char code dig007[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 7
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0x04,0x03,0x03,0x03,0xC3,0x3B,0x07,0x01,0x00,0x00,0x08,0x07,0x00,0x00,0x00,0x00,
};
/* 8 */
unsigned char code dig008[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 8
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0x8E,0xDF,0x71,0x21,0x71,0xCF,0x86,0x00,0x07,0x0F,0x0C,0x08,0x08,0x07,0x07,0x00,
};
/* 9 */
unsigned char code dig009[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 9
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0x3C,0x7E,0xC3,0x81,0x81,0x83,0xFE,0x7C,0x08,0x08,0x08,0x04,0x06,0x03,0x01,0x00,
};
/* 0 */
unsigned char code dig010[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : 0
;  宽×高(像素): 8×12
------------------------------------------------------------------------------*/
0xF8,0xFE,0x03,0x01,0x01,0x03,0xFE,0xF8,0x01,0x07,0x0C,0x08,0x08,0x0C,0x07,0x01,
};
#define Col_Add     0x40
#define Page_Add    0xb8

#include <c8051f000.h>                 // SFR declarations
#include <intrins.h>
//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F02x
//-----------------------------------------------------------------------------

sfr16 TMR3RL   = 0x92;                 // Timer3 reload
sfr16 TMR3     = 0x94;                 // Timer3
sfr16 DAC0     = 0xd2;                 // DAC0 data
sfr16 DAC1     = 0xd5;                 // DAC1 data

//-----------------------------------------------------------------------------
// Global Constants
//-----------------------------------------------------------------------------


#define USE_EXT_OSC     0              // 0 = use internal oscillator
                                       // 1 = use external oscillator


#if(USE_EXT_OSC == 0)
 #define SYSCLK          16000000      // Internal oscillator frequency in Hz
#endif

#if(USE_EXT_OSC == 1)
 #define SYSCLK          22118400      // External oscillator frequency in Hz
#endif

#define SAMPLE_RATE_DAC 100000L        // DAC sampling rate in Hz
#define PHASE_PRECISION 65536          // range of phase accumulator
//-----------------------------------------------------------------------------
// Function Prototypes
//-----------------------------------------------------------------------------

void OSCILLATOR_Init(void);

void OSCILLATOR_Init (void)
{

#if(USE_EXT_OSC == 0)

   OSCICN = 0x07;                      // Set internal oscillator to 16 Mhz

#endif

#if (USE_EXT_OSC == 1)

   int i;                              // Delay counter

   OSCXCN = 0x67;                      // Start external oscillator with
                                       // 22.1184 MHz crystal

   for (i = 0; i < 256; i++);          // XTLVLD blanking interval (>1ms)

   while (!(OSCXCN & 0x80));           // Wait for crystal osc. to settle

   OSCICN = 0x88;                      // Select external oscillator as SYSCLK
                                       // source and enable missing clock
                                       // detector
#endif

}

void Port_IO_Init()
{
    // P0.0  -  Unassigned,  Push-Pull   
    // P0.1  -  Unassigned,  Push-Pull   
    // P0.2  -  Unassigned,  Push-Pull   
    // P0.3  -  Unassigned,  Push-Pull   
    // P0.4  -  Unassigned,  Push-Pull   
    // P0.5  -  Unassigned,  Push-Pull   
    // P0.6  -  Unassigned,  Push-Pull   
    // P0.7  -  Unassigned,  Push-Pull   

    // P1.0  -  Unassigned,  Push-Pull   
    // P1.1  -  Unassigned,  Push-Pull   
    // P1.2  -  Unassigned,  Push-Pull   
    // P1.3  -  Unassigned,  Push-Pull   
    // P1.4  -  Unassigned,  Push-Pull   
    // P1.5  -  Unassigned,  Push-Pull   
    // P1.6  -  Unassigned,  Push-Pull   
    // P1.7  -  Unassigned,  Push-Pull   

    // P2.0  -  Unassigned,  Open-Drain  
    // P2.1  -  Unassigned,  Open-Drain  
    // P2.2  -  Unassigned,  Open-Drain  
    // P2.3  -  Unassigned,  Open-Drain  
    // P2.4  -  Unassigned,  Open-Drain  
    // P2.5  -  Unassigned,  Open-Drain  
    // P2.6  -  Unassigned,  Open-Drain  
    // P2.7  -  Unassigned,  Open-Drain  

    //PRT0CF    = 0xFF;
    PRT1CF    = 0xFF;
    XBR2      = 0xC0;
}


sbit LCD_RS   =P1^1;		//L:COMMAND;   H:DATA
sbit LCD_RW   =P1^0;		//WRITE SIGNAL,L有效
sbit LCD_E   =P1^3;		//READ SIGNAL, L有效
sbit LCD_CS1  =P1^2;		//L有效
sbit LCD_RST  =P1^4;		//L有效 

#define data_bus     P0
//#define control_bus  P3
#define uchar        unsigned char
#define uint         unsigned int


//=====延时N微秒==============
void delay_nus(uint n)
{
  //n=n*20;
  while(n--);
  return;
}
//=====延时N毫秒==============
void delay(uint n)
{
  int i;
  for(i=0;i<n;i++)
    delay_nus(123);
}
//=====忙检测=================
void check_busy(void)
{
  uchar read_data=0xff,count=0;
  data_bus=0xff;
  LCD_RS=0;
  delay_nus(1);
  LCD_RW=1;               //读命令
  delay_nus(1);
  LCD_CS1=0;              //片使能
  delay_nus(1);
  while(((read_data&0x80)==0x80)&&count<90)
  {
    LCD_E=1;
	delay_nus(1);
    _nop_();
    _nop_();
    read_data=data_bus;	
	delay_nus(1);
    LCD_E=0;
	delay_nus(1);
	count++;
  }
  LCD_E=0;
  delay_nus(1); 
  LCD_CS1=1;
  delay_nus(1);              //片禁能 
}
//=====写命令到寄存器=========
void send_cmd(uchar cmd) small
{
  check_busy();
  delay_nus(1);
  LCD_RS=0;
  delay_nus(1);
  LCD_RW=0;               //写命令
  delay_nus(1);
  LCD_CS1=0;              //片使能
  delay_nus(1);
  data_bus=cmd;

⌨️ 快捷键说明

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