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

📄 6800.c.bak

📁 液晶控制器S6B0724的控制。mplab 7.60+pic ccs 4.057
💻 BAK
字号:
#include "cpu.h"
//==============三星S6B0724驱动程序===================
// 
// 使用  6800 并行接口时序 
#define  LCD_EN      PIN_B4     //LCD_EN IS LCD_CLK
#define  LCD_RW      PIN_B3     // RW=0写    RW=1读  
#define  LCD_RS      PIN_B2    //  RS=1数据  RS=0命令 
#define  LCD_RST     PIN_B1    //  LCD RESET
#define  LCD_CS      RIN_B5    // Chip Select
//#define  LCD_DAT_BUS PO  // 8bit并行数据总线
#define  R_Lcd_Delay 0X02    //lcd_en  电平保持时间,根据系统频率调整
#define  R_Lcd_Rst   0X2000  //lcd reset 保持时间
//================下面是BUFFER,可以改到RAM里========================
const int8 lcd_buf[]=
{//  128*64
0xFF,0x01,0x01,0x01,0x21,0x61,0x41,0xC1,0xA1,0xE1,0xB1,0xB1,0xE1,0xA1,0xA1,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0xF1,0xF1,0xD1,0xD1,0xD1,0xD1,0xF1,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0xE1,0xF1,0x61,0x61,0x61,0x61,0x61,0x61,0xF1,0x61,0x01,
0x01,0x01,0x01,0x81,0x81,0x81,0xB1,0x91,0x91,0x91,0x91,0x91,0x91,0xA1,0x81,0x81,
0x81,0x81,0x01,0x01,0xA1,0x71,0x51,0x51,0x71,0xC1,0x01,0x71,0xD1,0x51,0x71,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x00,0x01,0x81,0x99,0x8A,0x86,0x81,0xBF,0x8A,0x8B,0x85,0x87,0x8B,0x98,0x98,
0x90,0x80,0x80,0x80,0xBE,0x9A,0x9B,0x9A,0xBE,0x80,0xBE,0xBE,0xAB,0xAA,0xAA,0xBE,
0x82,0x80,0x80,0xB0,0x90,0x96,0x95,0x91,0x9F,0x91,0x91,0x9F,0x91,0x95,0xB6,0xB0,
0x90,0x80,0x80,0x81,0x88,0x8C,0x86,0xA2,0xA0,0xBF,0x9F,0x80,0x86,0x84,0x89,0x91,
0x81,0x80,0x80,0x84,0x85,0x9D,0x97,0x97,0x9D,0x89,0x9D,0x9F,0x97,0x97,0xBF,0x84,
0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x02,0x22,0x62,0x42,0xE2,0x42,0xC2,0xA2,0xB2,0xA2,0xA2,0x22,0xE2,
0xC2,0x02,0x02,0x82,0x82,0x82,0xB2,0x92,0x92,0x92,0x92,0x92,0x92,0xA2,0x82,0x82,
0x82,0x82,0x02,0xC2,0xA2,0xA2,0xE2,0x92,0x92,0xF2,0xF2,0xA2,0xA2,0xA2,0xF2,0x02,
0x02,0x02,0x02,0x02,0x02,0x62,0xE2,0x22,0xA2,0xB2,0x72,0x62,0xA2,0xA2,0x22,0x22,
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x01,0x19,0x19,0x0E,0x25,0x27,0x1B,0x1B,0x07,0x0B,0x1B,0x1F,0x20,
0x00,0x00,0x00,0x01,0x08,0x0C,0x06,0x22,0x20,0x3F,0x1F,0x00,0x06,0x04,0x09,0x11,
0x01,0x00,0x00,0x06,0x02,0x1F,0x3F,0x01,0x12,0x15,0x15,0x1F,0x1F,0x15,0x15,0x10,
0x10,0x00,0x00,0x08,0x08,0x0F,0x01,0x02,0x12,0x22,0x23,0x1F,0x02,0x02,0x02,0x06,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x45,0xC5,0x45,0x05,0x05,0x05,0x05,0x05,0x05,0x85,0x45,0x45,0x45,
0x45,0xC5,0x05,0x45,0xC5,0x45,0x45,0x45,0x85,0x05,0x05,0x05,0x45,0x45,0xC5,0x45,
0x45,0x05,0x05,0x45,0xC5,0x85,0x05,0x05,0x45,0xC5,0x45,0x45,0xC5,0x45,0x05,0x05,
0x05,0x05,0x05,0x05,0x45,0x45,0xC5,0x45,0x45,0x05,0x05,0x45,0xC5,0x85,0x05,0x05,
0x45,0xC5,0x45,0x45,0xC0,0x40,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x81,
0xFF,0x81,0x80,0x80,0xC0,0x00,0x70,0x88,0x88,0x70,0x00,0x00,0x50,0xA8,0xA8,0xF0,
0x80,0x00,0x70,0x88,0x89,0xFF,0x80,0x00,0x88,0xF9,0x80,0x00,0x00,0x88,0xF8,0x88,
0x08,0xF0,0x80,0x00,0xD0,0xA8,0xA8,0x98,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x80,0x00,0x3E,0xC1,0x00,0x00,0x00,
0x80,0x41,0x00,0x00,0xFF,0x00,0x00,0x00,0x80,0x7F,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x00,0x00,0x00,0xFF,0x01,0x06,0x38,0xC0,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x01,0x06,0x38,
0xC0,0xFF,0x00,0x00,0xFF,0x04,0x04,0x1F,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,
0x00,0x00,0x08,0xF9,0x09,0x01,0x01,0x01,0x00,0x00,0x00,0x80,0x99,0x99,0x01,0x01,
0x01,0x00,0x80,0x81,0x01,0x01,0x00,0x80,0x80,0x01,0x00,0x81,0x81,0x81,0x81,0x81,
0x81,0x01,0x00,0x80,0x81,0x81,0x81,0x81,0x81,0x00,0x00,0x01,0x01,0x01,0x00,0x00,
0x00,0x01,0x00,0x71,0x09,0x09,0x09,0x89,0x71,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,
0xE0,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x30,0x08,0x88,0x88,0x48,
0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,
0xE0,0x00,0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0xA0,0xBF,0xA0,0xA0,0xA0,0xA0,0xB0,0x80,0x80,0xA0,0xA0,0xBF,0xA0,0xA0,
0x80,0x80,0x80,0x9F,0xA0,0xA0,0xA0,0x90,0xBF,0xA0,0x80,0xA1,0xB0,0xAC,0xA2,0xA1,
0xB0,0x80,0x80,0xA1,0xB0,0xAC,0xA2,0xA1,0xB0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0xB0,0xA8,0xA4,0xA2,0xA1,0xB0,0x80,0x80,0x8F,0x90,0xA0,0xA0,0x90,
0x8F,0x80,0x80,0x8F,0x90,0xA0,0xA0,0x90,0x8F,0x80,0x80,0x98,0xA0,0xA0,0xA0,0x91,
0x8E,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x8F,0x90,0xA0,0xA0,0x90,
0x8F,0x80,0x80,0x87,0x84,0xA4,0xA4,0xBF,0xA4,0x80,0x80,0x80,0x80,0x80,0x80,0xFF

};

