LCD1602代码问题,有些不明白,请教大家了

2019-03-26 15:59发布

#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


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Crischan
1楼-- · 2019-03-26 20:11
< 我晕 直接用位带操作不就行了 。
kooking
2楼-- · 2019-03-27 00:16
< 根据字面意思LCD_COM是命令LCD_DAT是数据,(*((unsigned int *)0x601000))感觉比较像寄存器。
LCD的读写一般是操作寄存器,
控制寄存器设定三次是因为每次设定生的操作都不一样,要探究原因,可能需要看一下手册
ttxs_2013
3楼-- · 2019-03-27 01:27
kooking 发表于 2014-3-11 13:32
根据字面意思LCD_COM是命令LCD_DAT是数据,(*((unsigned int *)0x601000))感觉比较像寄存器。
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



说明下,这个代码是我在网上下载的,不是我的开发板提供的例程,只是想通过不同厂家的代码,来学习下更多的编程思路。这个帖子很久没来处理,我是研究自己开发板提供的例程,所以有些抱歉。

kooking
4楼-- · 2019-03-27 05:08
 精彩回答 2  元偷偷看……

一周热门 更多>