| 
黄金会员 主题
回帖0
积分6310
阅读权限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,所以不会编译,请大神指点。
 
 | 
 |