标题:CM12864有段程序看不懂,求大神指教
只看楼主
confool725
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-7-17
结帖率:100%
已结贴  问题点数:10 回复次数:5 
CM12864有段程序看不懂,求大神指教
//写        数字字母高12  宽6   xAddr是列地址,yAddr是行地址
 void PutAscii(BYTE xAddr, BYTE yAddr, BYTE* dat,BYTE Dis_style)
{
  unsigned char i,j,x,y;   
  unsigned char LCD_sel;
  for(i = 0;i<2;i++)
    {
        y = yAddr*2 + i;
        for(j = 0;j < 8;j++)
        {
            x = xAddr * 8 + j;
            if(x < 64)
            {
                LCD_sel = 0;
            }
            else
            {
                LCD_sel = 1;
                x = x - 64;
            }
     write_lcd(COMMAND,disp_col + x,LCD_sel);            //set X(0~63)
      write_lcd(COMMAND,disp_page + y,LCD_sel);       //set Y(0~7)           
        if((j == 0)||(j == 7))
             {
                if(Dis_style ==  NORM_DISP)
                {
                    write_lcd(DATA,0,LCD_sel);
                }
                else
                {
                    if(i == 0)
                    {
                        write_lcd(DATA,0xFF,LCD_sel);
                    }
                    else
                    {
                    //    write_lcd(DATA,0x0f,LCD_sel);
                        write_lcd(DATA,0xff,LCD_sel);
                    }
                }
            }
            else
            {
                if(Dis_style ==  NORM_DISP)
                {
                    //write_oneparameter(*(dat+i-2),0xc4);
                write_lcd(DATA,dat[j+i*6-1],LCD_sel);
                }
                else
                {
                    if(i == 0)
                    {
                        write_lcd(DATA,(dat[j+i*6-1]^0xff),LCD_sel);
                    }
                    else
                    {
                    //    write_lcd(DATA,(dat[j+i*6-1]^0x0f),LCD_sel);
                        write_lcd(DATA,(dat[j+i*6-1]^0xff),LCD_sel);
                    }   
                }
            }           
        }        
    }
}
两层FOR循环什么意思,y = yAddr*2 + i;x = xAddr * 8 + j;什么意思?
2015-07-23 10:32
confool725
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-7-17
得分:0 
各位大神,帮帮忙啊,恳请不吝赐教,不胜感激谨此拜上
2015-07-23 10:53
醒山
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:9
帖 子:463
专家分:2071
注 册:2015-5-25
得分:5 
你把完整的代码发出来不好吗?这样怎么看?
2015-07-23 14:46
实际应用
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:89
专家分:341
注 册:2015-5-30
得分:5 
外层的for 代表上下两行
里层的for 代表8列
2015-07-23 21:20
confool725
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-7-17
得分:0 
回复 4楼 实际应用
关键是y = yAddr*2 + i;x = xAddr * 8 + j;什么意思?
2015-07-24 09:47
实际应用
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:89
专家分:341
注 册:2015-5-30
得分:0 
一次显示2行, 所以y地址要乘2
一次显示8列, 所以x地址要乘8

2015-07-29 21:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-455679-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.151005 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved