?? dis.c
字號:
/*************** 812 Bus LCD Program *************/
#include "intrins.h"
#include "math.h"
//#include "ascii.h"
//--------CSA----A10------//
//--------CSB----A11------//
//--------R/S----A8-------//--1-data,0-command//
//--------R/W----A9-------//--1-read,0-write//
//--------EN-----A15&R&W--//
#define lcd_on 0x3f
#define lcd_off 0x3e
#define lcd_xrow 0xc0
#define lcd_page 0xb8
#define lcd_y 0x40
#define left_command_add 0x40800 // left command write address//
#define left_data_add 0x40900 // left data write address//
#define left_zt_read_add 0x40a00 // left zhuangtai read address//
#define left_data_read_add 0x40b00 // left data read address//
#define right_command_add 0x40400 // right command write address//
#define right_data_add 0x40500 // right data write address//
#define right_zt_read_add 0x40600 // right zhuangtai read address//
#define right_data_read_add 0x40700 // right data read address//
/*********write left command ************/
void left_command(char cmd)
{
unsigned char flag;
flag=FVAR(char, left_zt_read_add);
while((flag&0x80)==0x80)
{
flag=FVAR(unsigned char,left_zt_read_add);
}
FVAR(unsigned char,left_command_add)=cmd;
}
/***********write right command ********/
void right_command(char cmd)
{
char flag;
flag=FVAR(unsigned char,right_zt_read_add);
while((flag&0x80)==0x80)
{
flag=FVAR(unsigned char,right_zt_read_add);
}
FVAR(unsigned char,right_command_add)=cmd;
}
/***************write left data********/
void left_data(char lcd_data)
{
char flag;
flag=FVAR(unsigned char,left_zt_read_add);
while((flag&0x80)==0x80)
{
flag=FVAR(unsigned char,left_zt_read_add);
}
FVAR(unsigned char,left_data_add)=lcd_data;
}
/***************write right data********/
void right_data(char lcd_data)
{
char flag;
flag=FVAR(unsigned char,right_zt_read_add);
while((flag&0x80)==0x80)
{
flag=FVAR(unsigned char,right_zt_read_add);
}
FVAR(unsigned char,right_data_add)=lcd_data;
}
/*********read left data*********/
unsigned char left_read()
{
char flag,reddd;
flag=FVAR(unsigned char,left_zt_read_add);
while((flag&0x80)==0x80)
{
flag=FVAR(unsigned char,left_zt_read_add);
}
FVAR(unsigned char,left_data_add)=0xff;
reddd=FVAR(unsigned char,left_data_read_add);
return reddd;
}
/*********read right data*********/
unsigned char right_read()
{
char flag,reddd;
flag=FVAR(unsigned char,right_zt_read_add);
while((flag&0x80)==0x80)
{
flag=FVAR(unsigned char,right_zt_read_add);
}
FVAR(unsigned char,right_data_add)=0xff;
reddd=FVAR(unsigned char,right_data_read_add);
return reddd;
}
//******************* clear left lcd ***************************//
void lcd_left_clear()
{
char i;
int j;
left_command(lcd_xrow);
for(i=0;i<=7;i++)
{
left_command(lcd_page|i);
left_command(lcd_y);
for(j=0;j<=63;j++)
{
left_data(0x00);
}
}
}
//********************** clear right lcd **********************//
void lcd_right_clear()
{
char i;
int j;
right_command(lcd_xrow);
for(i=0;i<=7;i++)
{
right_command(lcd_page|i);
right_command(lcd_y);
for(j=0;j<=63;j++)
{
right_data(0x00);
}
}
}
void clearlcd(void)
{
left_command(lcd_off);
right_command(lcd_off);
lcd_left_clear();
lcd_right_clear();
left_command(lcd_on);
right_command(lcd_on);
}
void lcdon(void)
{
left_command(lcd_on);
right_command(lcd_on);
}
void lcdoff(void)
{
left_command(lcd_off);
right_command(lcd_off);
}
void disc(unsigned char h,unsigned l,unsigned char *buffer)
{
unsigned i;
left_command(lcd_xrow|0x00);
right_command(lcd_xrow|0x00);
if(h<4)
{
left_command(lcd_page|(l*2));
left_command(lcd_y|(h*16));
for(i=0;i<16;i++)
{
left_data(buffer[i]);
}
left_command(lcd_page|(l*2+1));
left_command(lcd_y|(h*16));
for(i=16;i<32;i++)
{
left_data(buffer[i]);
}
}
else
{
right_command(lcd_page|l*2);
right_command(lcd_y|((h-4)*16));
for(i=0;i<16;i++)
{
right_data(buffer[i]);
}
right_command(lcd_page|(l*2+1));
right_command(lcd_y|((h-4)*16));
for(i=16;i<32;i++)
{
right_data(buffer[i]);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -