
(图1)

(图2)
#include "REGX51.H"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define dataport P0
sbit cd=P2^4;
sbit rd=P2^5;
sbit wd=P2^6;
void ReadState();
void Write_Date(uchar date);
void Write_Command(uchar com);
void init();
void Display();
void main()
{
init();
Display();
while(1);
}
void ReadState() //读状态;
{
uchar status;
do
{
dataport=0x11111111;
rd=0;
cd=1;
wd=1;
_nop_();
_nop_();
_nop_();
status = dataport;
rd=1;
}
while(status&0x03!=0x03);
}
void Write_Date(uchar date) //写数据
{
ReadState();
cd=0;
rd=1;
wd=0;
_nop_();
_nop_();
_nop_();
dataport = date;
wd=1;
}
void Write_Command(uchar com) //写命令
{
ReadState();
cd=1;
rd=1;
wd=0;
_nop_();
_nop_();
_nop_();
dataport = com;
wd=1;
}
void init() //初始化
{
Write_Date(0x00);
Write_Date(0x00);
Write_Command(0x42);//图片首次显示地址;
Write_Date(0x1F);
Write_Date(0x00);
Write_Command(0x43);//图片宽度30;*/
Write_Command(0x80); //显示方式设置 逻辑 或 合成
Write_Command(0x9a);//开文本&图片显示9c=10011100;
}
void Display()
{
uint i;
uint addr;
addr = 0x0000;
Write_Date(addr&256);
Write_Date(addr/256);
Write_Command(0x24);//设置地址指针
for(i=0;i<1000*100;i++)
{
Write_Date(0xFF);
Write_Command(0xc0); //写数据,地址加一?
}
}
不管如何设置0x43都不能超出如(图2)的宽度;
