找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2657|回复: 4
收起左侧

temp_h=byte_read(0x2000)*256+byte_read(0x2001);//这是什么意思?

[复制链接]
ID:696938 发表于 2020-2-23 14:20 | 显示全部楼层 |阅读模式
void read_memory()           //上电读存储
{
   unsigned char q=0;        
        temp_h=byte_read(0x2000)*256+byte_read(0x2001);//这是什么意思?
    for(q=0;q<11;q++)
    {
        phone[q]=byte_read(0x2100+q);//这是什么意思?
    }
        if(temp_h>255||temp_h<0)
        {
                temp_h=20;
        }
}

回复

使用道具 举报

ID:696939 发表于 2020-2-23 14:33 | 显示全部楼层
读取 0x2000 和0x2001地址内的数据存入temp_h
0x2000 为高8为,0x2001为低8位,
回复

使用道具 举报

ID:94031 发表于 2020-2-23 14:36 | 显示全部楼层
temp_h=byte_read(0x2000)*256+byte_read(0x2001);读高位地址0x2000与低位地址0x2001组成一个16位数temp_h

for(q=0;q<11;q++) {phone[q]=byte_read(0x2100+q);  }从phone[q]连续读10个数。
  
回复

使用道具 举报

ID:235200 发表于 2020-2-23 14:44 | 显示全部楼层
temp_h=byte_read(0x2000)*256+byte_read(0x2001);//这是读出地址0x2000和0x2001两个存储单元的值组成1个16位的二进制值,因地址0x2000和0x2001均只能存放8位二进制
如:一个盒子放8,1个盒子放6,要由2个1位的十进制数组成2位十进制数,  86=8x10+6  道理是一样的
回复

使用道具 举报

ID:213173 发表于 2020-2-23 15:39 | 显示全部楼层
void read_memory()           //上电读存储
{
        unsigned char q=0;         
        //temp_h=读取EEPROM第一扇区首地址0作高8位和第2地址1作低8位,合成一个16位数据
        temp_h=byte_read(0x2000)<<8|byte_read(0x2001);//这样写更易理解
//        temp_h=byte_read(0x2000)*256+byte_read(0x2001);//这是什么意思?
        for(q=0;q<11;q++)
        {        //连续读取EEPROM第二扇区第0~10地址共11个数据按序保存在数组phone[]中。
                phone[q]=byte_read(0x2100+q);//这是什么意思?
        }
        if(temp_h>255||temp_h<0)
        {
                temp_h=20;
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表