在调试DS1302的时候发现一个奇怪的问题,不知道解决办法,发帖求助。
在操作DS1302的RAM时,如果输入的数值1-79能正常显示1-79,但是如果输入超过79就不能正常显示,显示结果为X-80,比如
写入80则输出为0,
写入81则输出为1,
写入82则输出为2,
....................
写入99则输出为19,
还请教是什么原因呢?
源代码如下
void main()
{
unsigned char x=99;
Initial_096OLED();
while(1)
{
Write1302 (WRITE_PROTECT,0X00); //禁止写保护
Write1302 (0xC2,((x/10)* 16 + x%10)); //将x转换为16进制写入RAM
Write1302 (WRITE_PROTECT,0x80); //允许写保护
OLED_xianshi(Read1302 ( 0xc3)/10,Read1302 ( 0xc3)%10); //显示
/*如果x为1-79,能正常显示,但是如果x为80-99则显示结果为x-80,比如x为89,结果为9,x为99结果则为19*/
}
}
|