?? lcd12864._c
字號:
#include<iom128.h>
#include<macros.h>
#include<stdio.h>
#define LCD_DAT PORTC
#define LCDENH PORTD=PORTD|(1<<6)
#define LCDENL PORTD=PORTD&(~(1<<6))
#define LCDDIH PORTD=PORTD|(1<<7)
#define LCDDIL PORTD=PORTD&(~(1<<7))
#define LCDCS1H PORTD=PORTD|(1<<5)
#define LCDCS1L PORTD=PORTD&(~(1<<5))
#define LCDCS2H PORTD=PORTD|(1<<4)
#define LCDCS2L PORTD=PORTD&(~(1<<4))
/**************************************
*函數名稱:LCD——WRITEDAT(dat)
*函數功能:向LCD寫入數據
*入口參數:dat
*出口參數:無
*************************************/
void LCD_WRITE_DAT(uchar dat)
{
LCDENL;
delayUS(2);
LCDDIH; //選擇為輸入數據
delayUS(2);
LCDENH;
delayUS(2);
PORTC=dat;
delayUS(2);
LCDENL;
}
/******************************************
*函數名稱:LCD_WRITE_COM(com)
*函數功能:向LCD寫入命令
*入口參數:com
*出口參數:無
***********************************************/
void LCD_WRITE_COM(uchar com)
{
LCDENL;
delayUS(2);
LCDDIL;
delayUS(2);
LCDENH;
delayUS(2);
PORTC=com;
delayUS(2);
LCDENL;
}
/*******************************************
*函數名稱:LCD_WRITE_ADD_CHAR(uchar x,y ,uchar *p)
*函數功能:在坐標xy處寫入西文字符
*入口參數:x,y 寫入字符的坐標, *p字符編碼表的首地址
*出口參數:無
**********************************************/
void LCD_WRITE_ADD_CHAR(uchar x, uchar y, uchar p)
{
uchar i;
x=0xb8+x*2;
y=0x40+y*8;
LCD_WRITE_COM(x); //x為行
LCD_WRITE_COM(y); // y為列
for(i=0;i<8;i++)
{
LCD_WRITE_DAT(table[p][i]); //西文字母的上半部分,由8行點構成(每行有8個點)
}
LCD_WRITE_COM(x+1);
LCD_WRITE_COM(y);
for(i=0;i<8;i++) //寫入西文字母的下半部分
{
LCD_WRITE_DAT(table[p][8+i]);
}
}
void LCD_WRITE_ADD_CHINESE(uchar x,uchar y,uchar p)
{
uchar i;
x=0xb8+x*2;
y=0x40+y*16;
LCD_WRITE_COM(x);
LCD_WRITE_COM(y);
for(i=0;i<16;i++)
{
LCD_WRITE_DAT(Tab_Chinesepoem[2*p][i]);
}
LCD_WRITE_COM(x+1);
LCD_WRITE_COM(y);
for(i=0;i<16;i++)
{
LCD_WRITE_DAT(Tab_Chinesepoem[2*p+1][i]);
}
}
/********************************************************
*函數名稱:LCD_WRITE_PICTURE()
*函數功能:在LCD液晶屏上顯示圖片‘南華大學電氣工程學院’
*函數引用了字模軟件生成的字模表Tab_pic2[][16]
*其取模方式為 :從第一列開始向下取8個點作為一個字節
,然后從第二列開始向下取8個點作為第二個字節...依此類推。
如果最后不足8個點就補滿8位。 取模順序是從低到高,即第
一個點作為最低位。如*-------取為00000001
***********************************************************/
/*void LCD_WRITE_PICTURE()
{
uchar i,j,k;
uint a;
LCDCS1H;
LCDCS2L;
LCD_WRITE_COM(0x3F);
LCD_WRITE_COM(0xC0);
for(k=0;k<8;k++)
{
LCD_WRITE_COM(0xB8+k); //起始行,每頁有八行
LCD_WRITE_COM(0x40); //起始列,列自動加一
for(i=0;i<4;i++)
for(j=0;j<16;j++)
{
LCD_WRITE_DAT(Tab_pic2[i+k*8][j]);
}
}
LCDCS1L;
LCDCS2H;
LCD_WRITE_COM(0x3F);
LCD_WRITE_COM(0xC0);
for(k=0;k<8;k++)
{
LCD_WRITE_COM(0xB8+k); //起始行,每頁有八行
LCD_WRITE_COM(0x40); //起始列,列自動加一
for(i=0;i<4;i++)
for(j=0;j<16;j++)
{
LCD_WRITE_DAT(Tab_pic2[i+4+k*8][j]);
}
}
}*/
/***************12864液晶清屏**********************/
void LCD_CLS()
{
uchar i,j;
LCDCS1H; //清左邊屏幕
LCDCS2L;
LCD_WRITE_COM(0x3F);
LCD_WRITE_COM(0xC0);
for(i=0;i<4;i++)
for(j=0;j<8;j++)
{
LCD_WRITE_ADD_CHAR(i,j,0x0C);
}
LCDCS1L; //清右邊屏幕
LCDCS2H;
LCD_WRITE_COM(0x3F);
LCD_WRITE_COM(0xC0);
for(i=0;i<4;i++)
for(j=0;j<8;j++)
{
LCD_WRITE_ADD_CHAR(i,j,0x0C);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -