请大家看看我的程序,错在何处,谢谢![原创]
#include <reg51.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define MCW XBYTE[0x93ff] /*命令写口地址*/
#define MCR XBYTE[0x9bff] /*命令读口地址*/
#define MDW XBYTE[0x97ff] /*数据写口地址*/
#define MDR XBYTE[0x9fff] /*数据读口地址*/
uint data mc ; /*命令寄存器*/
uint data md ; /*数据寄存器*/
uint data busy ; /*忙寄存器*/
uint code tab[18]={0x43,0x75,0x72,0x73,0x6f,0x72,0x20,0x4c,0x65,0x66,0x74,0x20,0x53,0x63,0x72,0x6f,0x6c,0x6c} ;
uint bf() /*判断忙函数*/
{
busy=MCR;
return busy;
}
writecom(i) /*写命令函数*/
{
bf();
while(!(busy> > =7))
{
MCW=i;
};
}
void writedata(i) /*写数据函数*/
{
bf();
while(!(busy> > =7))
{
MDW=i;
};
}
void delay() /*延时函数*/
{
uint i=0;
for(i=0;i <2;i++)
{};
}
void Init() /*LCD20468初始化函数*/
{
uint n,b=0;
for(n=0;n <3;n++) /*循环*/
{
b=0x30;
writecom(b);
delay();
};
b=0x38; /*工作方式*/
writecom(b);
b=0x01;
writecom(b); /*清屏*/
b=0x06;
writecom(b); /*输入方式*/
b=0x0f;
writecom(b); /*显示方式*/
}
void main() /*LCD20468主函数*/
{
for(;;)
{
uint b,i,j;
b=0x04;
writecom(b);
b=0x90;
writecom(b);
for(i=0;i <0x12;i++)
{
j=tab[i];
writedata(j);
}
}
}
我是初学单片机和C语言,以上是我的MDLS20486 LCD的显示程序,编译已通过,但用EASYSCOPE 8052F仿真器调试时,命令和数据总写不进"指令写口地址(93FF)和数据口写地址(97FF)",不知程序错在何处,请大家指点,十分感谢!
发表时间:2003年5月8日21:47:35