//================写操作============================
//INPUT:  RS表示写的为数据还是命令,DATA是需要写的数据。
//OUTPUT: NONE
void lcd_write(int8 rs,int8 data)
{
   //LCD_CS=0;
	output_low(LCD_CS);
      if(rs==0)          
         output_low(LCD_RS);
      else
        output_high(LCD_RS);
        output_low(LCD_RW);           
         //LCD_DAT_BUS=data;  //write data
         output_c(data);
		output_high(LCD_EN);
       //  LCD_EN=1;   //CLK=1
         delay(R_Lcd_Delay);//delay         
       output_low(LCD_EN);    
        // delay(R_Lcd_Delay);//delay      
    	output_high(LCD_CS);
        // LCD_CS=1;
}  
//=====================lcd 初始化=======================
void lcd_init(void)
{ 
 //LCD_RST=0;     //硬件复位
output_low(LCD_RST);
 delay(R_Lcd_Rst);
// LCD_RST=1;
output_high(LCD_RST);
 delay(R_Lcd_Rst);
 
 lcd_write(0,0xe2);  //软件复位 
  delay(R_Lcd_Delay);
  
 lcd_write(0,0xa2);  //1/9 bias
  delay(R_Lcd_Delay);
  
 lcd_write(0,0xa0); //SEG扫描方向when adc=0,seg1----132
  delay(R_Lcd_Delay);
  
 lcd_write(0,0xc8); //COM扫描方向 
  delay(R_Lcd_Delay);
  
 lcd_write(0,0x2f); ;//打开全部的POWER,包括PUMP电路、分压电路、基准调节电路
  delay(R_Lcd_Delay);
  
 //lcd_write(0,0x27);  //在这里调节RA/RB的比例关系,使V0等于玻璃电压,在用外部电阻调节时,可以不设置
 //delay(R_Lcd_Delay);  
  
 lcd_write(0,0x81);  
 lcd_write(0,0x1F);  // 0X00 ~ 0X3F  此命令和0X81连用可以调节亮度
 delay(R_Lcd_Delay); 
 
 lcd_write(0,0x40);  // 显示地址归位
 delay(R_Lcd_Delay);
 
 lcd_write(0,0xe0);
 delay(R_Lcd_Delay);
 lcd_write(0,0xaf);  //开显示
}
//==================清显示内容================================
//NOTE:此函数不会影响单片机显示BUFFER的内容,仅仅对屏幕填充一个数。
//INPUT: DAT是要对每个显示单元写的数,0X00就是清屏,0XFF就是全显。
//OUTPUT:NONE
void lcd_clear(int8 dat)
{   
    int8 i,j;
    for(i = 0xb0;i<0xb8;i++)
    { 
        lcd_write(0,i); //写页地址
        lcd_write(0,0x0a); //写初始列地址
        lcd_write(0,0x00);
        for(j = 0x00;j<0x41;j++)//
        {   lcd_write(1,dat); //写显示数据
            lcd_write(1,dat);            
        }
    }
}
//===============更新显示======================================
//NOTE:此函数将显示BUFFER的内容刷新到屏幕上
//INPUT: NONE
//OUTPUT:NONE
void lcd_disp_update(void)
{int8 i,j;
int8 tmp=0;
    for(i = 0xb0;i<0xb8;i++)
    { 
        lcd_write(0,i); //写页地址
        lcd_write(0,0x0a); //写初始列地址
        lcd_write(0,0x00);
        for(j = 0x00;j<0x41;j++)//
        {   lcd_write(1,lcd_buf[tmp]); //写显示数据
            ++tmp;
            lcd_write(1,lcd_buf[tmp]); //写显示数据  
            ++tmp;         
        }
    }
}
void delay(unsigned int i)
{
 while(i)
 i--;
}

void main()
{
	set_tris_a(0xff);
	set_tris_b(0x01);
	set_tris_c(0x00);
	port_b_pullups(0xff);
}

⌨️ 快捷键说明

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