本帖最后由 selfstudy 于 2011-7-21 10:45 编辑
我将 十进制转换为 字符型,仿真时 proteus提示 超出内存范围
代码如下。
//清空字符串
void clearstr(uchar *p,uchar n)
{
uchar i;
for(i=0;i<n;i++)
{
*(p+i)=0;
}
}
//转换的AD数
//n为几位数
uchar num_to_str(int num,uchar *p,uchar n)
{
uchar i=0;
uchar yushu=0;
clearstr(p,n);//清空
do
{
yushu=(uchar)(num %10);//取余数,则第一次取到了个位数
*(p+i)= yushu ;//字符串赋值
num=num/10;//去掉个位数
i++;
} while (num != 0);
return i;//返回位数
}
//LCD显示数字
//n位数
void LCD_Show_num(uchar x, uchar y,uchar *p,uchar n)
{
uchar i;
for (i=n;i>0;i--)//从高位显示
{
LCD_Char_Write(x+n-i,y,(*p+48));
p++;
}
=======================main()
i=num_to_str(173,adc,3);
LCD_Show_num(0,0,adc,i);
}
|