?? 6800.c.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 + -