高手帮忙看一下1602显示的部分程序

[复制链接]
2631|6
 楼主| h_hx918 发表于 2010-7-28 14:06 | 显示全部楼层 |阅读模式
这个程序是显示数字的部分,数字最大为999999,能否讲解一下for循环的思想。谢谢!
...
sbit bflag=ACC^7;
...

void lcd_disp(unsigned long s,unsigned char x,unsigned char y) { unsigned char i; unsigned int temp; unsigned char flag=0; setxy(x,y); for(i=6;i>0;i--) { temp=(s>>((i-1)*4))&0xf; if((temp!=0)||((temp==0)&&(flag==1))||((temp==0)&&(i==1))) { flag=1; lcd_char(48+temp); } } }
 楼主| h_hx918 发表于 2010-7-28 14:08 | 显示全部楼层
太乱了,重新编辑一下
void lcd_disp(unsigned long s,unsigned char x,unsigned char y)
{
        unsigned char i;
        unsigned int temp;
        unsigned char flag=0;

        setxy(x,y);
        for(i=6;i>0;i--)
        {
                temp=(s>>((i-1)*4))&0xf;
                if((temp!=0)||((temp==0)&&(flag==1))||((temp==0)&&(i==1)))
                {
                        flag=1;
                        lcd_char(48+temp);
                }
        }
}
古道热肠 发表于 2010-7-28 15:50 | 显示全部楼层
呵呵,想省事就用printf(ucDispBuf,"%ld",s),然后将ucDispBuf的内容送LCD屏即可。
古道热肠 发表于 2010-7-28 15:50 | 显示全部楼层
应该是sprintf()
 楼主| h_hx918 发表于 2010-7-29 08:50 | 显示全部楼层
顶上去
zjswuyunbo 发表于 2010-7-29 09:16 | 显示全部楼层
好像是long变成了16进制显示了
doomhaha 发表于 2010-7-29 10:16 | 显示全部楼层
sprintf()能重入吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

70

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部