#define CESECT1 0x200000 //表示什么?
#define CESECT2 0x400000
#define CESECT3 0x600000
//#define LCD_COM (*((unsigned int *)0x400000))
//#define LCD_DAT (*((unsigned int *)0x400002))
#define LCD_COM (*((unsigned int *)0x601000)) //指令寄存器?
#define LCD_DAT (*((unsigned int *)0x601002)) // 数据寄存器?
addr = (int *)CESECT2;
LCDCOM = (int *)CESECT3;
LCDOUT = (int *)CESECT3;
LCDIN = (int *)CESECT2
还有对1602液晶的读写,r/w体现怎么哪里? 控制寄存器的为什么要设定三次?
LCD_REG=0x00; //rs=0 en=0
LCD_DATA=content;
LCD_REG=0x02; //rs==1 en==0 写指令端口
delaynum(80);
LCD_REG=0x00; //en=0
根据字面意思LCD_COM是命令LCD_DAT是数据,(*((unsigned int *)0x601000))感觉比较像寄存器。
LCD的读写一般是操作寄存器,
控制寄存器设定三次是因为每次设定生的操作都不一样,要探究原因,可能需要看一下手册
上面的红色部分是普通的宏定义
下面的看不到数据类型啊,感觉像是给寄存器赋值