| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题: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
快速回复:CM12864有段程序看不懂,求大神指教
数据加载中...
 
   



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

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