?? lcdp.c
字號:
/*--------------------------------
lcd display 16x2 chinese
driver chip st7920
2002.12.28
----------------------------*/
#include <stdlib.h>
#include <ctype.h>
#include <intrins.h>
#include <AT89X52.H>
#include <absacc.h>
#include "charger.h"
//---------------------------------------
//define signal connection
//---------------------------------------
#define LCDRS T0
#define LCDRW P1_7
#define ENABLE T1
#define DATABUS XBYTE[0x6000]
extern void delay(unsigned int i);
static void isBusy(void);
//-------------------------------
//LCD display char,write data to LCD ram
void WD_LCD(unsigned char ch)
{
isBusy();
LCDRS=1;
_nop_();
_nop_();
_nop_();
LCDRW=0;
_nop_();
_nop_();
_nop_();
DATABUS=ch;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
ENABLE=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
ENABLE=0;
_nop_();
_nop_();
}
//---------------------------------
//write lcd controll register
void WC_LCD (unsigned char command)
{
isBusy();
LCDRS=0;
_nop_();
LCDRW=0;
_nop_();
_nop_();
DATABUS=command;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
ENABLE=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
ENABLE=0;
}
//----------------------------------------------
//LCD busy check ,check busy flag,read acc
//#pragma DISABLE
static void isBusy(void)
{
unsigned char data i;
for(i=100;i--;);
RESET_DOG;
/*
unsigned char data i;
i=ACC;
P8255D=0x90;//AiBoCo;
P0=0x0ff;
_nop_();
LCDRS=0;
LCDRW=1;
_nop_();
ENABLE=1;
_nop_();
do { ACC=DATABUS; } while(BUSYFLAG);
ENABLE=0;
P8255D=0x80;//AoBoCo;
ACC=i;
*/
}
//------------------------------------------------
//init lcd
void clear(void)
{
WC_LCD(0x18);//base command,8bit
isBusy();
LCDRS=0;
LCDRW=0;
_nop_();
_nop_();
DATABUS=0x1;
_nop_();
_nop_();
_nop_();
ENABLE=1;
delay(4);
ENABLE=0;
_nop_();
_nop_();
}
//---------------------------
//display string
void text(unsigned char sta,unsigned char *string)
{
if(sta)WC_LCD(sta);
while(*string)WD_LCD(*string++);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -