各位大神帮帮忙,,,下面是E2PROM单字节读写操作,主要想问下C语言相关知识,单个字节是如何转十进制字符串格式的(就是main函数里面加问好注释的那里)?例程看不懂,网上搜索了也是一知半解,谁能帮忙解释一下吗,,,小白入门 望指教
#include<reg52.h>
extern void InitLcd1602();
extern void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str);
extern void I2CStart();
extern void I2CStop();
extern unsigned char I2CReadNAK();
extern bit I2CWrite(unsigned char dat);
unsigned char E2ReadByte(unsigned char addr);
void E2WriteByte(unsigned char addr,unsigned char dat);
void main()
{
unsigned char dat;
unsigned char str[10];
InitLcd1602();
dat = E2ReadByte(0x02); //读取E2PROM上指定地址中的一个字节
str[0] = (dat/100)+'0'; //***转换为十进制字符串格式(???如何转换的)
str[1] = (dat/10%10)+'0';
str[2] = (dat%10)+'0';
str[3] = ' ';
LcdShowStr(0,0,str); //显示在液晶上
dat++; //将其值加1
E2WriteByte(0x02,dat); //再写回到原地址中
while(1);
}
//读取E2PROM中的一个字节,addr为字节地址
unsigned char E2ReadByte(unsigned char addr)
{
unsigned char dat;
I2CStart();
I2CWrite(0x50<<1);
I2CWrite(addr);
I2CStart();
I2CWrite((0x50<<1)|0x01);
dat = I2CReadNAK;
I2CStop();
return dat;
}
//向E2PROM中写入一个字节,addr为字节地址
void E2WriteByte(unsigned char addr,unsigned char dat)
{
I2CStart();
I2CWrite(0x50<<1); //寻址器件,后续为写操作
I2CWrite(addr); //写入存储地址
I2CWrite(dat); //写入一个字节数据
I2CStop();
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
哦,对,记错了。谢谢提醒。
一周热门 更多>