?? fm12864.c
字號:
#include "FM12864.h"
/************************************************************
* Fuction: 從液晶寫一個字節
* Parameters:wdata,wdata-向液晶寫的字節
* Return: None
************************************************************/
void LCDWriteByte(unsigned char wdata)//向液晶寫一個字節
{
P4DIR = 0xff; //把P4口作為液晶顯示的8位數據口,定義為輸出方式
P1OUT &= ~BIT3; //把R/W拉低
P1OUT |= BIT4; //把E拉高
P4OUT = wdata; //輸出數據
P1OUT &= ~BIT4; //把E拉低
}
/************************************************************
* Fuction: 從液晶讀一個字節
* Parameters:None
* Return: rdata,從液晶中讀取的字節
************************************************************/
unsigned char LCDReadByte()
{
unsigned char rdata;
P4DIR = 0x00; //把P2口作為液晶顯示的8位數據口,定義為輸入方式
P1OUT |= BIT3; //把R/W拉高
P1OUT |= BIT4; //把E拉高
rdata = P4IN; //把數據讀入rdata
P1OUT &= ~BIT4; //把E拉低
return rdata;
}
/************************************************************
* Fuction: 向液晶寫命令或地址
* Parameters:unsigned char addr,addr-命令或者地址
* Return: None
************************************************************/
void LCDWriteAddr(unsigned char addr)
{
unsigned char busy;
P1OUT &= ~BIT2; //把RS拉低,讀寫指令
busy = LCDReadByte(); //讀忙指令
while(busy & 0x80) //判忙
{
busy = LCDReadByte();
}
LCDWriteByte(addr); //寫入命令或地址
}
/************************************************************
* Fuction: 向液晶寫數據
* Parameters:unsigned char addr,addr-命令或者地址
* Return: None
************************************************************/
void LCDWriteData(unsigned char sdata)//寫入數據
{
unsigned char busy;
P1OUT &= ~BIT2; //把RS拉低,讀寫指令
busy = LCDReadByte(); //讀忙指令
while(busy & 0x80) //判斷液晶忙標志位
{
busy = LCDReadByte();
}
P1OUT |= BIT2; //把RS拉高,寫數據
LCDWriteByte(sdata); //寫入數據
}
/************************************************************
* Fuction: LCD顯示程序,顯示所需字符
* Parameters:None
* Return: None
************************************************************/
void LCDInit()
{
P1DIR = 0x1c; //把P1口的高三位作為顯示的E(7),R/W(6),RS(5),定義為輸出
LCDWriteAddr(0x30);
LCDWriteAddr(0x01); //向液晶寫入清屏指令
LCDWriteAddr(0x02); //寫入地址歸位指令
LCDWriteAddr(0x0c); //寫入整體顯示和關閉光標顯示指令
LCDWriteAddr(0x80); //設置顯示地址為液晶第一行最左邊位置(0x80)
}
/************************************************************
* Fuction: LCD顯示程序,顯示所需漢字
* Parameters:None
* Return: None
************************************************************/
void Disp_HZ(unsigned char addr,const unsigned char * pt,unsigned char num)
{
unsigned char i;
LCDWriteAddr(addr);
for(i = 0;i < (num*2);i++)
LCDWriteData(*(pt++));
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -