51单片机Proteus仿真12864中的这个指针是什么意思?

就是下面*daima指针,为啥在write_data里面这样写?voidhanzi(ucharye,ucharlie,uchar*daima){uchari,j;for(... 就是下面*daima指针,为啥在write_data里面这样写?

void hanzi(uchar ye,uchar lie,uchar *daima)
{ uchar i,j; for(i=0;i<2;i++)
{ write_com(0xb8+ye+i);
write_com(0x40+lie);
for(j=0;j<16;j++)
{ write_data(daima[i*16+j]); //写数据(汉字) }
} }
展开
 我来答
百度网友55fc1cd
2016-11-06 · TA获得超过616个赞
知道小有建树答主
回答量:213
采纳率:100%
帮助的人:259万
展开全部

51单片机Proteus仿真12864中的这个指针是什么意思?

就是下面*daima指针,为啥在write_data里面这样写?

void hanzi(uchar ye,uchar lie,uchar *daima)          
{
    uchar i,j;
    
    for(i=0;i<2;i++)
    { 
        write_com(0xb8+ye+i); 
        write_com(0x40+lie); 
        for(j=0;j<16;j++)   
        {
            write_data(daima[i*16+j]); //写数据(汉字)
        }   
    }
}

下面逐句分析,重点在指针那一句,请你参考:

  1. void hanzi(uchar ye, uchar lie, uchar *daima)          
    //三个参数:参数 ye 和参数 lie 指明要写的汉字在屏幕上的起始位置,即,在屏幕上的哪一页的哪一列开始写;

    //参数 daima 是一个指针,指向该汉字的字模所在区域的首地址

  2. uchar i,  j;

    //两个临时变量,服务于字模的写入

  3. for(i=0;i<2;i++)

    //外层 for 负责两页的内容切换: i = 0 写第一页(汉字的上半截);i = 1 写第二页(汉字的下半截)

  4. write_com(0xb8+ye+i);        write_com(0x40+lie); 

    //这两句,定位汉字在 12864 上地起始位置

  5. for(j=0;j<16;j++)

    //内层 for 循环,具体负责写入每一页上的 16 个字节的字模数据

  6. write_data(daima[i*16+j]);   //写数据(汉字)

    //这一句是重点,先说明一下 write_data 函数每次只能写入一个字节的字模,所以内层 for 循环要循环16次,

    //指针 daima 的内容是该汉字 32 个字节字模中,第一个字节的存储地址:

    //写第一页时 i = 0 ,内循环变量 j 取值 0~15 ,所以内循环每次写入的字模分别

    //是 daima[0], daima[1], daima[2], daima[3],~~~~ daima[15],即前16个字节的字模,第一页写完。

    //写第二页是 i = 1,内循环变量 j 取值 0~15,这次内循环每次写入的字模分别

    //是 daima[16+0], daima[16+1], daima[16+2], daima[16+3],~~~~ daima[16+15],后16个字节的字模,

    //第二页写完。

  7. 相关的C语法:指针可以以数组的形式使用,以 daima 为例:daima 本身指向第一个字节,daima[x]中的 x 是相对于daima 所指地址的偏移量,即,以 daima 所指的地址向后偏移 x 个单元取数。

更多追问追答
追问

老师真棒!是不是写入数据就是照着图上这样写入的?

Proteus中的这个12864是纵向取模,字节倒序是什么意思?实物也是这样吗

追答

就是照着你画的图写入的!!!!

字节倒序,以你上图为例,就是每一列(一个字节)高位在下,低位在上。

参看下图:

呵呵,请采纳!!!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式