?? lcd-char.c
字號:
0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00,
/*-- 文字: + --49*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: - --50*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00
};
const unsigned char hanzi[]=
{
/*-- 文字: 寧 --*/
/*-- Trebuchet MS12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x90,0x8C,0x84,0x84,0x84,0x85,0x86,0x84,0x84,0x84,0x84,0x94,0x8E,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 波 --*/
/*-- Trebuchet MS12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x10,0x60,0x01,0xE6,0x00,0xF8,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x18,0x08,0x00,
0x04,0x04,0xFF,0x40,0x30,0x8F,0x80,0x41,0x26,0x18,0x18,0x26,0x61,0xC0,0x40,0x00,
/*-- 文字: 單 --*/
/*-- Trebuchet MS12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0xF8,0x28,0x29,0x2E,0x2A,0xF8,0x28,0x2C,0x2B,0x2A,0xF8,0x00,0x00,0x00,
0x08,0x08,0x0B,0x09,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x09,0x0B,0x08,0x08,0x00,
/*-- 文字: 片 --*/
/*-- Trebuchet MS12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x18,0x10,0x00,
0x80,0x40,0x30,0x0F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,
/*-- 文字: 機 --*/
/*-- Trebuchet MS12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x08,0xC8,0xFF,0x48,0x88,0x08,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
0x04,0x03,0x00,0xFF,0x00,0x41,0x30,0x0C,0x03,0x00,0x00,0x00,0x3F,0x40,0x78,0x00,
/*-- 文字: 開 --*/
/*-- Trebuchet MS12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x40,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 發 --*/
/*-- Trebuchet MS12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x10,0x3E,0x10,0x10,0xF0,0x9F,0x90,0x90,0x92,0x94,0x1C,0x10,0x10,0x10,0x00,
0x40,0x20,0x10,0x88,0x87,0x41,0x46,0x28,0x10,0x28,0x27,0x40,0xC0,0x40,0x00,0x00,
/*-- 文字: 網 --*/
/*-- Trebuchet MS12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0xFE,0x02,0x12,0x22,0xC2,0x22,0x1A,0x22,0x42,0x82,0x72,0x22,0xFE,0x00,0x00,
0x00,0x7F,0x08,0x04,0x03,0x00,0x03,0x0C,0x04,0x02,0x01,0x26,0x60,0x3F,0x00,0x00,
};
void delay_1ms(void)//1ms延時函數
{
unsigned int i;
for (i=0;i<500;i++)
asm("CLRWDT");
}
void init(void)
{
asm("CLRWDT");
ADCON1=0X06;
OPTION=0x81;
TRISA=0B00000000;
TRISB=0B00111000;
TRISC=0B00000000;
TRISD=0B00000000;
TRISE=0B00000000;
PORTA=0;
PORTB=0x04;
PORTC=0;
PORTD=0;
PORTE=0;
RBIE=0;
}
/*--------------------------------------------
LCD_write_byte: 使用SPI接口寫數據到LCD
輸入參數:dt:寫入的數據;
command :寫數據/命令選擇;
編寫日期:20080918
----------------------------------------------*/
void LCD_write_byte(unsigned char dt, unsigned char command)
{
unsigned char i;
sce=0;
dc=command;
for(i=0;i<8;i++)
{
if(dt&0x80)
sdin=1;
else
sdin=0;
dt=dt<<1;
sclk=0;
sclk=1;
}
dc=1;
sce=1;
sdin=1;
}
/*---------------------------------------
LCD_init: 3310LCD初始化
編寫日期:20080918
----------------------------------------- */
void LCD_init(void)
{
sce=1;
res=1;
delay_1ms();
res=0;
delay_1ms();
res=1;
LCD_write_byte(0x21,0);//初始化Lcd,功能設定使用擴充指令
LCD_write_byte(0xd9,0);//設定液晶偏置電壓(高--低)
LCD_write_byte(0x20,0);//使用基本指令
LCD_write_byte(0x0C,0);//設定顯示模式,正常顯示
}
/*-------------------------------------------
LCD_set_XY: 設置LCD坐標函數
輸入參數:X:0-83 Y:0-5
編寫日期:20080918
---------------------------------------------*/
void LCD_set_XY(unsigned char X, unsigned char Y)
{
LCD_write_byte(0x40 | Y, 0);// column
LCD_write_byte(0x80 | X, 0);// row
}
/*------------------------------------------
LCD_clear: LCD清屏函數
編寫日期:20080918
--------------------------------------------*/
void LCD_clear(void)
{
unsigned char t;
unsigned char k;
LCD_set_XY(0,0);
for(t=0;t<6;t++)
{
for(k=0;k<84;k++)
{
LCD_write_byte(0x00,1);
asm("CLRWDT");
}
}
}
/*---------------------------------------------
LCD_write_shu: 顯示8(寬)*16(高)點陣列數字字母符號等半角類
輸入參數:c:顯示的字符;
編寫日期:20080918
-----------------------------------------------*/
void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列 page:頁 dd:字符
{
unsigned char i;
asm("CLRWDT");
LCD_set_XY(row*8, page);// 列,頁
for(i=0; i<8;i++)
{
LCD_write_byte(shuzi[c*16+i],1);
}
asm("CLRWDT");
LCD_set_XY(row*8, page+1);// 列,頁
for(i=8; i<16;i++)
{
LCD_write_byte(shuzi[c*16+i],1);
}
}
/*---------------------------------------------
LCD_write_hanzi: 顯示16(寬)*16(高)點陣列漢字等半角類
輸入參數:c:顯示的字符;
編寫日期:20080918
-----------------------------------------------*/
void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:頁 dd:字符
{
unsigned char i;
asm("CLRWDT");
LCD_set_XY(row*8, page);// 列,頁
for(i=0; i<16;i++)
{
LCD_write_byte(hanzi[c*32+i],1);
}
asm("CLRWDT");
LCD_set_XY(row*8, page+1);// 列,頁
for(i=16; i<32;i++)
{
LCD_write_byte(hanzi[c*32+i],1);
}
}
main()
{
init();
LCD_init(); //初始化LCD模塊
LCD_clear(); //清屏幕
LCD_write_hanzi(0,0,0); //寧
LCD_write_hanzi(2,0,1); //波
LCD_write_hanzi(4,0,2); //單
LCD_write_hanzi(6,0,3); //片
LCD_write_hanzi(8,0,4); //機
LCD_write_hanzi(1,2,5); //開
LCD_write_hanzi(4,2,6); //發
LCD_write_hanzi(7,2,7); //網
LCD_write_shu(1,4,23); //n
LCD_write_shu(2,4,11); //b
LCD_write_shu(3,4,13); //d
LCD_write_shu(4,4,25); //p
LCD_write_shu(5,4,19); //j
LCD_write_shu(6,4,45); //.
LCD_write_shu(7,4,12); //c
LCD_write_shu(8,4,24); //o
LCD_write_shu(9,4,22); //m
while(1)
{
asm("CLRWDT");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -