黄金会员
主题
帖子
积分6305
阅读权限40
注册时间2010-2-18
最后登录1970-1-1
在线时间 小时
|
最近新装了2个M8V7电源,感觉还不错,很有玩头。由于我手中的液晶屏和普通的不一样。普通2004上显示的1、2、3、4行在我的液晶屏上变成1、3、2、4行,而且上下没有对齐,我手头的液晶屏是2404,每行显示24个字符的。通过研究,仔细看了G大源程序中LCD1604部分
asm("ldi R18,0x80"); // 1604 address = LCD_START_LINE1;
ldi R18,0x80
.dbline 144
; //asm("ldi R18,0x82"); // 2004
; asm("cpi R17,1");
cpi R17,1
.dbline 145
; asm("brne LCD_set_address_L1");
brne LCD_set_address_L1
.dbline 146
; asm("ldi R18,0xc0"); // 1604
ldi R18,0xc0
.dbline 148
; //asm("ldi R18,0xc2"); // 2004
; asm("LCD_set_address_L1:");
LCD_set_address_L1:
.dbline 150
;
; asm("cpi R17,2");
cpi R17,2
.dbline 151
; asm("brne LCD_set_address_L2");
brne LCD_set_address_L2
.dbline 152
; asm("ldi R18,0x90"); // 1604
ldi R18,0x90
.dbline 154
; //asm("ldi R18,0x96"); // 2004
; asm("LCD_set_address_L2:");
LCD_set_address_L2:
.dbline 156
;
; asm("cpi R17,3");
cpi R17,3
.dbline 157
; asm("brne LCD_set_address_L3");
brne LCD_set_address_L3
.dbline 158
; asm("ldi R18,0xd0"); // 1604
ldi R18,0xd0
.dbline 160
; //asm("ldi R18,0xd6"); // 2004
; asm("LCD_set_address_L3:");
LCD_set_address_L3:
.dbline 162
如果我要使用2404,是否可以直接在2004那行修改:
//asm("ldi R18,0x82"); // 2004;将0x82改为0x84(这应该是第一行显示,1604改为2004,那么80改为82,前面空2个字符,我判断改为2404应该空4个字符就应该改为84,下面以此类推?)
//asm("ldi R18,0xc2"); // 2004;将0xc2改为0x9c(84+24个字符,16进制应该是18,那么84+18=9c)
//asm("ldi R18,0x96"); // 2004;将0x96改为0xc4
//asm("ldi R18,0xd6"); // 2004;将0xd6改为0xdc
是否可行?
另外,我因为不懂AVR,只是略懂51和PIC,所以不会编译,请大神指点。
|
|