#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的读写一般是操作寄存器,
控制寄存器设定三次是因为每次设定生的操作都不一样,要探究原因,可能需要看一下手册
这里LCD_REG=0x00; 为什么要设定三次,我已经明白了。但是对于红 {MOD}字体部分还是不太明白
#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
说明下,这个代码是我在网上下载的,不是我的开发板提供的例程,只是想通过不同厂家的代码,来学习下更多的编程思路。这个帖子很久没来处理,我是研究自己开发板提供的例程,所以有些抱歉。
一周热门 更多>